51單片機(jī)的I/O端口結(jié)構(gòu)及應(yīng)用特性
1.鎖存器加引腳的典型結(jié)構(gòu)
51單片機(jī)的I/O端口都有內(nèi)部總線實(shí)現(xiàn)操作控制。P0-P3四個(gè)I/O口都可以做普通I/O口,因此,要求具有輸出鎖存功能。內(nèi)部總線有事分時(shí)操作,因此每個(gè)I/O端口都有相應(yīng)的鎖存器。然而I/O端口又是外部的輸入/輸出通道,必須有相應(yīng)的引腳,故形成了I/O端口的鎖存器加引腳的典型結(jié)構(gòu)。
2.I/O口的復(fù)用功能
(1)I/O口的總線復(fù)用
80C51在使用并行總線擴(kuò)展時(shí),P0口可作為數(shù)據(jù)總 線口和低8位地址總線口,這是,P0為三態(tài)雙向口。P0口輸出總線的地址數(shù)據(jù)信號(hào),P2口輸出高8位地址信號(hào)。
(2)I/O口的功能復(fù)用
I/O口的P3為功能復(fù)用的I/O端口。端口有復(fù)用輸出的控制端;引腳也有復(fù)用輸入的控制端。
(3)準(zhǔn)雙向結(jié)構(gòu)
P0,P1,P2,P3口做普通I/O口使用時(shí),都是準(zhǔn)雙向口結(jié)構(gòu)。準(zhǔn)雙向口的典型結(jié)構(gòu)見P1口位結(jié)構(gòu)圖。準(zhǔn)雙向口的輸入操作和輸出操作本質(zhì)不同,輸入操作時(shí)讀引腳狀態(tài);輸出操作時(shí)對(duì)口鎖存器的寫入操作。有口鎖存器和引腳電路可知:當(dāng)有內(nèi)部總線對(duì)只1或只0時(shí),鎖存器的0、1狀態(tài)立即反應(yīng)到引腳上。但是輸入操作(讀引腳)時(shí),如果口鎖存器的狀態(tài)為0,引腳被嵌位在0狀態(tài),導(dǎo)致無法讀出引腳的高電平輸入。
3.I/O端口的應(yīng)用特性
(1)引腳的自動(dòng)識(shí)別。無論P(yáng)0,P2口的總線復(fù)用,還是P3口的功能復(fù)用,內(nèi)部資源會(huì)自動(dòng)選擇,不需要通過指令的狀態(tài)選擇。
(2)端口鎖存器的讀、該、寫操作。許多涉及到I/O端口的操作,只是涉及口鎖存器的讀出、修改、寫入的操作。這些指令都是一些邏輯運(yùn)算指令、置位/清除指令、條件轉(zhuǎn)移指令以及將I/O口作為目的地址的操作指令。
(3)讀引腳的操作指令。如果某個(gè)I/O口被指定為源操作數(shù),則為
讀引腳的操作指令。例如,執(zhí)行MOV A,P1時(shí),P1口的引腳狀態(tài)傳送到累加器中,執(zhí)行MOV P1,A是,指令則將累加器的內(nèi)容傳送到P1口鎖存器中。
(4)準(zhǔn)雙向口的使用。由準(zhǔn)雙向口的結(jié)構(gòu)可知,當(dāng)口鎖存器內(nèi)容為0時(shí)Q為1,使輸出場(chǎng)效應(yīng)管導(dǎo)通,I/O引腳被嵌位在低電平,無論引腳輸入1電平還是0電平,讀引腳操作都是0狀態(tài)。因此,準(zhǔn)雙向口作為輸入口時(shí),應(yīng)先使鎖存器置1,稱之為置輸入方式,然后在讀引腳。例如,要將P1端口狀態(tài)讀入到累加器A中,應(yīng)執(zhí)行以下兩條指令:
MOV P1,#0FFH ;P1口置輸入方式
MOV A,P1 ;讀P1口引腳狀態(tài)到ACC中
(5)P0口做普通I/O口使用。當(dāng)不使用并行擴(kuò)展總線時(shí),P0、P2口都可用作普通I/O口。但P0為開漏結(jié)構(gòu),作I/O口時(shí)必須外加上拉電阻。