1、P1口某一位的內(nèi)部電路結(jié)構(gòu)如下圖所示,在51單片機的P0,P1,P2,P3口中,P1口的結(jié)構(gòu)最簡單,用途也最單一。僅僅只作為普通的數(shù)據(jù)輸入/輸出(I/O)端口使用。從圖中可以看出,P0口與P1口的主要差別在于:P1端口用內(nèi)部上拉電阻代替了P0端口的場效應管,并且輸出的信息只有內(nèi)部總線的信息,沒有了數(shù)據(jù)/地址總線的復用。
1)P1口用作輸入端口
如果P1口用作輸入端口,即Q=0,/Q=1;則場效應管導通,引腳被直接連到電源的地GND上,即使引腳輸入的是高電平,被直接拉低為“0“,所以,與P0端口一樣,在將數(shù)據(jù)輸入P1端口之前,先要通過內(nèi)部總線向鎖存器寫”1“,這樣/Q=0,場效應管截止,P1端口輸入的“1”才可以送到三態(tài)緩沖器的輸入端,此時再給三態(tài)門的讀引腳送一個讀控制信號,引腳上的“1”就可以通過三態(tài)緩沖器送到內(nèi)部總線。具有這種操作特點的輸入/輸出端口,一般稱之為準雙向I/O口,51單片機的P1,P2,P3口都是準雙向口。而P0端口由于輸出具有三態(tài)功能(輸出端口的三態(tài)是指:高電平,低電平,高阻態(tài)這三態(tài)),所以在作為輸入端口時,無需先寫“1”然后再進行讀操作。
2)P1口用作輸出端口
如果P1口用作輸出端口,應給鎖存器的寫鎖存CP端輸入寫脈沖信號,內(nèi)部總線送來的數(shù)據(jù)就可以通過D端進入鎖存器并從Q和/Q端輸出,如果D端輸入“1”,則/Q=0,場效應管截止,由于上拉電阻的作用,在P1.X引腳輸出高電平“1”,反之,如果D端輸入“0”,則/Q=1,場效應管導通, P1.X引腳連到地線上,從而在引腳輸出“0”。
2、P2口的內(nèi)部電路結(jié)構(gòu)如下圖所示,可以看出P2口既有片內(nèi)上拉電阻,又有切換開關MUX,所以P2口在功能上兼有P0和P1端口的特點,這主要體現(xiàn)在輸出功能上,當切換開關向下接通時,從內(nèi)部總線輸出的一位數(shù)據(jù)經(jīng)反相器和場效應管反相后,輸出在端口引腳線上;當多路開關向上時,輸出的一位地址信號也經(jīng)反相器和場效應管反相后,輸出在端口引腳線上。
1)P2口用作輸入端口
如果P2口用作輸入端口,即Q=0,/Q=1;則場效應管導通,引腳被直接連到電源的地GND上,即使引腳輸入的是高電平,被直接拉低為“0“,所以,與P0端口一樣,在將數(shù)據(jù)輸入P2端口之前,先要通過內(nèi)部總線向鎖存器寫”1“,這樣/Q=0,場效應管截止,P2端口輸入的“1”才可以送到三態(tài)緩沖器的輸入端,此時再給三態(tài)門的讀引腳送一個讀控制信號,引腳上的“1”就可以通過三態(tài)緩沖器送到內(nèi)部總線。
2)P2口用作輸出端口
如果P2口用作輸出端口,應給鎖存器的寫鎖存CP端輸入寫脈沖信號,內(nèi)部總線送來的數(shù)據(jù)就可以通過D端進入鎖存器并從Q和/Q端輸出,再通過電子開關、非門和場效應管從端口輸出。
3、P3口的內(nèi)部電路結(jié)構(gòu)如下圖所示,可以看出P3口和P1口的結(jié)構(gòu)相似,區(qū)別僅在于P3端口的個端口線有兩種功能選擇,當處于第一功能時,第二輸出功能線為1,此時,內(nèi)部總線信號經(jīng)鎖存器和場效應管輸入/輸出,其作用與P1端口作用相同,當處于第二功能時,鎖存器輸出1,通過第二輸出功能線輸出特定的信號,在輸入方面,既可以通過緩沖器讀入引腳信號。還可以通過替代輸入功能讀入片內(nèi)的特定第二功能信號。
1)P3口用作輸入端口
P3用作輸入端口時,其使用方法與P1和P2類似。
2)P2口用作輸出端口
P3用作輸出端口時,其使用方法與P1和P2類似。
使P3端口各引腳處于第二功能的條件是:
1、串行I/O處于運行狀態(tài)(RXD,TXD);
2、打開了處部中斷(INT0,INT1);
3、定時器/計數(shù)器處于外部計數(shù)狀態(tài)(T0,T1)
4、執(zhí)行讀寫外部RAM的指令(RD,WR)
在應用中,如不設定P3端口各位的第二功能(WR,RD信號的的產(chǎn)生不用設置),則P3端口線自動處于第一功能狀態(tài),也就是靜態(tài)I/O端口的工作狀態(tài)。在更多的場合是根據(jù)應用的需要,把幾條端口線設置為第二功能,而另外幾條端口線處于第一功能運行狀態(tài)。在這種情況下,不宜對P3端口作字節(jié)操作,需采用位操作的形式。
端口的負載能力和輸入/輸出操作:
P0端口能驅(qū)動8個LSTTL負載。如需增加負載能力,可在P0總線上增加總線驅(qū)動器。
P1,P2,P3端口各能驅(qū)動4個LSTTL負載。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
p1口是準雙向口,p1口的每一位口線能獨立地作輸入線或輸出線。
作輸出時:將“1”寫入鎖存器,是輸出極的場效應管截止,輸出線有內(nèi)部上拉電阻提升為高點位,輸出“1”
作輸入時:必須先將“1”寫入鎖存器,場效應管截止。該口線由內(nèi)部上拉電阻提拉成高電平,同時也能被外部輸入源拉成低電平,既當外部輸入“1”時該口線為高電平,而出入0時,該口為低電平。