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