欢迎来到天天文库
浏览记录
ID:40534329
大小:34.50 KB
页数:5页
时间:2019-08-04
《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();}//------------------
此文档下载收益归作者所有