天天看點

51 單片機 EEPROM小結(FLASH)

  • 概念先行

    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即可。

    51 單片機 EEPROM小結(FLASH)
    51 單片機 EEPROM小結(FLASH)
    EEPROM按頁擦除,STC8的一頁是512位元組,一頁是從0000h到01FFh,

繼續閱讀