24C02掉电如何保存数据

来源:百度知道 编辑:UC知道 时间:2024/07/06 20:56:25
单片机驱动 24C02 所有驱动我都有而且也能操作,

比如说我现在 有个 数50 现在想把他给送到 24C02中保存 现在突然断电了,
等过段时间 我想把他从24C02中在读 出来 并显示到液晶屏上 这样是否可以保存住这个数据

void main()
{
init();
write_add(23,0xaa); 在地址23处写 0xaa
delay1(100);
P1=read_add(23); 在地址23出读 数据 并给P1口
while(1);
}

现在如果掉电了 在读数据是否 还是 0XAA???

这是我的主函数,

24C02是EEPROM,存储的数据掉电后不丢失。
首先,能实现对24C02的读写操作。
其次,在掉电之前必须存储数据到eeprom.下次开机读取出数据,实现掉电存储功能。
如果不知道何时掉电,每次数据更新都要重写EEPROM,确保eeprom的数据是最新的。
这样就做到了 24C02 保存参数,即使发生过掉电,也能保存有用的参数

最后注意,EEPROM是有寿命的,具体擦写寿命参照官方数据手册。

从你的函数看的出,EEPROM意义不大,首先开机的时候你写入的eeprom数据,之后读取出,里面的数据应该是0xaa;
突然掉电,你的程序还是从main处开始运行,还是先写了一下数据0xaa,之后再去读取。相当于每次开机你先写,再读取,读取到的数据不是上次断电前保存的,而是开机后写入的。

推荐做法:
1、开机,先读EEPROM.并判断数据是否合理。
2、当地址23的数据需要更新的时候,立即写eeprom.这样每次开机都能读到最后一次写入的数值

如果你的写和读程序没问题的话这样 24C02是可以保存数据的 不过要注意最要不要重复的执行写程序 因为24C02的EEPROM的擦写次数大约1000000次。