欢迎来到天天文库
浏览记录
ID:59211983
大小:17.50 KB
页数:5页
时间:2020-09-10
《基于51单片机的AT24C02断电数据保护程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/****************AT24C02A本程序功能就是实现断电保护,就是当断电时,能够保留原有(num)的数据,在下一次通电执行程序时,能够使num数据与断电前的数据相同****************/#include#defineucharunsignedcharsbitsda=P2^0;sbitscl=P2^1;uchara;voiddelay(){;;}voidstart()//开始信号{sda=1;delay();scl=1;delay();sda=0;delay();}voidstop()//停止{
2、sda=0;delay();scl=1;delay();sda=1;delay();}voidrespons()//应答{uchari;scl=1;delay();while((sda==1)&&(i<250))i++;scl=0;delay();}voidinit(){sda=1;delay();scl=1;delay();}voidwrite_byte(uchardate){uchari,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1;scl=0;delay();sda=CY;delay();
3、scl=1;delay();//scl=0;//delay();}scl=0;delay();sda=1;delay();}ucharread_byte(){uchari,k;scl=0;delay();sda=1;delay();for(i=0;i<8;i++){scl=1;delay();k=(k<<1)
4、sda;scl=0;delay();}returnk;}voiddelay1(ucharx){uchara,b;for(a=x;a>0;a--)for(b=100;b>0;b--);}voidwrite_add(ucharaddre
5、ss,uchardate){start();write_byte(0xa0);respons();write_byte(address);respons();write_byte(date);respons();stop();}ucharread_add(ucharaddress){uchardate;start();write_byte(0xa0);respons();write_byte(address);respons();start();write_byte(0xa1);respons();date=read_byte();sto
6、p();returndate;}intnum;voidmain(){init();num=read_add(23);//本行程序的功能是从地址23中读出数据赋值给某个变量while(1){//***************************需要写的程序write_add(23,num);//write_add(g,0x..);只要g小于256即可,本行程序的功能是想地址g中写入一个数据0x..num必须是0x十六进制delay1(100);//必须延时}}例程inta,biaozhi,count;ucharnum;voidmain(
7、){EA=1;ET1=1;TMOD=0x10;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TR1=1;num=0x00;init();num=read_add(1);while(1){if(count==20){count=0;num++;if(num==100){num=0;}write_add(1,num);delay1(100);}display(num/10,num%10);//注意,在有关定时器与数码管同时工作时,显示的位置}}voidtim1()interrupt3{TH1=(655
8、36-50000)/256;TL1=(65536-50000)%256;count++;}
此文档下载收益归作者所有