8051單片機端口結(jié)構(gòu)—P2口
P2口的位結(jié)構(gòu)與P0口類似,有MUX開關(guān)。驅(qū)動部分與P1口類似,但比P1口多了一個轉(zhuǎn)換部分。
當CPU對片內(nèi)存儲器和I/0口進行讀寫時,即執(zhí)行MOV指令,或在EA=1的條件下執(zhí)行MOVE指令,由內(nèi)部控制電路自動使開關(guān)MUX倒向鎖存器的Q端,這時P2口為一般I/O口;當CPU 對片外存儲器進行讀寫時,即執(zhí)行MOV指令,或在EA=1的條件下執(zhí)行MOVC指令,開關(guān)倒向地址線端,這時P2口之輸出高8位地址。當系統(tǒng)擴展片外EPROM和RAM時,由P2口輸出地址(低8位地址由P0輸出)。此時,MUX在CPU的控制下,轉(zhuǎn)向內(nèi)部地址線的一端。因為訪問片外EPROM和RAM的操作往往接連不斷,P2口要不斷送出高8位地址,此時P2口無法再用作通用I/O口。
在不需要外接EPROM,而且片外RAM最多只需擴展256字節(jié)的系統(tǒng)中,使用"MOVX Ri"類指令訪問片外RAM時,尋址范圍是256字節(jié),只需低8位地址線就可以實現(xiàn)。P2口不受該指令影響。仍可作通用I/O口。若擴展的RAM容量超過256字節(jié),使用"MOVX@DPTR"類指令,尋址范圍是64KB,此時高8位地址總線用P2輸出。在片外RAM讀/寫周期內(nèi),P2口鎖存器仍保護原來端口的數(shù)據(jù);在訪問片處RAM周期結(jié)束后,多路開關(guān)MUX自動切換鎖存器Q端。