电路图

思路

1.向EEPROM中通过I2C总线写入一个字节

2.通过I2C总线读出写入的字节

3.如果写入和读出成功点亮发光二极管

程序

 #include <REGX51.H>

 #define uchar unsigned char
#define uint unsigned int void init();
void start();
void stop();
void write(uchar byte);
void write_add(uchar byte,uchar address);//向指定地址中写入字节
void delay1(uchar x);
uchar read_add(uchar address);
uchar read();//从指定地址中读出字节 void delay()
{;;} sbit led = P0^;
sbit sck = P2^;
sbit sad = P2^; void main()
{
uchar test = ;
init();
write_add(0x01,0xaf);
delay1(); test =read_add(0xaf);
if(test == 0x01)
led = ;
while();
} void init()
{
sck = ;
delay();
sad = ;//数据线和信号线都空闲
delay();
led = ;
}
//起始信号
void start()
{
sad = ;
delay();
sck = ;
delay();
sad = ;
delay();
}
//停止信号
void stop()
{
sad = ;
delay();
sck = ;
delay();
sad = ;
delay();
}
//等待回应
void response()
{
uchar i = ;
sck = ;
delay();
while((sad == ) && (i < ))
i++;
sck = ;
delay();
}
//向指定地址写入一个字节
void write(uchar byte)
{
uchar i = ;
uchar temp = byte; for(; i < ; i++)
{
temp = temp << ;//temp左移一位
sck = ;
delay();
sad = CY;
delay();
sck = ;
delay();
}
sck = ;
delay();//这样就不会产生开始信号或结束信号
sad = ;
delay();
}
//从指定地址读取一个字符
uchar read()
{
uchar i,k;
sck = ;
delay();
sad = ;
delay();
for(; i < ; i++)
{
sck = ;
delay();
k = (k << ) | sad;
sck = ;
delay();
}
return k;
}
//写入一个字节
void write_add(uchar byte,uchar address)
{
start();
write(0xa0);
response();
write(address);
response();
write(byte);
response();
stop();
}
//读出写入的字节
uchar read_add(uchar address)
{
uchar result;
start();
write(0xa0);
response();
write(address);
response();
start();
write(0xa1);
response();
result = read();
stop();
return result;
}
void delay1(uchar x)
{
uchar a,b;
for(a=x;a>;a--)
for(b=;b>;b--);
}

运行结果

I2C总线模拟(郭天祥视屏)的更多相关文章

  1. 51单片机I2C总线

    I2C总线是飞利浦公司推出的一种串行总线,所有器件共用两根信号线,实现数据的传输. 总线接口接了上拉电阻,默认为高电平,所以就可以用"当低电平出现"来标记出一种起始信号.我个人把它 ...

  2. C51单片机模拟I2C总线驱动程序设计

    /********************************** I2C总线驱动 ******************************** 模块名:I2C总线驱动 型号:I2C 功能描述 ...

  3. I2C总线协议的软件模拟实现方法

    I2C总线协议的软件模拟实现方法 在上一篇博客中已经讲过I2C总线通信协议,本文讲述I2C总线协议的软件模拟实现方法. 1. 简述 所谓的I2C总线协议的软件模拟实现方法,就是用软件控制GPIO的输入 ...

  4. I2C总线以及GPIO模拟I2C

    ·I2C总线的一些特征: 1. 只要求两条总线,一条串行数据线(SDA),一条串行时钟线(SCL) 2. 两个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机系统软件设定的地址:主机可 ...

  5. STM32F4XX中断方式通过IO模拟I2C总线Master模式

    STM32的I2C硬核为了规避NXP的知识产权,使得I2C用起来经常出问题,因此ST公司推出了CPAL库,CPAL库在中断方式工作下仅支持无子地址 的器件,无法做到中断方式完成读写大部分I2C器件.同 ...

  6. 51单片机 | 基于I2C总线的秒表模拟应用

    ———————————————————————————————————————————— 参考地址: http://blog.csdn.net/junyeer/article/details/4648 ...

  7. I2C总线完全版——I2C总线的结构、工作时序与模拟编程

    I2C总线的结构.工作时序与模拟编程 I2C总线的结构.工作时序与模拟编程I2C总线(Inter Integrated Circuit)是飞利浦公司于上个世纪80年代开发的一种"电路板级&q ...

  8. Linux设备驱动模型之I2C总线

    一.I2C子系统总体架构 1.三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册.注销方法,提供了与具体硬件无关的I2C读写函数. (2)I2 ...

  9. i2c总线驱动,总线设备(适配器),从设备,从设备驱动的注册以及匹配

    常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 随笔分类 ARM裸机(13) C(8) C++(8) GNU-ARM汇编 Linux驱动(24) Linux应用编程(5) Makefile ...

随机推荐

  1. Spring3之MVC

    模式-视图-控制器(MVC)是UI设计中常见的设计模式, 该模式区分应用程序中的模式.视图和控制器三个角色,消除了业务逻辑与UI的耦合.模式负责封装视图展示的应用数据.视图应该只显示数据,不包含任何业 ...

  2. Java基础知识强化100:JVM 内存模型

    一. JVM内存模型总体架构图:  方法区和堆由所有线程共享,其他区域都是线程私有的 二. JVM内存模型的结构分析: 1. 类装载器(classLoader) 类装载器,它是在java虚拟机中用途是 ...

  3. PHP 简易读取文件目录下的文件,生成css spirte图片

    因为个人不是对PS熟悉,不清楚如何在PS中生成一张横向有序的spirte图片,使用了"css sprite V4.3"版本,生成的图片会出现压缩图片大小的情况,本想修改原作者开发的 ...

  4. c#中字符串显示上标和下标解决办法

    由于工作的需求,需要在word中插入带入带有上标和下标的字符串,比如这样的一个字符串:SO₄²⁻(mg/L).在网上搜了好久,终是摸索出点思路. 解决办法:使用转义字符加Unicode的HexEnti ...

  5. C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据

    #region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...

  6. android apk 防止反编译技术第一篇-加壳技术

    做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习.现在将最近学习成果做一下整理总结.学习的这些成 ...

  7. iOS对textField进行字符长度限制的办法

    在项目开发过程中,遇到这么一个需求,编辑标签时,输入的最大长度需要限制为24个字节. 查阅了一些材料,并参考了之前项目的相关处理办法,今天在这里总结一下解决方案. 1.写一个截取字符串的方法,将超长的 ...

  8. 01_Java解析XML

    [打印list.Map集合的工具方法] /** * 打印List集合对应的元素 */ public void printList(List<Object> list){ for(Objec ...

  9. (poj)1064 Cable master 二分+精度

    题目链接:http://poj.org/problem?id=1064 Description Inhabitants of the Wonderland have decided to hold a ...

  10. WIX: Hide installed program from the Add/Remove Programs window.

    Reference article : How to hide an entry in the Add/Remove Programs applet? In Wix source files, set ...