目錄
1. P0
1.1 構(gòu)成
1.2 做輸入端口
1.3 做輸出端口
2. P1
2.1 構(gòu)成
2.2 做輸入端口
2.3 做輸出端口
3. P2
3.1 構(gòu)成
3.2 做輸入端口
3.3 做輸出端口
4. P3
4.1 構(gòu)成
4.2 做輸入輸出端口
5. 總結(jié)
51單片機(jī)并行GPIO,按其特性分為
單一的準(zhǔn)雙向口
多功能復(fù)用準(zhǔn)雙向口
地址總線輸出準(zhǔn)雙向口
地址/數(shù)據(jù)總線口的三態(tài)雙向
P0 ~ P3口都有各自的用法:
P0:常作系統(tǒng)數(shù)據(jù)或低8位地址復(fù)用口,第二功能:用于系統(tǒng)擴(kuò)展
P1:常作通用I/O口使用
P2:常作系統(tǒng)高8位地址,第二功能:用于系統(tǒng)擴(kuò)展
P3:常用第二功能
1. P0

?1.1 構(gòu)成
1個(gè)輸出鎖存器(D型觸發(fā)器)
2個(gè)三態(tài)緩沖器(控制讀引腳或讀鎖存器)
1個(gè)輸出驅(qū)動(dòng)電路(1對(duì)場(chǎng)效應(yīng)晶體管FET構(gòu)成)
1個(gè)輸出控制端(1個(gè)與門(mén)、1個(gè)反相器、1個(gè)轉(zhuǎn)換開(kāi)關(guān)MUX組成)
1.2 做輸入端口
P0口的輸入信號(hào)既送到下面的三態(tài)緩沖器,又送到V2的漏極。如果鎖存器之前鎖存為0,即Q=0, 非Q=1,則V2導(dǎo)通,通過(guò)P0端口的外接上拉電阻,P0口被鉗在0電平上,1無(wú)法送入P0口。所以在數(shù)據(jù)輸入P0口前,必須先通過(guò)內(nèi)部總線向鎖存器寫(xiě)1,即Q=1,V2截止,P0口輸入的1就可以送到三態(tài)門(mén)的輸入端。此時(shí)再給三態(tài)門(mén)的讀引腳送一個(gè)讀控制信號(hào)(高電平),1就可以通過(guò)三態(tài)門(mén)送到內(nèi)部總線。
1.3 做輸出端口
此時(shí)單片機(jī)內(nèi)部的CPU會(huì)發(fā)出一個(gè)0到與門(mén)的控制端??刂贫说?一方面關(guān)閉與門(mén),使地址/數(shù)據(jù)總線送來(lái)的信號(hào)無(wú)法通過(guò)與門(mén);另一方面控制電子開(kāi)關(guān),讓電子開(kāi)關(guān)與鎖存器的 端接通,此時(shí)若給寫(xiě)鎖存器端CP送入寫(xiě)脈沖信號(hào),內(nèi)部總線送來(lái)的數(shù)據(jù)就可以通過(guò)D端進(jìn)入鎖存器,并從Q和非Q端輸出,如果D端輸入1,則非Q端輸出0,該0使場(chǎng)效應(yīng)管V2截止,通過(guò)P0口的外接上拉電阻,可使P0口輸出高電平1。
2. P1

?2.1 構(gòu)成
1個(gè)輸出鎖存器
2個(gè)三態(tài)輸入緩沖器
輸出驅(qū)動(dòng)電路
2.2 做輸入端口
此時(shí)Q=0,非Q=1,場(chǎng)效應(yīng)管導(dǎo)通,通過(guò)P1口的內(nèi)部上拉電阻,P1口被鉗在0電平上,1無(wú)法送入P1口。所以與P0口一樣,在數(shù)據(jù)輸入P1口之前,先要通過(guò)內(nèi)部總線向鎖存器寫(xiě)1,讓非Q=0,場(chǎng)效應(yīng)管截止,P1口輸入的1就可以送到輸入三態(tài)緩沖器的輸入端,此時(shí)再給三態(tài)門(mén)的讀引腳送一個(gè)讀控制信號(hào),1就可以通過(guò)三態(tài)緩沖器送到內(nèi)部總線。
2.3 做輸出端口
此時(shí)應(yīng)給鎖存器的寫(xiě)鎖存器CP端送寫(xiě)脈沖信號(hào),內(nèi)部總線送來(lái)的數(shù)據(jù)就可以通過(guò)D端進(jìn)入鎖存器并從Q和非Q端輸出,如果DUAN輸入1,則非Q=0,0送到場(chǎng)效應(yīng)管的柵極,場(chǎng)效應(yīng)管截止,從P1輸出1。
【回到目錄】
3. P2

?3.1 構(gòu)成
1個(gè)輸出鎖存器、1個(gè)轉(zhuǎn)換開(kāi)關(guān)MUX、2個(gè)三態(tài)輸入緩沖器、輸出驅(qū)動(dòng)電路、1個(gè)反相器。
3.2 做輸入端口
此時(shí)同樣需要先通過(guò)內(nèi)部總線向鎖存器寫(xiě)1,讓Q=1,場(chǎng)效應(yīng)管截止,P2口輸入的1才能送到三態(tài)門(mén)的輸入端。此時(shí),再給讀引腳送一個(gè)讀控制信號(hào),1就可以通過(guò)三態(tài)門(mén)送到內(nèi)部總線。
3.3 做輸出端口
此時(shí)給鎖存器的CP端送寫(xiě)脈沖信號(hào),內(nèi)部總線上的數(shù)據(jù)就被鎖存進(jìn)鎖存器并從Q端輸出,再通過(guò)電子開(kāi)關(guān)、非門(mén)和場(chǎng)效應(yīng)管從P2口輸出。
4. P3

?4.1 構(gòu)成
1個(gè)輸出鎖存器、3個(gè)輸入緩沖器、輸出驅(qū)動(dòng)電路。
輸出驅(qū)動(dòng)電路包括1個(gè)與非門(mén)、1個(gè)場(chǎng)效應(yīng)管T、上拉電阻R。
4.2 做輸入輸出端口
與P1、P2作用類似。
5. 總結(jié)
P0口地址為80H,可進(jìn)行位操作。
P0驅(qū)動(dòng)NMOS輸入時(shí)需外接上拉電阻。
P0可作通用I/O口,作低8位地址/數(shù)據(jù)總線時(shí),無(wú)需外接上拉電阻。
P0可做為高阻態(tài)輸入端使用。
P0 ~ P3做輸入時(shí),端口必須先置1,使內(nèi)部場(chǎng)效應(yīng)管截止,從而不影響輸入電平。
審核編輯:湯梓紅
電子發(fā)燒友App











評(píng)論