找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3718|回复: 3
打印 上一主题 下一主题
收起左侧

用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 厂家资料

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 (369.04 KB, 下载次数: 28)

1.png
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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