单片机掉电后,如何保留程序执行后得到的变量,以便控制单片机上电时执行那段程序??

如题所述

利用MAX813L芯片检测外部掉电,然后通过单片机中断来控制保存掉电时的参数,在外部电源与单片机单独供电之间须加一个IN5819二极管,在单片机供电侧加一个4700uf的大电容即可保持外部断电后单片机仍可维系1S左右的时间来保存你的系统状态是搓搓有余的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-01
可以外接存储芯片或者直接使用单片机内部的存储器如EEPROM,在程序运行时,当变量有变化时就存起来,这样掉电后变量值就保存了
第2个回答  2013-03-01
这得利用锁存器实现,比如74ls373芯片,把变量锁存起来追问

我用的是stc52单片机,不知其内部有没有类似功能的锁存器直接用,而不用改变硬件?

追答

这可不行!stc52内部没有EEPROM也没有类似锁存器,必须改变硬件

第3个回答  2013-03-01
你这个是没有办法的,STC没有掉电EEPROM,你要么换芯片,要么加个EEPROM,例如加AT24C16,如果你不改电路,没有别的办法。
再不行,就要在外部加个电池,平时由电源供电,用外中断引脚检测电源是否有电,一旦电源没电了,单片机迅速进入中断,并且单片机进入休眠状态。本回答被提问者采纳