使用EEPROM或是FLASH,或是使用片上的FLASH(有一些51的芯片,支持对片上的程序空间的FLASH进行读写)
时实存储这个值,更改后立刻进行存储。
开机后先读取这个值,再赋值给你的变量。
由于可能存在这个值刚更改而没有存储时就断电的情况,所以,要加断电检测,并加个大的电容或是后备电池,检测到断电后存储后不再运行其他程序。直到断电关机
如果就C52单片机本身来说,你要断电保存数据,你需要将数据保存才FLASH里面才行,这个我没试过,也不知道行不行,没听过有人实现过。
如果你加一个EEPROM,那肯定行,比如AT24C02 等。
也有其他的单片机内部本来就集成了EEPROM,如stc12c5a60s2。
也有STM32单片机,直接用一个没有用过的FLASH扇区来保存数据,也是可以的。
可以接eeprom如AT24C02.修改后将这个值写入eeprom,开机时将这个值读出就行了。这是AT24C02的例程http://www.51hei.com/mcu/3029.html
STC89C52也有内部eeprom可以不外接其他芯片直接存在单片机中,这是介绍加例程https://wenku.baidu.com/view/b3a7878884868762caaed5da.html