|
|||||||||||
16F84 |
16F84 的PDF資料下載,1354128K |
其他型號(hào) |
| 16F84的供應(yīng)商: |
聯(lián)系人:李陽/陳定利 電話:0755-23300413/0755-23576202 |
聯(lián)系人:林佳偉/林佳偉 電話:13692203079/13692203079 |
聯(lián)系人:顏小姐/江先生 電話:075583288856/ |
聯(lián)系人:費(fèi)安冬/柯飛/柯有旭 電話:13824359716/18872315919/13684924749 |
|
| >>更多供應(yīng)商 | |||||
PIC單片機(jī)16F84的內(nèi)部硬件資源(八)
http://www.hificat.com
12 E2PROM的使用方法
在PIC16F84單片機(jī)中,除了可直接尋址的由SRAM構(gòu)成的數(shù)據(jù)存儲(chǔ)器外,還另有可電擦、電寫的E2PROM數(shù)據(jù)存儲(chǔ)器。該E2PROM共有64字節(jié),其地址為00~3FH單元。由于E2PROM具有在線改寫,并在掉電后仍能保持?jǐn)?shù)據(jù)的特點(diǎn),可為用戶的特殊應(yīng)用提供方便。16F84的E2PROM在正常操作時(shí)的整個(gè)VDD工作電壓范圍內(nèi)是可讀寫的,典型情況下可重寫100萬次,數(shù)據(jù)保存期大于40年。
PIC16F84單片機(jī)的E2PROM并未映象在寄存器組空間中,所以它們不能像SRAM通用寄存器那樣用指令直接尋址訪問,而需要通過專用寄存器進(jìn)行間接尋址操作。因此,在16F84單片機(jī)中增加了以下四個(gè)專用寄存器,即EECON1、EECON2、EEDATA、EEADR,專門用于片內(nèi)對(duì)E2PROM的操作。該專用寄存器中,EEDATA存放8位讀/寫數(shù)據(jù),EEADR存放正在被訪問的E2PROM存儲(chǔ)單元的地址。
EECON1是只有低五位的控制寄存器,其高三位不存在,讀作“0”。具體見下表。
D7 D6 D5 D4 D3 D2 D1 D0
- - - EEIF WRERR WREN WR RD
控制位RD和WR分別用于讀寫操作的啟動(dòng),這兩位可以由軟件置1,以啟動(dòng)讀、寫操作,但不能用軟件清零,原因是防止不恰當(dāng)?shù)能浖僮鲿?huì)使寫入失敗。當(dāng)讀寫操作完成后由硬件自動(dòng)清零,表示此刻未對(duì)E2PROM進(jìn)行讀寫操作。當(dāng)WREN位被置1時(shí),允許進(jìn)行寫操作,而在上電時(shí)該位被清零。在正常操作時(shí),一旦有MCLR或WDT復(fù)位,WRERR位就置1,表示寫操作被中止。當(dāng)寫操作完成時(shí),EEIF被置1(需由軟件清零);當(dāng)寫操作未完成或尚未啟動(dòng)時(shí),EEIF為“0”。
EECON2僅是一個(gè)邏輯上的寄存器,而不是一個(gè)物理上存在的寄存器,讀出時(shí)將總是為零。它只在寫操作時(shí)起作用。
(1)E2PROM的讀操作
為進(jìn)行一次E2PROM讀操作,需執(zhí)行如下步驟:
1)將E2PROM的單元地址放入EEADR。2)置RD(EECON的D0位)=1。3)讀取EEDATA寄存器。
程序段舉例,讀取25H處的E2PROM存儲(chǔ)器數(shù)據(jù):
…
BCF STATUS,RP0 ;選Bank0
MOVLW 25H
MOVWF EEADR ;地址25H→EEADR
BSF STATUS,RP0 ;選Bank1
BSF EECON1,RD ;啟動(dòng)讀操作
BCF STATUS,RP0 ;選Bank0
MOVF EEDATA,W ;將E2PROM數(shù)據(jù)
… ;讀入W寄存器
(2)E2PROM的寫操作
要進(jìn)行一次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;啟動(dòng)寫操作
7 BSF INTCON,GIE ;開放總中斷
…
注意:上列程序中的2~6條各語句必須嚴(yán)格執(zhí)行,否則不能啟動(dòng)E2PROM的寫操作。而1~7條則是我們建議用戶執(zhí)行的操作,即在E2PROM寫操作序列步驟中要關(guān)閉所有中斷,以免這個(gè)序列被中斷打斷。
另外,WREN(EECON1的D2位)是用來保證E2PROM不會(huì)被意外寫入而設(shè)置的,所以,在平時(shí),用戶程序應(yīng)保持WREN=0以禁止寫操作。只有當(dāng)需對(duì)E2PROM寫入時(shí)才置WREN=1,并在寫入完成后將其恢復(fù)為0。用戶只有置WREN=1后才能置WREN=1啟動(dòng)寫操作。上電復(fù)位后WREN位自動(dòng)清零。
E2PROM寫操作約需10ms的時(shí)間才能完成。用戶程序可通過查詢WR位的狀態(tài)(當(dāng)WR=0時(shí)表示操作已完成),或者用E2PROM寫入完成中斷來判斷E2PROM寫操作是否完成。如要使用中斷,應(yīng)先置EEIF(INTCON的D6)為1,以開中斷。E2PROM寫完成要中斷標(biāo)志位EEIF,只能用軟件清零。
|
|||
|
|
|
© 2026 維庫電子市場(chǎng)網(wǎng)(www.hbjingang.com) 版權(quán)所有 經(jīng)營許可證編號(hào):浙B2-20050339 版權(quán)聲明
二十一年專注打造優(yōu)質(zhì)電子元器件采購網(wǎng)、IC交易平臺(tái)。 |