资源描述:
《C51编写地AT24C02详细地读写程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用文案C51_AT24C02读写程序:/*voidstart()//开始信号voidstop()//停止信号voidAck()//发确认信号voidNoAck()//发无确认信号voidinit()//初始化信号,拉高SDA和SCL两条总线bitwrite_byte(uchardate)//写一字节,将date写入AT24C02中ucharread_byte()//读一字节,从AT24C02中读一字节bitbusy()//应答查询,stop()后,启动AT24C02内部写周期,启动查询//初始化EEPROM子程序内
2、容为0XFF,nPage(0~31)voidInit_Flash(ucharnPage)//8bytes/1pageinit0xFFvoidwrite_add(ucharaddress,uchardate)//向AT24C02中写数据//从AT24C02中给定的地址nAddr起,将存放在以指针nContent开头的存储空间中的nLen个字节数据,连续写入AT24C02voidwrite_flash(uchar*nContent,ucharnAddr,ucharnLen)ucharread_add(ucharaddre
3、ss)//从AT24C02中读出数据文案大全实用文案//从AT24C02中给定的地址nAddr起,读取nLen个字节数据存放在以指针nContent开头的存储空间。voidread_flash(uchar*nContent,ucharnAddr,ucharnLen)*//*单片机P2口接74HC138(三八译码器)P2.3--74HC138:/EI、P2.2--74HC138:A2、P2.1--74HC138:A1、P2.0--74HC138:A0译码器输出Y0,Y1、Y2、Y3、Y4、Y5、Y6、Y7均低电平有效,
4、分别选通1~8个数码管。包括2个四位一体数码管LG3641BH,共2x4=8个数码管。数码管数据口为P0口。数码管为共阳4位一体数码管。功能:译码器输出为1——8个数码管的段选信号,轮流选择1——8数码管。voiddisplay(uchar*nContent,ucharnLen)功能:在8段数码管上显示nLen个字符,这些字符存储在指针nContent开头的往下的内容中。显示原理:1、送出要显示的段数2、P2译码,选择要显示的位3、延时1——2ms,时间不能太长,否则会闪烁,也不能太短,否则会很暗。4、取消段选,消隐
5、!若要显示多段,重复以上4步!*/#include#include#defineucharunsignedchar#defineuintunsignedintsbitL8=P1^7;sbitP2_3=P2^3;//74HC138--/EIsbitP2_2=P2^2;//74HC138--A2sbitP2_1=P2^1;//74HC138--A1sbitP2_0=P2^0;//74HC138--A0ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x9
6、9,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管0——Fsbitsda=P1^2;sbitscl=P1^0;文案大全实用文案uchara;voiddelay()//延时函数{;;}voidstart()//开始信号{sda=1;_nop_();scl=1;_nop_();sda=0;_nop_();}voidstop()//停止信号{sda=0;_nop_();scl=1;_nop_();sda=1;_nop_();}voidAck()
7、//发确认信号{scl=0;_nop_();sda=0;_nop_();scl=1;_nop_();scl=0;_nop_();}voidNoAck()//发无确认信号{scl=0;_nop_();sda=1;_nop_();scl=1;文案大全实用文案_nop_();scl=0;_nop_();}//voidrespons()//应答,在数据传输8位后,等待或者发送一个应答信号//{//uchari;//scl=0;//_nop_();//sda=1;//_nop_();//scl=1;//scl拉高,准备读数据/
8、/delay();//while((sda==1)&&(i<250))i++;//读数据//scl=0;//scl拉低,数据读完毕,(必须)//delay();////}voidinit()//初始化信号,拉高SDA和SCL两条总线{sda=1;scl=1;}bitwrite_byte(uchardate)//写一字节,将date写入AT24C