24C04模拟IIC读写程序

24C04模拟IIC读写程序

ID:41590790

大小:61.15 KB

页数:22页

时间:2019-08-28

24C04模拟IIC读写程序_第1页
24C04模拟IIC读写程序_第2页
24C04模拟IIC读写程序_第3页
24C04模拟IIC读写程序_第4页
24C04模拟IIC读写程序_第5页
资源描述:

《24C04模拟IIC读写程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SCLBITP1.7;定义24C02的串行时钟线SDABITPl.6;定义24C02的串行数据线ORG00HSTART:MOVR1,#20H;数据保存地址MOVR7,#120;取数据的个数・・**********************************CALLFIRST;开始命令MOVA,#0A0H;写器件地址CALLSUBS.■9n»Tw<

2、WrT>91%rYwrTw»TwrTw»Tw<

3、WrTw»Tw91%rYwrTw»TwrjwrTw»Tw<

4、WrYw91%”MOVA,#00h;所要读的器件的地址CALLSUBS•■r

5、wrj^rj*rjwrjw

6、r

7、^ejwrjwrj^rj^rj*r

8、^r

9、wrj^rj*rjwrjwr^r

10、^ejwrjwrj*rj^rj^rj^rj*rjw”CALLFIRST;开始命令MOVA,#OA1H;开始读数据CALLSUBS%£>•上・上^lf•■”WIN:CALLSUBRMOV@RI,AINCR1DJNZR7.WINCLRSDACALLDELAYSETBSCLCALLDELAYSETBSDAJMP$SUBR:MOVR0,#08HLOOP2:SETBSCLCALLDELAYMOVC,SDARLCACLRSCLCALLDELAYDJNZRO,LOOP2CJNER7,#OOh,LOWl;改S

11、ETBSDAJMPCLIMBERLOW1:CLRSDACLIMBER:CALLDELAYSETBSCLCALLDELAYCLRSCLCALLDELAYSETBSDARETSUBS:MOVR5,#08HLOOP:CLRSCLRLCAMOVSDA,CNOPSETBSCLCALLDELAYDJNZR5,LOOPCLRSCLCALLDELAYSETBSCLREP:MOVC,SDAJCREPCLRSCLRETDELAY:NOPNOPRETFIRST:SETBSDASETBSCLCALLDELAYCLRSDACALLDELAYCLRSCL;开始传数据RETENDI2C驱动24c04程

12、序mugenwon发表于2007-5-2315:26:00看到很多人在找24Cxx的程序,找了乂用不了,T脆拿自己的分享算了。以下代码功能极其强人,而且使用方便,基木上改几个参数,直接调用就行。至于原理说起來就太长了,只好白己消化吸收。只能用24c01A〜24C16A系列,容量超过的不行/*本程序可以一次读和写最多256个字节数据,超岀会发牛卷页,即从Oxff回到0x00继续写或者读,请注意本子程序使用方法如下:先把卜血的#definenumbyte改为对MIC型号调用Write_Flash()和Read_Flash()前,先把page07填好对应的页数,下面的函数声明处

13、有说明需要在主程序处定义一些参数,如下:bitf_rom;//eprom应答标志,=1不应答ucharxdataepromerr;〃用来统计写入岀错的次数uintxdataepadd;〃用来作为rom口标写入的首地址,要进行计算ucharxdatapage07;〃每256个字节当一页,请注意不耍写错页ucharxdata*ncon;〃用来处理写入或读入的缓存地址ucharxdatalenI;//rom笫一段数据长度,看eprom.cucharxdatalen2;//rom屮间段数据页数,看eprom.cucharxdatalen3;//rom末尾段数据长度,看eprom.

14、c如果不川外部存储器件,把关键字xdata去掉,然后再修改Write_Hash()和Read_Flash()的声明部分参数*/〃定义使用的IC,容量超过了这些IC就不能用了#defined_24c01a8〃定义IC每一页的字节数#defined_24c028#defined_24c0416#defined_24c08a16#defined_24cl6a16#definenumbyte_paged_24cl6a#defineWriteDeviceAddressOxaO//写驱动地址指令#defineReadDeviceAddressOxal〃读驱动地址指令voidnod2(

15、){unsignedchari;//4.6us延时for(i=0;ivl3;i++)_nop_();}/*功能:发起始信号*/voidStart_Cond()SDA=1;nod2();SCL=1;nod2();SDA=O;nod2();SCL=O;nod2();功能:发停止信号voidStop_Cond(){SDA=0;nod2();SCL=1;nod2();SDA=1;nod2();SCL=0;功能:发确认信号*/voidAck(){SDA=0;nod2();SCL=1;nod2();SCL=0;nod2();SDA=1;n

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

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

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