找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5038|回复: 3
收起左侧

用STC12C5A60S2的EEPROM作掉电数据存储

[复制链接]
ID:280206 发表于 2020-6-3 09:04 | 显示全部楼层 |阅读模式
本帖最后由 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 的擦除和写入
改动如图:

改造.jpg


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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:134868 发表于 2022-8-27 09:45 | 显示全部楼层
然后呢?C语言怎么实现?
回复

使用道具 举报

ID:485350 发表于 2023-4-4 16:51 | 显示全部楼层
为了更安全,再使用双备份的方式
回复

使用道具 举报

ID:1042619 发表于 2023-4-5 15:21 | 显示全部楼层
检查7805前端就够了,没必要加7808
1.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表