|
|
8051有4組8位I/O口:P0、P1、P2和P3口,P1、P2和P3為準(zhǔn)雙向口,P0口則為雙向三態(tài)輸入輸出口,下面我們分別介紹這幾個(gè)口線:
·P0口和P2口: 右圖為P0口和P2口其中一位的電路圖,由圖可見,電路中包含一個(gè)數(shù)據(jù)輸出鎖存器和兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器,另外還有一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)和控制電路。這兩組口線用來(lái)作為CPU與外部數(shù)據(jù)存儲(chǔ)器、外部程序存儲(chǔ)器和I/O擴(kuò)展口,而不能象P1、P3直接用作輸出口。它們一起可以作為外部地址總線,P0口身兼兩職,既可作為地址總線,也可作為數(shù)據(jù)總線。參考圖2。 |  | P2口作為外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器的地址總線的高8位輸出口AB8-AB15,P0口由ALE選通作為地址總線的低8位輸出口AB0-AB7。外部的程序存儲(chǔ)器由PSEN信號(hào)選通,數(shù)據(jù)存儲(chǔ)器則由WR和RD讀寫信號(hào)選通,因?yàn)?16=64k,所以8051最大可外接64kB的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。 | ·P1口: 右圖為P1口其中一位的電路圖,P1口為8位準(zhǔn)雙向口,每一位均可單獨(dú)定義為輸入或輸出口,當(dāng)作為輸入口時(shí),1寫入鎖存器,Q(非)=0,T2截止,內(nèi)上拉電阻將電位拉至"1",此時(shí)該口輸出為1,當(dāng)0寫入鎖存器,Q(非)=1,T2導(dǎo)通,輸出則為0。 作為輸入口時(shí),鎖存器置1,Q(非)=0,T2截止,此時(shí)該位既可以把外部電路拉成低電平,也可由內(nèi)部上拉電阻拉成高電平,正因?yàn)檫@個(gè)原因,所以P1口常稱為準(zhǔn)雙向口。需要說(shuō)明的是,作為輸入口使用時(shí),有兩種情況,其一是:首先是讀鎖存器的內(nèi)容,進(jìn)行處理后再寫到鎖存器中,這種操作即讀—修改—寫操作,象JBC(邏輯判斷)、CPL(取反)、INC(遞增)、DEC(遞減)、ANL(與邏輯)和ORL(邏輯或)指令均屬于這類操作。其二是:讀P1口線狀態(tài)時(shí),打開三態(tài)門G2,將外部狀態(tài)讀入CPU。 |  |  | ·P3口: P3口的電路如上圖所示,P3口為準(zhǔn)雙向口,為適應(yīng)引腳的第二功能的需要,增加了第二功能控制邏輯,在真正的應(yīng)用電路中,第二功能顯得更為重要。由于第二功能信號(hào)有輸入輸出兩種情況,我們分別加以說(shuō)明。 P3口的輸入輸出及P3口鎖存器、中斷、定時(shí)/計(jì)數(shù)器、串行口和特殊功能寄存器有關(guān),P3口的第一功能和P1口一樣可作為輸入輸出端口,同樣具有字節(jié)操作和位操作兩種方式,在位操作模式下,每一位均可定義為輸入或輸出。 我們著重討論P(yáng)3口的第二功能,P3口的第二功能各管腳定義如下:
·P3.0 串行輸入口(RXD) ·P3.1 串行輸出口(TXD) ·P3.2 外中斷0(INT0) ·P3.3 外中斷1(INT1) ·P3.4 定時(shí)/計(jì)數(shù)器0的外部輸入口(T0) ·P3.5 定時(shí)/計(jì)數(shù)器1的外部輸入口(T1) ·P3.6 外部數(shù)據(jù)存儲(chǔ)器寫選通(WR) ·P3.7 外部數(shù)據(jù)存儲(chǔ)器讀選通(RD)
| 對(duì)于第二功能為輸出引腳,當(dāng)作I/O口使用時(shí),第二功能信號(hào)線應(yīng)保持高電平,與非門開通,以維持從鎖存器到輸出口數(shù)據(jù)輸出通路暢通無(wú)阻。而當(dāng)作第二功能口線使用時(shí),該位的鎖存器置高電平,使與非門對(duì)第二功能信號(hào)的輸出是暢通的,從而實(shí)現(xiàn)第二功能信號(hào)的輸出。對(duì)于第二功能為輸入的信號(hào)引腳,在口線上的輸入通路增設(shè)了一個(gè)緩沖器,輸入的第二功能信號(hào)即從這個(gè)緩沖器的輸出端取得。而作為I/O口線輸入端時(shí),取自三態(tài)緩沖器的輸出端。這樣,不管是作為輸入口使用還是第二功能信號(hào)輸入,輸出電路中的鎖存器輸出和第二功能輸出信號(hào)線均應(yīng)置“1”。 |  |