P0.0——P0.7是P0口的8位雙向口線。第一功能為基本輸入輸出;第二功能是在系統(tǒng)擴展時,分時做為數(shù)據(jù)總路線和低8位地址總線。這里重點介紹一下P0口的結(jié)構(gòu)及其工作過程:P0口的1位(例如:P0.0)結(jié)構(gòu)如圖
本文引用地址:http://www.ex-cimer.com/article/201611/322199.htm
它由一個輸出鎖存器、兩個三態(tài)鎖存器(1、2)、輸出控制電路(一個非門(3)、一個與門(4)、一個多路控制開關(guān)(MUX))、輸出驅(qū)動電路(兩只場效應(yīng)管Q1、Q2)組成。
功能1:做基本I/O口使用
CPU發(fā)出的控制信號為低電平,使多路控制開關(guān)MUX接通B端,即與輸出鎖存器的“!Q”連接,同時使與門輸出為低電平,場效應(yīng)管Q1截止。
當P0輸出數(shù)據(jù)時,寫信號加在鎖存器的R引腳上,內(nèi)部總線上的數(shù)據(jù)通過S腳由鎖存器的“!Q”端反相輸出到Q2的柵極。若內(nèi)部總線上數(shù)據(jù)為1,則Q2柵極上為0,此時Q2截止,Q2處于漏極開路的開漏狀態(tài),因此為了保證P0.0輸出高電平,必須外接上拉電阻,否則P0端口不能正常工作!若內(nèi)部總線上數(shù)據(jù)為0,則Q2柵極為1,此時Q2導(dǎo)通,P0.0輸出低電平。
當P0輸入數(shù)據(jù)時,分為讀引腳和讀鎖存器兩種方式,分別用到兩個輸入緩沖器。
讀引腳操作,即單片機執(zhí)行端口輸入指令(如MOV A,P0)時的操作。這時由“讀引腳”信號將三態(tài)緩沖器2打開,引腳上的數(shù)據(jù)經(jīng)三態(tài)緩沖器2輸入到內(nèi)部總線。
讀鎖存器操作,即單片機執(zhí)行“讀—修改—寫”類指令(如ANL A,P0)時的操作。在執(zhí)行這類指令時,由“讀鎖存器”信號使三態(tài)鎖存器1打開,讀入P0口在鎖存器中的數(shù)據(jù),然后與累加器A中的數(shù)據(jù)進行邏輯運算,再反結(jié)果寫回到P0口。這類操作不直接從P0口引腳上讀入數(shù)據(jù),而是從鎖存器Q端讀數(shù)據(jù),其目的是為了防止出錯,確保得到正確結(jié)果
功能2:系統(tǒng)擴展時分時做為數(shù)據(jù)總路線和低8位地址總線
此時控制信號為高電平,多路轉(zhuǎn)換開關(guān)MUX接通A端,且與門的輸出由“地址/數(shù)據(jù)”端的狀態(tài)決定。
評論