EEPROM------AT24C01A_IIC总线驱动读写程序

EEPROM------AT24C01A_IIC总线驱动读写程序

ID:40534329

大小:34.50 KB

页数:5页

时间:2019-08-04

EEPROM------AT24C01A_IIC总线驱动读写程序_第1页
EEPROM------AT24C01A_IIC总线驱动读写程序_第2页
EEPROM------AT24C01A_IIC总线驱动读写程序_第3页
EEPROM------AT24C01A_IIC总线驱动读写程序_第4页
EEPROM------AT24C01A_IIC总线驱动读写程序_第5页
资源描述:

《EEPROM------AT24C01A_IIC总线驱动读写程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、/*河北工程大学信电学院自动化系调试成功EEPROM------AT24C01A_IIC总线驱动读写程序晶振:6MHz目标板:STC90C52AD编译环境:KeilCuVisionV2.38a*/#include#include//由于是01A,1Kbit,故此这里第一个字节的读写格式是1010,A2,A1,A0,R/W#defineRead_Addr0xa1#defineWrite_Addr0xa0#defineucharunsignedchar//总线的定义,时钟线P1.0,数据线P1.1sbitS

2、CL=P1^0;sbitSDA=P1^1;//短码数组uchartab[]={2,5,6};voidStart(){SDA=1;_nop_();SCL=1;_nop_();SDA=0;_nop_();SCL=0;//可以视作第一个SCL=0}voidStop(){SDA=0;_nop_();SCL=1;_nop_();SDA=1;}//-------------------------------------------------------------------------bitWrite_Byte(ucharDATA){bitAck;

3、uchari;for(i=0;i<8;i++){SDA=(bit)(DATA&0x80);_nop_();SCL=1;_nop_();_nop_();SCL=0;//第九个SCL=0DATA<<=1;}SDA=1;//主机释放SDA_nop_();_nop_();SCL=1;//第九个SCL=1_nop_();//SDA=1;//对程序好像没出来影响Ack=SDA;//前面是否先置1,特别注意是否是准双向口SCL=0;//下一个字节的第一个SCL=0return(Ack);}ucharRead_Byte(){ucharDATA,i;for(i

4、=0;i<8;i++){SCL=1;DATA<<=1;//注意强制类型转换SDA=1;//对程序好像没出来影响DATA

5、=(uchar)SDA;//前面是否先置1,特别注意是否是准双向口SCL=0;}return(DATA);}//-------------------------------------------------------------------------//读当前地址的数据ucharRead_Current_Addr(){ucharDATA;Start();Write_Byte(Read_Addr);DATA=Read_

6、Byte();Stop();return(DATA);}//向指定地址读数据ucharRead_Random_Addr(ucharaddr)//256*8byte=1024Kbit,uchar类型正好合适{ucharDATA;Start();Write_Byte(Write_Addr);Write_Byte(addr);DATA=Read_Current_Addr();return(DATA);}/*-------------------------------------------------------------功能:从EEPROM中

7、给定一个地址连续读NLEN个字节数据存放在以指针nContent开头的往下内容。bitRead_Flash(unsignedchar*nContent,unsignedcharnAddr,unsignedcharnLen);bitWrite_Flash(unsignedchar*nContent,unsignedcharnAddr,unsignedcharnLen);------------------------------------------------------------*///向指定地址写数据voidWrite_Random_

8、Addr(ucharaddr,ucharDATA){Start();Write_Byte(Write_Addr);Write_Byte(addr);Write_Byte(DATA);Stop();}//-------------------------------------------------------------------------//数码管显示延时voiddelay(void){uchari,j;for(i=0;i<5;i++)for(j=0;j<150;j++);}//显示voiddisplay(void){P0=tab[0

9、];P2=1;delay();P0=tab[1];P2=2;delay();P0=tab[2];P2=4;delay();}//------------------

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

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

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