80c51系列單片機內(nèi)部有4個雙向的并行i/o端口:p0~p3 共占32根引腳、p0口的每一位可以驅(qū)動8個ttl負載,p1~p3口的負載能力為三個ttl負載。
在無片外存儲器擴展的系統(tǒng)中,這4個端口都可以作為準雙向通用i/o口使用。通過8.2和8.3節(jié)的介紹,我們知道,在具有片外擴展存儲器的系統(tǒng)中,p0口分時地作為低8位地址線和數(shù)據(jù)線,p2口作為高8位地址線。這時,p0口和部分或全部的p2口無法再作通用i/o口。p3口具有第二功能,在應(yīng)用系統(tǒng)中也常被使用。因此在大多數(shù)的應(yīng)用系統(tǒng)中,真正能夠提供給用戶使用的只有p1和部分p2、p3口。綜上所述,80c5l系列單片機的i/o端口通常需要擴充,以便和更多的外設(shè)(例如顯示器、鍵盤)進行聯(lián)系。
在80c5l單片機中擴展的i/o口,采用與片外數(shù)據(jù)存儲器相同的尋址方法,所有擴展的i/o口,以及通過擴展i/o口連接的外設(shè)都與片外ram統(tǒng)一編址,因此,對片外i/o口的輸入/輸出指令就是訪問片外ram的指令。
實際中,擴展i/o口的方法有三種。簡單的i/o口擴展,采用可編程的并行i/o接口芯片擴展以及利用串行口進行i/o口的擴展。