MCS-51系列單片機(jī)并行P2口的特性及操作
MCS-51系列單片機(jī)并行P2口也有兩種功能,對(duì)于內(nèi)部有程序存貯器的單片機(jī)(如定制的8051),P2口可以作為輸入口或輸出口使用,直接連接輸入/輸出設(shè)備;也可以作為系統(tǒng)擴(kuò)展的地址總線口,輸出高8位地址A8~A15。對(duì)于內(nèi)部沒(méi)有程序存貯器的單片機(jī),必須外接程序存貯器,一般情況下P2口只能作為系統(tǒng)擴(kuò)展的高8位地址總線口,而不能作為外部設(shè)備的輸入/輸出口。
1、P2口的輸出驅(qū)動(dòng)器上有一個(gè)多路電子開(kāi)關(guān)(見(jiàn)圖5-1(c)),當(dāng)輸出驅(qū)動(dòng)器轉(zhuǎn)接至P2口鎖存器的Q端時(shí),P2口作為第一功能輸入 /輸出線,這時(shí)P2口的結(jié)構(gòu)和P1口相似,其功能和使用方法也和P1口相同。
2、當(dāng)輸出驅(qū)動(dòng)器轉(zhuǎn)接至地址時(shí),P2口作為地址總線口,引腳狀態(tài)由所輸出的地址確定。
3、 CPU訪問(wèn)外部的程序存貯器時(shí),P2口輸出程序存貯器的高8位地址A8~A15,該地址來(lái)源于內(nèi)部的程序計(jì)數(shù)器PC的高8位;
4、當(dāng)CPU以16位地址指針DPTR訪問(wèn)外部RAM/IO的時(shí)候,P2口輸出的地址來(lái)源于DPH。
P2口操作:
1、對(duì)于內(nèi)部有程序存貯器的單片機(jī)所構(gòu)成的基本系統(tǒng)(如8751或定制的8051),既不擴(kuò)展程序存貯器,也不擴(kuò)展RAM I/O 口,這時(shí)P2口作為通用I/O口使用。
XRL P2 ,#1 ;P2.0取反
CPL P2.0 ;P2.0取反
2、對(duì)于只擴(kuò)展少量外部RAM I/O口,其地址范圍在0~255之間,P2 口也可以作為I/O口使用。對(duì)外部RAM I/O口操作,只能使用R0或R1作地址指針,不能用DPTR作址址指針。
將33H寫入外部RAM的50H單元,CPU執(zhí)行下面的程序段不影響P2口輸出狀態(tài),因而是正確的:
MOVR0 ,#50H
MOV A,#33H
MOVX @R0,A
CPU執(zhí)行下面的程序段將影響P2口的輸出狀態(tài),因而是錯(cuò)誤的;
MOV DPTR,#50H
MOV A,#33H
MOVX @DTPR ,A
3、對(duì)于既擴(kuò)展程序存貯器,又?jǐn)U展外部RAM/IO口的系統(tǒng),P2口不能作為I/O口使用,對(duì)外部RAM/IO口操作則可以做DPTR、P2 R0、P2 R1三個(gè)16位地址指針的高8位。
將33H寫入外部RAM的8200H,下面的程序段都是正確的:
(1)MOVP2,#82H
MOVR0,#0
MOV A,#33H
MOVX @R0 ,A
(2)MOV P2,#82H
MOV R1,#0
MOV A,#33H
MOVX @R1,A
(3)MOV DPTR,#8200H
MOV A,#33H
MOVX @DPTR,A