EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。 软件说明 C语言为FranklinCV3"> EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。 软件说明 C语言为FranklinCV3" />
51单片机模拟i2c总线的c语言实现

51单片机模拟i2c总线的c语言实现

ID:24252211

大小:53.50 KB

页数:4页

时间:2018-11-13

51单片机模拟i2c总线的c语言实现_第1页
51单片机模拟i2c总线的c语言实现_第2页
51单片机模拟i2c总线的c语言实现_第3页
51单片机模拟i2c总线的c语言实现_第4页
资源描述:

《51单片机模拟i2c总线的c语言实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、51单片机模拟I2C总线的C语言实现

2、第1电路原理图 500)this.style.ouseg(this)">EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。 软件说明 C语言为FranklinCV3.2。将源程序另存为testi2c.c,用命令C51testi2c.cL51TESTI2C.OBJOHS51TESTI2C编译,连接,得到TESTI2C.HEX文件,即可由编程器读入并进行写片,实验。3.源程序#include<reg51.h>#include

3、<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineAdd(ucharData[],ucharAddress,ucharNum){uchari;uchar*PData;PData=Data;for(i=0;i<Num;i++){Start();/*发送启动信号*/Send(0xa0);/*发送SLA+(ucharData[],ucharAddress,ucharNum){uchari;uchar*PData;PDa

4、ta=Data;for(i=0;i<Num;i++){Start();Send(0xa0);Ack();Send(Address+i);Ack();Start();Send(0xa1);Ack();*(PData+i)=Read();Scl=0;NoAck();Stop();}}voidmain(){ucharNumber[4]={1,2,3,4};(Number,4,4);/*将初始化后的数值写入EEPROM*/mDelay(20);Number[0]=0;Number[1]=0;Number[2]

5、=0;Number[3]=0;/*将数组中的值清掉,以验证读出的数是否正确*/RdFromROM(Number,4,4);}问题:本程序中未采用块读写的方法,显得有点‘笨’,这是由于项目原因,现项目已完成,程序已写好,短时不会修改,也不会花上一定的精力去做,虽然理论上已很成熟,就这样写一下,未必不对,但与我的本栏目要求不符,所以就未做上去,如果以后我做了,将再补上。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。