基于51单片机的AT24C02断电数据保护程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

/****************AT24C02A本程序功能就是实现断电保护,就是当断电时,能够保留原有(num)的数据,在下一次通电执行程序时,能够使num数据与断电前的数据相同****************/#includereg52.h#defineucharunsignedcharsbitsda=P2^0;sbitscl=P2^1;uchara;voiddelay(){;;}voidstart()//开始信号{sda=1;delay();scl=1;delay();sda=0;delay();}voidstop()//停止{sda=0;delay();scl=1;delay();sda=1;delay();}voidrespons()//应答{uchari;scl=1;delay();while((sda==1)&&(i250))i++;scl=0;delay();}voidinit(){sda=1;delay();scl=1;delay();}voidwrite_byte(uchardate){uchari,temp;temp=date;for(i=0;i8;i++){temp=temp1;scl=0;delay();sda=CY;delay();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;i8;i++){scl=1;delay();k=(k1)|sda;scl=0;delay();}returnk;}voiddelay1(ucharx){uchara,b;for(a=x;a0;a--)for(b=100;b0;b--);}voidwrite_add(ucharaddress,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();stop();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(){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=(65536-50000)/256;TL1=(65536-50000)%256;count++;}

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功