標題: 用STC12C5A60S2的EEPROM作掉電數(shù)據(jù)存儲 [打印本頁]

作者: haikuotian    時間: 2020-6-3 09:04
標題: 用STC12C5A60S2的EEPROM作掉電數(shù)據(jù)存儲
本帖最后由 haikuotian 于 2020-6-3 09:07 編輯

最近用STC12C5A60S2做了一個電池充放電管理,在運作中,充電和放電終止值、充入和放出安時數(shù)據(jù),工作狀態(tài)、都需要掉電記憶。這樣就想起了STC12C5A60S2的EEPROM
STC12C5A60S2有1024字節(jié)的EEPROM分兩個扇區(qū),每扇區(qū)512字節(jié),字節(jié)中,只可以從“1”寫成“0”,不可以從“0”寫成“1”,如果字節(jié)單元是“0”,必須先擦除成“1”,再進行寫入操作,當然,想把字節(jié)8位都寫成“0”,就不用擦,擦除是按扇區(qū)擦的,每次都是把整個扇區(qū)都擦成“1”(&HFF、0xFF、0FFH)。
STC12C5A60S2有專用的低壓監(jiān)測端口P4.6(44腳的器件的第29腳)
STC12C5A60S2有專用P4.6端口中斷出口在地址0033H。
應用中在地址0033H指向中斷處理程序(比如:LJMP P46CHULI)
在程序中加入中斷處理程序。比如:
P46CHULI: 中斷響應
          擦除要用的扇區(qū)
          按位寫入要保存的數(shù)據(jù)
          從中斷退出
注意:STC12C5A60S2擦除一個扇區(qū)大約要22毫秒,使用時要考慮時間問題(因為是掉電保存)
我對電路稍微改動一下,為了確保每次掉電數(shù)據(jù)保存都成功,在進入中斷之后我先關閉了能關閉的所有高耗電的電路,比如LED顯示器等,然后再操作EEPROM 的擦除和寫入
改動如圖:




更加詳細的資料請參閱 STC12C5A60S2 廠家資料


作者: cdlhb    時間: 2022-8-27 09:45
然后呢?C語言怎么實現(xiàn)?
作者: 18680365301    時間: 2023-4-4 16:51
為了更安全,再使用雙備份的方式
作者: 大漠孤煙001    時間: 2023-4-5 15:21
檢查7805前端就夠了,沒必要加7808

1.png (369.04 KB, 下載次數(shù): 58)

1.png





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1