欢迎来到天天文库
浏览记录
ID:27752450
大小:157.75 KB
页数:12页
时间:2018-12-05
《关于断电延时和eeprom数据保存stc掉电保存数据程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、关于断电延时和EEPROM数据保存(申酷!!)EEPROM申酷,数据,延时,断电原来想用AD检测断电的,做出来测试几遍不行,听了各位的意见。就花丫一个下午完成用一个I/O断电检测电路。把法拉电容改小了,节约开支,一个2200uf的普通电容就足够了。经测试能正常保存数据到KPR0M。电路见下面的图片链接。该解决方案的程序:^include^include〈intrins.h>//汇编头文件#dcfincucharunsignedchar#dcfincuintunsignedintsbitpl2=Pl2;uchari;
2、voiddelay(uintz)//延时ms{uintx,y;for(x=112;x>0;x—)for(y=z;y>0;y—);}voidinit_232(void)//串门初始化{SCON=0x50;TMOD
3、=0x20;Till=Oxfa;//波特率9600TL1=Oxfa;PCON
4、=0x80;EA=1;ES=1;TRI=1;voidsend_char(ucharw)//串门发送一个字符{SBUF=w;while(TI==0);TI=0;//串口发送一个字voidsendstring(uchar氺s,uintstringlength)符串{u
5、inti=0;do{sendchar(本(s+i));i++;}while(i6、ADDRH=x;ISPADDRL=y;ISPCONTR=0x9b;ISPCMD=0x02;ISPTRIG=0x46;ISPTRIG=0xb9;_nop_();ISPCONTR=0;ISPCMD=0;ISPTRIG=O;I.AEEPROM扇区擦除*/voidccpromerase(ucharx,y){ISPADDRH=x;ISPADDRL=y;ISPCONTR=0x9b;ISPCMD=0x03;ISPTRIG=0x46;ISPTRIG=0xb9;_nop_();ISPCONTR=0;ISPCMD=0;ISPTRIG=O;voidmain(){init7、232();i=0;delay(10);while(l){if((pl2==0)&&(i==0)){"擦//在第一ccpromerase(0x10,0x00);除第一扇区delay(1);ccpromwrite(0x10,0x00,0x88);扇区写入88delay(1);i=1;}/*串口接收中断函数*/voidRS232()interrupt4{uchareh=0;if(RI){eh=SBUF;RI=0;sendchar(eh);}switch(eh){case1:sendchar(eepromread(0x10,0x00));/串口助手输入18、6进制1,读EEPROM第一扇区break;case2:sendchar(eepromread(0x12,0x00));/串口助手输入16进制2,读EEPROM第2扇区break;ease3:eepromwrite(0x10,0x00,0x55);//串口助手输入16进制3,写EEPROM第一扇区55break;ease4:eepromwrite(0x12,0x00,0x66);//串口助手输入16进制4,写EEPROM第2扇区66break;case5:eepromerase(0x10,0x00);//串口助手输入16进制5,擦除EEPROM第一9、扇区break;case6:eepromerase(0x12,0x00);//串口助手输入16进制6,擦除EEPROM第2扇区break;default:break;这是一段stc单片机EEPROM掉电存储程序,麻烦大家帮我看看哈,怎么凋用吋输出有H题啊,希望给个调用的例子©悬赏分:0-提问时间2010-8-2119:32includeinclude#include#include’•..h一fileseeprom.h"voidisp_iap_enable(void){EA=0;/*关10、屮断*/ISPCONTR=ISPCONTR&0x18;ISP_CONTR=ISP一CONTR11、WAIT—TIME;ISP_
6、ADDRH=x;ISPADDRL=y;ISPCONTR=0x9b;ISPCMD=0x02;ISPTRIG=0x46;ISPTRIG=0xb9;_nop_();ISPCONTR=0;ISPCMD=0;ISPTRIG=O;I.AEEPROM扇区擦除*/voidccpromerase(ucharx,y){ISPADDRH=x;ISPADDRL=y;ISPCONTR=0x9b;ISPCMD=0x03;ISPTRIG=0x46;ISPTRIG=0xb9;_nop_();ISPCONTR=0;ISPCMD=0;ISPTRIG=O;voidmain(){init
7、232();i=0;delay(10);while(l){if((pl2==0)&&(i==0)){"擦//在第一ccpromerase(0x10,0x00);除第一扇区delay(1);ccpromwrite(0x10,0x00,0x88);扇区写入88delay(1);i=1;}/*串口接收中断函数*/voidRS232()interrupt4{uchareh=0;if(RI){eh=SBUF;RI=0;sendchar(eh);}switch(eh){case1:sendchar(eepromread(0x10,0x00));/串口助手输入1
8、6进制1,读EEPROM第一扇区break;case2:sendchar(eepromread(0x12,0x00));/串口助手输入16进制2,读EEPROM第2扇区break;ease3:eepromwrite(0x10,0x00,0x55);//串口助手输入16进制3,写EEPROM第一扇区55break;ease4:eepromwrite(0x12,0x00,0x66);//串口助手输入16进制4,写EEPROM第2扇区66break;case5:eepromerase(0x10,0x00);//串口助手输入16进制5,擦除EEPROM第一
9、扇区break;case6:eepromerase(0x12,0x00);//串口助手输入16进制6,擦除EEPROM第2扇区break;default:break;这是一段stc单片机EEPROM掉电存储程序,麻烦大家帮我看看哈,怎么凋用吋输出有H题啊,希望给个调用的例子©悬赏分:0-提问时间2010-8-2119:32includeinclude#include#include’•..h一fileseeprom.h"voidisp_iap_enable(void){EA=0;/*关
10、屮断*/ISPCONTR=ISPCONTR&0x18;ISP_CONTR=ISP一CONTR
11、WAIT—TIME;ISP_
此文档下载收益归作者所有