• 歡迎光臨東莞市飛江電子科技有限公司官網!
    全國咨詢熱線

    13926563901

    18925580829

    飛江淘寶店鋪

    首頁>技術資料>PIC單片機

    PIC單片機16F84的內部硬件資源(八)

    發布時間:2018-04-07   瀏覽量:

    PIC單片機16F84的內部硬件資源(八)

     飛江科技 www.syhtzly.com

        12  E2PROM的使用方法
      在PIC16F84單片機中,除了可直接尋址的由SRAM構成的數據存儲器外,還另有可電擦、電寫的E2PROM數據存儲器。該E2PROM共有64字節,其地址為00~3FH單元。由于E2PROM具有在線改寫,并在掉電后仍能保持數據的特點,可為用戶的特殊應用提供方便。16F84的E2PROM在正常操作時的整個VDD工作電壓范圍內是可讀寫的,典型情況下可重寫100萬次,數據保存期大于40年。
      PIC16F84單片機的E2PROM并未映象在寄存器組空間中,所以它們不能像SRAM通用寄存器那樣用指令直接尋址訪問,而需要通過專用寄存器進行間接尋址操作。因此,在16F84單片機中增加了以下四個專用寄存器,即EECON1、EECON2、EEDATA、EEADR,專門用于片內對E2PROM的操作。該專用寄存器中,EEDATA存放8位讀/寫數據,EEADR存放正在被訪問的E2PROM存儲單元的地址。
      EECON1是只有低五位的控制寄存器,其高三位不存在,讀作“0”。具體見下表。
      D7 D6 D5 D4  D3  D2 D1 D0
       -   -  - EEIF WRERR WREN WR RD
      控制位RD和WR分別用于讀寫操作的啟動,這兩位可以由軟件置1,以啟動讀、寫操作,但不能用軟件清零,原因是防止不恰當的軟件操作會使寫入失敗。當讀寫操作完成后由硬件自動清零,表示此刻未對E2PROM進行讀寫操作。當WREN位被置1時,允許進行寫操作,而在上電時該位被清零。在正常操作時,一旦有MCLR或WDT復位,WRERR位就置1,表示寫操作被中止。當寫操作完成時,EEIF被置1(需由軟件清零);當寫操作未完成或尚未啟動時,EEIF為“0”。
      EECON2僅是一個邏輯上的寄存器,而不是一個物理上存在的寄存器,讀出時將總是為零。它只在寫操作時起作用。
      (1)E2PROM的讀操作
      為進行一次E2PROM讀操作,需執行如下步驟:
      1)將E2PROM的單元地址放入EEADR。2)置RD(EECON的D0位)=1。3)讀取EEDATA寄存器。
      程序段舉例,讀取25H處的E2PROM存儲器數據:
      …
      BCF   STATUS,RP0 ;選Bank0
      MOVLW 25H
      MOVWF EEADR   ;地址25H→EEADR
      BSF   STATUS,RP0 ;選Bank1
      BSF EECON1,RD ;啟動讀操作
      BCF STATUS,RP0 ;選Bank0
      MOVF EEDATA,W ;將E2PROM數據
            …   ;讀入W寄存器
      (2)E2PROM的寫操作
      要進行一次E2PROM寫操作,需執行如下步驟:
      1)將E2PROM單元地址放入EEADR;2)將寫入數據放入EEDATA;3)執行一段控制程序段。
      例如:將數據99H寫入E2PROM的25H單元,需執行下列程序:
           …
      BCF   STATUS,RP0 ;送Bank0
      MOVLW 25H
      MOVWF EEADR    ;地址→EEADR
      MOVLW 99H
      MOVWF EEDATA   ;寫入數據→EEDATA
      BSF   STATUS,RP0??;選Bank1
      BSF   EECON1,WREN;寫操作功能允許
      1 BCF   INTCON,GIE??;關閉總中斷
      2 MOVLW 0x55
      3 MOVWF EECON2
      4 MOVLW 0xAA
      5 MOVWF EECON2 ;操作EECON2
      6 BSF  EECON1,WR;啟動寫操作
      7 BSF   INTCON,GIE ;開放總中斷
        …
      注意:上列程序中的2~6條各語句必須嚴格執行,否則不能啟動E2PROM的寫操作。而1~7條則是我們建議用戶執行的操作,即在E2PROM寫操作序列步驟中要關閉所有中斷,以免這個序列被中斷打斷。
      另外,WREN(EECON1的D2位)是用來保證E2PROM不會被意外寫入而設置的,所以,在平時,用戶程序應保持WREN=0以禁止寫操作。只有當需對E2PROM寫入時才置WREN=1,并在寫入完成后將其恢復為0。用戶只有置WREN=1后才能置WREN=1啟動寫操作。上電復位后WREN位自動清零。
      E2PROM寫操作約需10ms的時間才能完成。用戶程序可通過查詢WR位的狀態(當WR=0時表示操作已完成),或者用E2PROM寫入完成中斷來判斷E2PROM寫操作是否完成。如要使用中斷,應先置EEIF(INTCON的D6)為1,以開中斷。E2PROM寫完成要中斷標志位EEIF,只能用軟件清零。

      成都 衛東

      知識競賽試題:
      25簡述PIC單片機帶E2PROM的數據存儲器的特點和用途。

    黑人粗大无码AV人妻一区