導航:首頁 > 操作系統 > 51單片機eeprom如何寫入

51單片機eeprom如何寫入

發布時間:2025-02-24 23:45:53

A. 51單片機怎麼使用內部EEPROM,上電次數、斷電記憶,怎麼實現計到最大值6千次。

STC 很多都有內部EEPROM,如11或12系列的STC單片機,讀寫內部EEPROM有一定限制,比如寫,必須先擦除再寫,而且一次必須擦除一個扇區,所以還是很麻煩的,只能覆蓋。

要實兆襪現你的功能,一點問題沒有,上電後先讀取上次的計數值,再加1重新寫進去就可以了。
以下是EEPROM讀寫子程序供參考:
;------------------------------------------------
;讀一位元組,調用前需打開 IAP 功能,入口:DPTR = 位元組地址,返回:A = 讀出位元組
IAP_READ:
MOV IAP_CONTR,#ENABLE_IAP ;打開 IAP 功能, 設置 Flash 操作等待時間
MOV IAP_CMD,#ISP_IAP_BYTE_READ ;設置為IAP/ISP/EEPROM位元組讀模式命令
MOV IAP_ADDRH,DPH ;設置目標單元地址的高8位地址
MOV IAP_ADDRL,DPL ;設置目標單元地址的低8位地址
;CLR EA
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP觸發寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h後,ISP/IAP命令立即被觸發起動
NOP
MOV A,IAP_DATA ;讀出的數據在IAP_DATA單元中,送入累加器A
;SETB EA
LCALL IAP_Disable ;關閉 IAP 功能, 清相關的特殊功能寄存器,使CPU處於安全狀態,
;一次連續的IAP操作完成之後建議關閉IAP功能,不需要每次都關
RET
;------------------------------------------------
;位元組編程,散鬧調用前需打開 IAP 功能,入口:DPTR = 位元組地址, A=須編程位元組的數據
IAP_WRITE:
MOV IAP_CONTR,#ENABLE_IAP ;打開 IAP 功能, 設置 Flash 操作等待時間
MOV IAP_CMD,#ISP_IAP_BYTE_PROGRAM ;設置為IAP/ISP/EEPROM位元組編程模式命令
MOV IAP_ADDRH,DPH ;設置目標單元地址的高8位地址
MOV IAP_ADDRL,DPL ;設置目標單元地址的低8位地址
MOV IAP_DATA,A ;要編程的數據先送進ISP_DATA寄存器
;CLR EA
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP觸發寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h後,ISP/IAP命令立即被觸發起動
NOP
;SETB EA
LCALL IAP_Disable ;關閉 IAP 功能, 清相關的特殊功能寄存器,使CPU處於安全狀態,
;一次連續的IAP操作完成之後建議關閉IAP功能,不需要每次都關
RET
;------------------------------------------------
;擦除扇區, 入口:DPTR = 扇區地址
IAP_Erase:
MOV IAP_CONTR,#ENABLE_IAP ;打開 IAP 功能, 設置 Flash 操作等待時間
MOV IAP_CMD,#03H ;設置為IAP/ISP/EEPROM扇區擦除模式命令
MOV IAP_ADDRH,DPH ;設置目標單元地址的高8位地址
MOV IAP_ADDRL,DPL ;設置目標單元地址的低8位地址
;CLR EA
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP觸發寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h後,ISP/IAP命令立即被觸發起動
NOP
;SETB EA
LCALL IAP_Disable ;關閉 IAP 功能, 清相關的特殊功能寄存器,使CPU處於安全狀態,
;一族掘激次連續的IAP操作完成之後建議關閉IAP功能,不需要每次都關
RET
;------------------------------------------------
IAP_Disable:
;關閉 IAP 功能, 清相關的特殊功能寄存器,使CPU處於安全狀態,
;一次連續的IAP操作完成之後建議關閉IAP功能,不需要每次都關
MOV IAP_CONTR,#0 ;關閉 IAP 功能
MOV IAP_CMD,#0 ;清命令寄存器,使命令寄存器無命令,此句可不用
MOV IAP_TRIG,#0 ;清命令觸發寄存器,使命令觸發寄存器無觸發,此句可不用
MOV IAP_ADDRH,#0FFH ;送地址高位元組單元為00,指向非EEPROM區
MOV IAP_ADDRL,#0FFH ;送地址低位元組單元為00,防止誤操作
RET

閱讀全文

與51單片機eeprom如何寫入相關的資料

熱點內容
程序員放棄後會怎樣 瀏覽:182
河北模具編程 瀏覽:187
adb查找命令 瀏覽:321
安卓手機視頻文件夾怎麼打開 瀏覽:309
平板加密手機後怎麼關閉 瀏覽:566
流媒體伺服器應該注意什麼 瀏覽:536
d8命令編譯 瀏覽:964
壓縮包解壓需要多少空間 瀏覽:145
如何查找app屬性 瀏覽:388
android人臉識別技術 瀏覽:321
pc104編程 瀏覽:335
二維碼反編譯破解推廣 瀏覽:682
修改伺服器的mac地址 瀏覽:528
好玩的編程軟體 瀏覽:899
編程語言創始人有錢嗎 瀏覽:804
短視頻app怎麼獲客 瀏覽:15
查看雲伺服器的應用 瀏覽:435
javadump工具 瀏覽:565
程序員16g 瀏覽:445
程序員沒有辦法成為top怎麼辦 瀏覽:218