EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。 软件说明 C语言为FranklinCV3"> EEPROM为ATMEL公司的AT24C01A。单片机为ATMEL公司的AT89C51。 软件说明 C语言为FranklinCV3" />
欢迎来到天天文库
浏览记录
ID:24234954
大小:53.50 KB
页数:4页
时间:2018-11-13
《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<intrins.h>#defineucharunsigne
3、dchar#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;PData=Data;for(i=0;i<Num;i++){Start();Send(0xa0);Ack();Send(Address+i);A
4、ck();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]=0;Number[3]=0;/*将数组中的值清掉,以验证读出的数是否正确*/RdFromROM(Number,4,4);}问题:本程序中未采用块读写的方法,显得有点‘笨’,这是由于项目原因,现项目已完成,程序已写好
5、,短时不会修改,也不会花上一定的精力去做,虽然理论上已很成熟,就这样写一下,未必不对,但与我的本栏目要求不符,所以就未做上去,如果以后我做了,将再补上。
此文档下载收益归作者所有