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