-
概念先行
RAM:可讀可寫,掉電消失
ROM:隻讀,掉電儲存,存一些開機引導相關資訊
兩者同屬記憶體,常說的電腦硬碟屬外存。
SRAM就是速度快一點,EEPROM就是可重複程式設計可擦除,FLASH就是進階的EEPROM。
STC8利用ISP/IAP技術将内部DATA FLASH當EEPROM,可以自己設定,512位元組單扇區擦除,每次擦除一個扇區,建議同一次修改的資料在一個扇區内。
-
寄存器
資料寄存器 IAP_DATA
讀:讀出的EEPROM的資料儲存在其中
寫:寫之前必須将資料放入其中,再發寫指令
位址寄存器
IAP_ADDRH:目标位址高位元組
IAP_ADDRL:目标位址低位元組
指令寄存器IAP_CMD
低兩位置指令:
00:空
01:讀EEPROM目的位址的1位元組
10:寫EEPROM目的位址的1位元組
11:擦除目的位址的1扇區
控制寄存器IAP_CONTR (STC8A、8F)
B7:IAPEN:為1使能EEPROM操作
B6:SWBS:軟體複位選擇控制位,為1軟體複位後從ISP監控代碼區開始執行程式,為0軟複後從使用者代碼開始執行程式。
B5:SWRST:軟體複位控制位:為1産生軟體複位。為0無動作
B4:CMD_FAIL:操作失敗狀态位,為0操作正确
B2-B0:設定EEPROM操作等待的時間,針對EEPROM操作的等待時間是硬體自動完成的,使用者不需要加額外延時,此時鐘是指對主時鐘分頻後的時鐘,即CPU實際工作的時鐘。
011 12MHz
001 24MHz
觸發寄存器IAP_TRIG
指令,位址,資料,控制寄存器配置完成後,向觸發寄存器依次寫入5AH,A5H。
觸發指令寫完CP處于IDLE狀态,執行完IQAP指令CPU才恢複正常
-
其他差別
特别的,對于STC8C,單列了一個擦除等待時間控制寄存器IAP_TPS,不像STC8A要配置IAP_CONTR的低3位 ,若工作頻率12MHz,設IAP_TPS為12,若工作頻率為24MHz,該位設24即可。
EEPROM按頁擦除,STC8的一頁是512位元組,一頁是從0000h到01FFh,