腳):復(fù)位信號輸入端。晶振工作時,在此引腳上保持兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位
XTAL1(19腳)/XTAL2(18腳):內(nèi)部振蕩器的輸入端,接外部晶振;如果采用外部時鐘,XTAL2引腳連外部時鐘,XTAL1引腳要懸空。
P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。 在FIash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。
P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個
TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。
在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR) 時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。
在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。
三 動態(tài)數(shù)碼顯示設(shè)計任務(wù)
采用動態(tài)掃描的方法顯示五位字符串,“12345”和“HELLO”
1.設(shè)計方案和原理分析
原理分析:所謂動態(tài)數(shù)碼掃描顯示技術(shù)就是指:多位數(shù)碼管采用“并聯(lián)”動態(tài)接口,通過對各數(shù)碼管輪流循環(huán)點亮,實現(xiàn)多位數(shù)碼顯示。
當(dāng)循環(huán)掃描顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象。
p0端口接動態(tài)數(shù)碼管的段碼,p2端口接動態(tài)數(shù)碼管的數(shù)位選擇端,p1.7接一個開關(guān),當(dāng)開關(guān)接高電平時,顯示“12345”字樣;當(dāng)開關(guān)接低電平時,顯示“HELLO”字樣。
把“單片機(jī)系統(tǒng)”區(qū)域中的p0.0/AD0-P0.7/AD7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的a-h端口上;
把“單片機(jī)系統(tǒng)”區(qū)域中的p2.0/A8-P2.7/A15用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1-S8端口上:
把“單片機(jī)系統(tǒng)”區(qū)域中的p1.7端口用導(dǎo)線連接到“查詢式鍵盤”區(qū)域中的SP1端口上;
3. 軟件設(shè)計
動態(tài)掃描方法。動態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點亮(數(shù)位選擇)。
在進(jìn)行數(shù)碼顯示的時候,要對顯示單元開辟8個顯示緩沖區(qū),每個顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。
對于顯示的字形碼數(shù)據(jù)我們采用查表方法來完成。
匯編源程序
ORG 0000H
LJMP START
ORG 0030H
START:
JB P1.7,DIR1
MOV DPTR,#TABLE1
SJMP DIR
DIR1:
MOV DPTR,#TABLE2
DIR:
MOV R0,#00H
MOV R1,#0FEH
MOV R2,#0DFH
NEXT:
MOV A,R1
MOV P2,A
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
LCALL DAY
INC R0
RL A
MOV R1,A
CJNE R1,#0DFH,NEXT
SJMP START
DAY:
MOV R5,#2
D2:
MOV R6,#5
D1:
MOV R7,#100
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE1:
DB 3FH,06H,5BH,4FH,66H,6DH
TABLE2:
DB 76H,79H,38H,38H,3FH,00H
END