蘇 暢
(雞西大學(xué),黑龍江 雞西 158100)
X25045是美國的Xicor公司生產(chǎn)的標準化8腳串行E2PROM,它將看門狗定時器、E2PROM、電壓監(jiān)控3種基本功能組合在一個封裝內(nèi),采用SPI串行外設(shè)接口方式,降低了硬件設(shè)計成本,提高了系統(tǒng)的可靠性,減少了對印刷電路板的空間要求,降低了系統(tǒng)成本和功耗,是一種比較典型的單片機外圍芯片。X25045外部引腳如圖1所示。
(1)其引腳功能如下。
CS:芯片片選擇輸入端。當(dāng)該引腳保持低電平時X25045工作,該引腳電平變化將復(fù)位看門狗定時器。
SO:串行數(shù)據(jù)輸出端。數(shù)據(jù)在SCK的下降沿輸出到SO引腳上。
SI:串行數(shù)據(jù)輸入端。數(shù)據(jù)或控制字由此引腳串行輸入到X25045。
SCK:串行時鐘輸入端。其上升沿將數(shù)據(jù)或命令寫入,下降沿將數(shù)據(jù)輸出。
WP:寫保護輸入端。當(dāng)它保持低電平時,芯片寫操作被禁止,其他功能正常;當(dāng)它保持高電平時,芯片開放寫操作,其他功能正常。
Vss:電源地引腳。
Vcc:電源電壓輸入引腳。
RESET:單片機復(fù)位輸入引腳(即復(fù)位輸出引腳)漏極開路輸出方式,高電平有效。
(2)控制字與寄存器。
X25045芯片的控制字輸入、數(shù)據(jù)和地址的輸入為八位方式,高位在前低位在后。在進行讀、寫操作前,應(yīng)該先向它發(fā)出控制字,控制字及控制字格式如表1所示。
表1 X25045控制字
(3)狀態(tài)寄存器。
RDSR指令可以訪問的狀態(tài)寄存器。狀態(tài)寄存器可以在任何時間讀、取,即使是在一個寫周期。狀態(tài)寄存器的格式如表2。
表2 狀態(tài)寄存器的格式
發(fā)送WREN、WRDI、RDSR命令時,沒有必要發(fā)送一個字節(jié)的地址或數(shù)據(jù)。
寫控制位(WIP)位表示X25043/45是否繁忙的寫操作。當(dāng)設(shè)置為“1”,一個寫操作正在進行中;當(dāng)設(shè)定為“0”時,沒有寫操作正在進行中。在寫操作過程中,所有其他位被設(shè)置為“1”,該WIP位是只讀狀態(tài)。
寫使能鎖存(WEL)位指示其狀態(tài) “寫允許”鎖存器。當(dāng)設(shè)置為“1”時,鎖存器被設(shè)置;當(dāng)設(shè)置為“0”時,鎖存器被復(fù)位。 WEL位是只讀的并設(shè)置WREN指令和復(fù)位WRDI指令成功完成寫入循環(huán)。
塊保護位(BL0,BL1),這些非易失性控制位由WRSR指令設(shè)置,并允許用戶選擇四個級別的保護。 X25045分為四個1024位段。也就是說,用戶可以讀取段但將無法改變(寫入)所選段內(nèi)的數(shù)據(jù)。BL1和BL0的狀態(tài)控制分區(qū)如表3。
表3 BL1和BL0的狀態(tài)控制分區(qū)
允許設(shè)置看門狗定時器(WD0,WD1)位,如表4中所示的看門狗超時功能。這些非易失性控制位由WRSR指令設(shè)置。
表4 看門狗超時功能
AT89C51是ATMEL公司生產(chǎn)的一種單片機,具有4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位特性的微處理器。單片機的可擦除只讀存儲器可以反復(fù)擦除1 000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。
VCC:電源引腳。
GND:電源地引腳。
P0口:雙功能引腳,是8位雙向輸入/輸出端口,每個引腳可吸收8個TTL門電路電流。第二功能作為數(shù)據(jù)總線、地址總線使用,當(dāng)作為地址總線使用時是16位地址的低8位,利用分時復(fù)用方式。
P1口:內(nèi)部提供上拉電阻,是8位雙向輸入/輸出端口,P1口能接收輸出4個TTL門電路電流。
P2口:雙功能引腳,內(nèi)部有上拉電阻,是8位雙向輸入/輸出端口,可接收和輸出4個TTL門電路電流。第二功能是16位地址的高8位地址。
P3口:雙功能引腳,P3口管腳內(nèi)部提供上拉電阻,是8位雙向輸入/輸出端口,可吸收和輸出4個TTL門電路電流。
RST:復(fù)位引腳,當(dāng)需要復(fù)位單片機時,只要在RST引腳上持續(xù)輸入兩個機器周期的高電平單片機將被復(fù)位。
ALE/PROG:控制引腳,在單片機訪問外部存儲器時,該引腳輸出地址所存信號,將所存P0口輸出的低8位地址,一遍再下一個機器周期開將P0口作為數(shù)據(jù)總線來使用。
/PSEN:控制引腳,外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。
/EA/VPP:控制引腳,一般情況下將該引腳直接接到VCC上訪問內(nèi)部程序存儲器,內(nèi)部程序存儲器訪問完后單片機將自動轉(zhuǎn)到外部程序存儲器取指令;當(dāng)將該引腳置成低電平時單片機將直接訪問外部程序存儲器,8031系列單片機必須將該引腳接地。
XTAL1:內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當(dāng)采用外部振蕩器時此引腳接地。
XTAL2:內(nèi)部振蕩電路反相放大器的輸出端,是外接晶體的另一端,當(dāng)采用外部振蕩器時,此引腳接外部振蕩源。
XTAL1、XTAL2兩個引腳可以接兩個電容C1,C2(20-40pF),和一個晶體振蕩器,晶振經(jīng)常使用6MHz、12MHz和11.0592MHz三種頻率,時鐘發(fā)生器把振蕩頻率分為兩個頻率,產(chǎn)生一個兩相時鐘信號P1和P2供單片機使用,P1在每個狀態(tài)S的前半部分有效,P2在每個狀態(tài)后半部分有效。
由于X25045非易失性芯片是串行控制方式,數(shù)據(jù)輸入輸出也是串行方式,因此,該芯片與單片機接口電路簡單。SO引腳連接單片機P1.0引腳;SI引腳連接單片機P1.1引腳;SCK引腳連接單片機P1.2引腳;CS引腳連接單片機P1.3引腳;RET引腳通過一個10KΩ電阻連接+5V電源;WP引腳的一端通過一個5KΩ電阻連接+5V電源,另一端通過一個按鍵接地。這樣選擇接線方式主要是因為CS信號需要輸入低電平和高電平來控制,而單片機的P0口和P2口是作為數(shù)據(jù)線和地址總線來使用,P3口又全部有第二功能,因此設(shè)計接口電路時采用P1口與X25045芯片接口連接控制。圖2中R1是上拉電阻,必須接上拉電阻。WP信號由開關(guān)S控制,當(dāng)S輸入給WP‘0’時禁止寫入,當(dāng)S斷開時WP得到信號‘1’數(shù)據(jù)可以寫入。WP信號也可以由單片機P1口控制或是直接接高電平表示可以隨意寫入數(shù)據(jù)。單片機接口電路圖如圖2所示。
(1)定義端口程序
CS EQU P1.3
SO EQU P1.0
SI EQU P1.1
SCK EQU P1.2
(2)單字節(jié)輸出子程序
說明:將累加器A中數(shù)據(jù)輸出到SI上。
OUTB: MOV R7,#08H
TIAO1: CLR SCK
RLC A
MOV SI,C
SETB SCK
DJNZ R7,TIAO1
RET
(2)單字節(jié)輸入子程序
說明:將SO上的數(shù)據(jù)輸入到累加器A中。
INB: MOV R7,#08H
TIAO2: SETB SCK
NOP
CLR SCK
NOP
MOV C,SO
RLC A
SETB SCK
DJNZ R7,TIAO2
RET
(3)讀狀態(tài)寄存器子程序
說明:狀態(tài)寄存器內(nèi)容讀入A。
READZ: CLR S
MOV A,#05H
ACALL OUTB
ACALL INB
SETB CS
RET
(4)置位寫使能端子程序
WRITES: CLR CS
MOV A,#06H
ACALLOUTB
SETB CS
RET
(5)寫狀態(tài)寄存器子程序
說明:R2口內(nèi)容為寫入狀態(tài)寄存器的數(shù)據(jù)。
WRITEZ: ACALL READZ
CLR F0
JNB ACC.0,TIAO3
SETB F0
RET
TIAO3: ACALL WRIES
CLR CS
MOV A,#01H
ACALL OUTB
MOV A,R2
ACALL OUTB
SETB CS
RET
(6)復(fù)位看門狗子程序
RESKMG: CLR CS
SETB CS
RET
參考文獻:
[1]余永權(quán).ATMEL89系列單片機應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.
[2]王幸之.AT89系列單片機原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2011.