PIC单片机内部EEPROM数据保存读取

#include"12864.h"
__CONFIG(0x3ffa);
//EEPROM写数据函数
void WriteEE(u8 add,u8 data)
{
do{}
while(WR == 1);//等待写完成
EEADR = add;//写入地址信息
EEDATA = data;//写入数据信息
EEPGD = 0;//操作EEPROM
WREN = 1; //写EEPROM允许
EECON2 = 0x55;//写入特定时序
EECON2 = 0xaa;
WR = 1; //执行写操作
do{}
while(WR == 1);//等待写完成
WREN = 0;//禁止写入EEPROM
}
//EEPROM读数据函数
u8 ReadEE(u8 add)
{
u8 d;
do{}
while(RD == 1);//等待读完成
EEADR = add;//写入要读的址址
EEPGD = 0;//操作EEPROM
RD = 1;//执行读操作
do{}
while(RD == 1);//等待读完成
d= EEDATA;
return d;//返回读取的数据
}
void main()
{
u8 d;
lcd_init();
show_string(0x80,"pic");
WriteEE(3,100);
d=ReadEE(3);
show_number(0x90,d);
while(1)
{

}
}
这个程序在液晶屏上能显示读到的数据是100;
但是我想检测断电能不能保存,我就把主程序里面的WriteEE(3,100);去掉了,第二次只读3号地址,显示读到的结果是255。难道是没保存,还是编程器把原来的EEPROM的数据擦除了?

第1个回答  2013-10-29

写程序的时候是会重新改写eeprom内容的,这个你需要修改下程序,断电验证比较合适。

追问

你这个是在哪里的

追答

写程序的时候有提示啊 windows --> output

第2个回答  2013-10-29
保存是可以的 但是你不能重新烧写程序。
你可以 通过一个按键, 按一下 写入a++
不按则不写 然后断电 不按按键 看屏幕显示是多少。。是不是对的就OK了。。。追问

写了一个按键断电后,归0了,还是没保存

可以了,原来是我显示的是那个没保持的++的数,

追答

恭喜!

本回答被提问者采纳

PIC单片机内部EEPROM数据保存读取
写程序的时候是会重新改写eeprom内容的,这个你需要修改下程序,断电验证比较合适。

给说说PIC单片机当中的EEPROM是做什么的吗?
EEPROM其实是有专门的芯片的,主要是保存数据用的,有的单片机把这一功能集成到单片机的内部,这样就使得单片机的外围电路更简单,元器件更少。当然要存取信息就要用专门的指令,说明书中有详细的指令代码。

...我使用的是18F4520的单片机,求一个读写EEPROM的程序实例_百度...
EEADR = Write_Addr; \/\/写入低地址 EEDATA = Write_Byte; \/\/写入数据 EECON1bits.EEPGD = 0; \/\/访问EEPROM存储区 EECON1bits.CFGS = 0; \/\/访问EEPROM或程序区 EECON1bits.WREN = 1; \/\/充许擦写 INTCONbits.GIE = 0; \/\/禁止所有中断 EECON2 = 0x55; \/\/...

基于PIC单片机对EEPROM读写的一种方法
从指定地址下读取一个字节:uchar ReadEEPROM(uchar EE_Addr){ EEADR=EE_Addr; \/\/给地址 EEPGD=0; \/\/ RD=1; \/\/开始读 return EEDATA; \/\/直接返回读取的EEPROM } 将一个字节的数据写入指定地址里:bool WriteEEPROM(uchar EE_data,uchar EE_addr){ uchar j=0;\/\/多次执行 EEI...

如何保存单片机程序设定的参数,停电后这些参数不会消失。
很多单片机(如PIC16F87X系列)除了基本的ROM和RAM外,都带有内部EEPROM,CPU是在运行时可以对EEPROM进行读写的。EEPROM掉电后的信息是不会丢失的。

pic单片机 的EEPROM 问题
库文件里有eeprom读写函数,直接调用吧。可以确定你程序有问题。要么你写的时候都写成0x11,要么你读的时候程序有问题

PIC单片机内置E2PROM很容易丢码,怎么回事
通常,写入後应检查, 并进行错误处理\/提示.EEPROM作用是, 长时间保持资料, 并不是拿来当RAM随时读写之用.如果有保存资料必要, 但是资料又时常变动, 可以考虑定时备份.若有掉电可能, 可以考虑供电侦测及低电处理, 用以在掉电发生时, 立即储存资料.另外一个方案是增加使用量, 循环使用不同位置, 以...

PIC单片机写EEPROM时掉电会出现不准吗,什么趋势
EEPROM是按照字节写入的。如果是在给EEPROM中写入数据期间掉电,那么已经完成写入的单元其数据会完好的保存,而没有彻底完成写入操作的单元,数据是不可预知的,因为你不知道对这个存储单元来说,在外部掉电后,其实际控制信号还得多久(不但电源入口处有电容,这样可以延长电压跌落的时间,而且逻辑电平的...

PIC单片机写EEPROM时掉电会出现不准吗,什么趋势
EEPROM是按照字节写入的。如果是在给EEPROM中写入数据期间掉电,那么已经完成写入的单元其数据会完好的保存,而没有彻底完成写入操作的单元,数据是不可预知的,因为你不知道对这个存储单元来说,在外部掉电后,其实际控制信号还得多久(不但电源入口处有电容,这样可以延长电压跌落的时间,而且逻辑电平的...

pic单片机EEPROM怎么编写程序啊??
就写:eeprom_write(0x55,0x10);同理,如果想读取0x55地址处的值,就写:ee_value = eeprom_read(0x55);如果编译时编译器提示找不到eeprom_routines.h,可以在 X:\\Program Files\\HI-TECH Software\\PICC\\9.81\\include 目录下找,然后复制到自己项目文件夹下。对了,我用的是MPLab IDE,编译器...

相似回答