簡單的單片機I/O口擴展實例
擴展實例
簡單的I/O口擴展通常是采用TTL或CMOS電路鎖存器、三態(tài)門等作為擴展芯片,通過P0口來實現(xiàn)擴展的一種方案。它具有電路簡單、成本低、配置靈活的特點。下圖為采用74LS244作為擴展輸入、74LS273作為擴展輸出的簡單I/O口擴展。
芯片及連線說明
圖中電路中采用的芯片為TTL電路74LS244、74LS273。其中,74LS244為8緩沖線驅(qū)動器(三態(tài)輸出),、為低電平有效的使能端。當二者之一為高電平時,輸出為三態(tài)。74LS273為8D觸發(fā)器,為低電平有效的清除端。當=0時,輸出全為0且與其它輸入端無關;CP端是時鐘信號,當CP由低電平向高電平跳變時刻,D端輸入數(shù)據(jù)傳送到Q輸出端。P0口作為雙向8位數(shù)據(jù)線,既能夠從74LS244輸入數(shù)據(jù),又能夠從74LS273輸出數(shù)據(jù)。輸入控制信號由P2.0和相“或”后形成。當二者都為0時,74LS244的控制端有效,選通74LS244,外部的信息輸入到P0數(shù)據(jù)總線上。當與74LS244相連的按鍵都沒有按下時,輸入全為1,若按下某鍵,則所在線輸入為0。輸出控制信號由P2.0和相“或”后形成。當二者都為0后,74LS273的控制端有效,選通74LS273,P0上的數(shù)據(jù)鎖存到74LS273的
輸出端,控制發(fā)光二極管LED,當某線輸出為0時,相應的LED發(fā)光。
I/O口地址確定
因為74LS244和74LS273都是在P2.0為0時被選通的,所以二者的口地址都為FEFFH(這個地址不是惟一的,只要保證P2.0=0,其它地址位無關)。但是由于分別由和控制,因而兩個信號不可能同時為0(執(zhí)行輸入指令,如MOVX A,@DPTR或MOVX A,@Ri時,有效;執(zhí)行輸出指令,如MOVX @DPTR,A或MOVX @Ri,A時,有效),所以邏輯上二者不會發(fā)生沖突。
編輯:admin 最后修改時間:2018-05-19