51單片機(jī)管腳說(shuō)明(一)
各端口工作原理講解
并行端口
P0端口
總線I/O端口,雙向,三態(tài),數(shù)據(jù)地址分時(shí)復(fù)用,該端口除用于數(shù)據(jù)的輸入/輸出外,在8031單片機(jī)外接程序存儲(chǔ)器時(shí),還分時(shí)地輸出/輸入地址/指令。由Po端口輸出的信號(hào)無(wú)鎖存,輸入的信息有讀端口引腳和讀端口鎖存器之分。P0端口8位中的一位結(jié)構(gòu)圖見(jiàn)下圖:
由上圖可見(jiàn),P0端口由鎖存器、輸入緩沖器、切換開關(guān)與相應(yīng)控制電路、場(chǎng)效應(yīng)管驅(qū)動(dòng)電路構(gòu)成。
在輸出狀態(tài)下,當(dāng)切換開關(guān)MUX向下時(shí),從內(nèi)部總線來(lái)的數(shù)據(jù)經(jīng)鎖存器反相和場(chǎng)效應(yīng)管T2反相,輸出到端口引腳線上。此時(shí),場(chǎng)效應(yīng)管T1關(guān)斷,因而這種輸出方式應(yīng)為外接上拉電阻的漏極開路式。當(dāng)切換開關(guān)MUX向上時(shí),一位地址/數(shù)據(jù)信號(hào)分時(shí)地輸出到端口線上。此外,由T1、T2的通斷組合,形成高電平、低電平與高阻浮動(dòng)三態(tài)的輸出。
在輸入狀態(tài)下,從鎖存器和從引腳上讀來(lái)的信號(hào)一般是一致的,但也有例外。例如,當(dāng)從內(nèi)部總線輸出低電平后,鎖存器Q=0,Q=1,場(chǎng)效應(yīng)管T2開通,端口線呈低電平狀態(tài)。此時(shí)無(wú)論端口線上外接的信號(hào)是低電乎還是高電平,從引腳讀入單片機(jī)的信號(hào)都是低電平,因而不能正確地讀入端口引腳上的信號(hào)。又如,當(dāng)從內(nèi)部總線輸出高電平后,鎖存器Q=1,Q=0,場(chǎng)效應(yīng)管T2截止。如外接引腳信號(hào)為低電平,從引腳上讀入的信號(hào)就與從鎖存器讀入的信號(hào)不同。為此,8031單片機(jī)在對(duì)端口P0一P3的輸入操作上,有如下約定:為此,8031單片機(jī)在對(duì)端口P0一P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號(hào),其它指令則從端口引腳線上讀入信號(hào)。
讀-修改-寫指令的特點(diǎn)是,從端口輸入(讀)信號(hào),在單片機(jī)內(nèi)加以運(yùn)算(修改)后,再輸出(寫)到該端口上。下面是幾條讀--修改-寫指令的例子。
這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態(tài),修改后再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因而使原端口的狀態(tài)被讀錯(cuò)。
P0端口是8031單片機(jī)的總線口,分時(shí)出現(xiàn)數(shù)據(jù)D7一D0、低8位地址A7一AO,以及三態(tài),用來(lái)接口存儲(chǔ)器、外部電路與外部設(shè)備。P0端口是使用最廣泛的I/O端口。
P1端口:
通用I/0端口,準(zhǔn)雙向靜態(tài)口。輸出的信息有鎖存,輸入有讀引腳和讀鎖存器之分。P1端口的一位結(jié)構(gòu)見(jiàn)下圖. 由圖可見(jiàn),P1端口與P0端口的主要差別在于,P1端口用內(nèi)部上拉電阻R代替了P0端口的場(chǎng)效應(yīng)管T1,并且輸出的信息僅來(lái)自內(nèi)部總線。由內(nèi)部總線輸出的數(shù)據(jù)經(jīng)鎖存器反相和場(chǎng)效應(yīng)管反相后,鎖存在端口線上,所以,P1端口是具有輸出鎖存的靜態(tài)口。
由下圖可見(jiàn),要正確地從引腳上讀入外部信息,必須先使場(chǎng)效應(yīng)管關(guān)斷,以便由外部輸入的信息確定引腳的狀態(tài)。為此,在作引腳讀入前,必須先對(duì)該端口寫入l。具有這種操作特點(diǎn)的輸入/輸出端口,稱為準(zhǔn)雙向I/O口。8031單片機(jī)的P1、P2、P3都是準(zhǔn)雙向口。P0端口由于輸出有三態(tài)功能,輸入前,端口線已處于高阻態(tài),無(wú)需先寫入l后再作讀操作。
單片機(jī)復(fù)位后,各個(gè)端口已自動(dòng)地被寫入了1,此時(shí),可直接作輸入操作。如果在應(yīng)用端口的過(guò)程中,已向P1一P3端口線輸出過(guò)0,則再要輸入時(shí),必須先寫1后再讀引腳,才能得到正確的信息。此外,隨輸入指令的不同,H端口也有讀鎖存器與讀引腳之分。
Pl端口是803l單片機(jī)中唯一僅有的單功能I/O端口,并且沒(méi)有特定的專用功能,輸出信號(hào)鎖存在引腳上,故又稱為通用靜態(tài)口。
評(píng)論