MCS-51系列單片機(jī)并行口結(jié)構(gòu)及工作原理
典型的MCS-51單片機(jī)有四個雙向8位I/O口,分別記作P0、P1、P2、P3,每一個口都由口鎖存器、輸入緩沖器/輸出驅(qū)動器所組成。下圖別給出了P0、P1、P2、P3口的1位的結(jié)構(gòu)框圖。
P0~P3的口鎖存器結(jié)構(gòu)都是一樣的,P0~P3口的每一位口鎖存器都是一個D觸發(fā)器,復(fù)位以后的初態(tài)為1。但輸入緩沖器和輸出驅(qū)動器的結(jié)構(gòu)有差別。CPU通過內(nèi)部總線把數(shù)據(jù)寫入口鎖存器。CPU對口的讀操作有兩種:一種是讀-修改-寫指令(例如ANLP1,#0FEH),讀口鎖存器的狀態(tài),此時(shí)口鎖存器的狀態(tài)由Q端通過上面的三態(tài)輸入緩沖器送到內(nèi)部總線。另一種是讀指令(例如MOVA,P1),CPU讀取口引腳上的外部輸入信息,這時(shí)引腳狀態(tài)通過下面的三態(tài)輸入緩沖器傳送到內(nèi)部總線。
P1、P2和P3口內(nèi)部有拉高電路,稱為準(zhǔn)雙向口。
P0口內(nèi)部沒有拉高電路,是三態(tài)雙向I/O口。
P1、P2、P3口可以驅(qū)動四個LSTTL電路,P0口可以驅(qū)動八個LSTTL電路。
P0、P1、P2、P3都是并行I/O口,都可用于數(shù)據(jù)的輸入/輸出傳送,但P0、P2口可作為并行擴(kuò)展總線。P0口可作為地址/數(shù)據(jù)復(fù)用線使用,輸送系統(tǒng)的低8位地址和8位數(shù)據(jù),因此多路開關(guān)的一個輸入端為“地址/數(shù)據(jù)”信號。而P2口僅作為高位地址線使用,不涉及數(shù)據(jù),所以多路開關(guān)的一個輸入信號為“地址”。
P3口的口線具有第二功能,為系統(tǒng)提供一些控制信號。因此在P3口電路中增加了第二功能控制邏輯。這是P3口與其它各不同之處。