标题: 用STC12C5A60S2的EEPROM作掉电数据存储 [打印本页]

作者: haikuotian    时间: 2020-6-3 09:04
标题: 用STC12C5A60S2的EEPROM作掉电数据存储
本帖最后由 haikuotian 于 2020-6-3 09:07 编辑

最近用STC12C5A60S2做了一个电池充放电管理,在运作中,充电和放电终止值、充入和放出安时数据,工作状态、都需要掉电记忆。这样就想起了STC12C5A60S2的EEPROM
STC12C5A60S2有1024字节的EEPROM分两个扇区,每扇区512字节,字节中,只可以从“1”写成“0”,不可以从“0”写成“1”,如果字节单元是“0”,必须先擦除成“1”,再进行写入操作,当然,想把字节8位都写成“0”,就不用擦,擦除是按扇区擦的,每次都是把整个扇区都擦成“1”(&HFF、0xFF、0FFH)。
STC12C5A60S2有专用的低压监测端口P4.6(44脚的器件的第29脚)
STC12C5A60S2有专用P4.6端口中断出口在地址0033H。
应用中在地址0033H指向中断处理程序(比如:LJMP P46CHULI)
在程序中加入中断处理程序。比如:
P46CHULI: 中断响应
          擦除要用的扇区
          按位写入要保存的数据
          从中断退出
注意:STC12C5A60S2擦除一个扇区大约要22毫秒,使用时要考虑时间问题(因为是掉电保存)
我对电路稍微改动一下,为了确保每次掉电数据保存都成功,在进入中断之后我先关闭了能关闭的所有高耗电的电路,比如LED显示器等,然后再操作EEPROM 的擦除和写入
改动如图:




更加详细的资料请参阅 STC12C5A60S2 厂家资料


作者: cdlhb    时间: 2022-8-27 09:45
然后呢?C语言怎么实现?
作者: 18680365301    时间: 2023-4-4 16:51
为了更安全,再使用双备份的方式
作者: 大漠孤烟001    时间: 2023-4-5 15:21
检查7805前端就够了,没必要加7808

1.png (369.04 KB, 下载次数: 58)

1.png





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1