單片機(jī)并行I/O接口的擴(kuò)展
在單片機(jī)系統(tǒng)中主要有兩類(lèi)數(shù)據(jù)傳送操作,一類(lèi)是單片機(jī)和存儲(chǔ)器之間的數(shù)據(jù)讀寫(xiě)操作;另一類(lèi)則是單片機(jī)和其它設(shè)備之間的數(shù)據(jù)輸入/輸出(I/O)操作。單片機(jī)和存儲(chǔ)器之間的連接十分簡(jiǎn)單,主要包括地址線(xiàn)、數(shù)據(jù)線(xiàn)、讀寫(xiě)選通信號(hào)。單片機(jī)與控制對(duì)象或外部設(shè)備之間的數(shù)據(jù)傳送卻十分復(fù)雜,存在速度不匹配,電平不一致,信號(hào)需要轉(zhuǎn)換等問(wèn)題。使用擴(kuò)展的I/O接口電路可以較好實(shí)現(xiàn)速度協(xié)調(diào)、輸出數(shù)據(jù)鎖存、輸入數(shù)據(jù)緩沖、數(shù)據(jù)轉(zhuǎn)換等。 一、簡(jiǎn)單I/O口的擴(kuò)展
由于單片機(jī)的P0口經(jīng)常用作數(shù)據(jù)線(xiàn)或低8位地址線(xiàn);P2口用作高8位地址線(xiàn),P3口的第2功能更為重要,所以只有P1口能用作真正的數(shù)據(jù)I/O口來(lái)使用,但是,在很多場(chǎng)合,僅使用P1口來(lái)作為數(shù)據(jù)I/O口是不夠的,這是就需要擴(kuò)展I/O口。
當(dāng)所需擴(kuò)展的外部1/O口數(shù)量不多時(shí),可以使用常規(guī)的邏輯電路、鎖存器進(jìn)行擴(kuò)展。這一類(lèi)的外圍芯片一般價(jià)格較低而且種類(lèi)較多,常用的如:74LS377、74LS245、74LS373、74LS244、74LS273、74LS577、74LS573。
1、輸入接口擴(kuò)展
圖1是利用74LS244進(jìn)行簡(jiǎn)單輸入接口擴(kuò)展的連接圖。
圖1 74LS244系統(tǒng)擴(kuò)展圖 從圖中可以看出,當(dāng)P2.5和同時(shí)為低電平時(shí),74LS244才能將輸入端的數(shù)據(jù)送到8051的P0口,其中P2.5決定了74LS244的地址為:XX0X XXXX XXXX XXXXB。通常,我們選擇的地址是DFFFH,則接口的輸入操作程序如下:
MOV DPTR, #0DFFFH
MOVX A, @DPTR
2、輸出接口擴(kuò)展
圖2是利用74LS377進(jìn)行簡(jiǎn)單輸出接口擴(kuò)展的連接圖。
圖中利用P2.6(即A14)和A0對(duì)2塊74LS377芯片進(jìn)行選擇。當(dāng)P2.6=1、A0=0時(shí)選中74LS377(1);當(dāng)P2.6=1、A0=l時(shí)選中74LS377(2)。假設(shè)未用的地址線(xiàn)為“1”,則74LS377(1)的地址為0FFFEH,74LS377(2)的地址為0FFFFH。
74LS377(1)輸出數(shù)據(jù)的操作指令如下:
MOV DPTR, #0FFFEH
MOV A, #DATA
MOVX @DPTR, A
圖2 74LS377系統(tǒng)擴(kuò)展圖 二、可編程并行I/O接口芯片8255A
Intel 8255A是一種可編程通用并行接口芯片,可適用于多種微處理器的8位并行輸入/輸出接口芯片。它具有兩個(gè)8位(A口和B口)和兩個(gè)4位(C口高/低4位)并行I/O端口,能適應(yīng)CPU與I/O接口之間的多種數(shù)據(jù)傳送方式的要求,芯片內(nèi)部主要由控制寄存器、狀態(tài)寄存器、數(shù)據(jù)寄存器組成,能獨(dú)立編程,有3種工作方式。使用8255A可實(shí)現(xiàn)多種數(shù)據(jù)傳送方式的要求。
1.8255A的結(jié)構(gòu)
8255A由三部分組成,結(jié)構(gòu)如圖3所示。
圖3 8255A內(nèi)部結(jié)構(gòu)圖
2.8255A與MCS-51系列單片機(jī)的連接
圖4 8255與單片機(jī)連接圖
3.8255A的控制字
圖5 8255的工作方式控制字
8255A還有一個(gè)C口置/復(fù)位控制字,用來(lái)設(shè)置C口某位的狀態(tài),而不影響其他位。如圖6。
圖6 8255C口置位復(fù)位控制字
4.8255A三種工作方式的功能及應(yīng)用舉例
三種基本的工作方式:
(1) 方式0:基本輸入/輸出方式
方式0不使用聯(lián)絡(luò)信號(hào),也不使用中斷,A口和B口可定義為輸入或輸出口,C口分成兩個(gè)部分(高4位和低4位),C口的兩個(gè)部分也可分別定義為輸入或輸出。在方式0時(shí),所有口輸出均有鎖存,輸入只有緩沖,而無(wú)鎖存,C口還具有按位將其各位清0或置1的功能。
利用8255A作為無(wú)條件輸出接口,可以實(shí)現(xiàn)報(bào)警電路的設(shè)計(jì),如圖7所示。
圖7 報(bào)警接口電路圖
(2) 方式1:選通輸入/輸出方式
A口借用C口的一些信號(hào)線(xiàn)作控制和狀態(tài)線(xiàn),形成A組;B口借用C口的一些信號(hào)線(xiàn)用作控制和狀態(tài)線(xiàn),組成B組。在方式1下,A口和B口的輸入輸出均帶有鎖存。
利用8255A用作查詢(xún)輸入接口,可以實(shí)現(xiàn)外部輸入裝置與CPU的連接,如圖8所示。
圖8 輸入裝置與CPU接口示意圖
(3) 方式2:雙向輸入/輸出工作方式
方式2是A組獨(dú)有的工作方式。外設(shè)既能在A口的8條引線(xiàn)上發(fā)送數(shù)據(jù),又能接收數(shù)據(jù)。此方式也是借用C口的5條信號(hào)線(xiàn)作控制和狀態(tài)線(xiàn),A口的輸入和輸出均帶有鎖存。方式2下的聯(lián)絡(luò)信號(hào)線(xiàn)定義如圖9所示。
圖9 方式2下的聯(lián)絡(luò)信號(hào)線(xiàn)定義
編輯:admin 最后修改時(shí)間:2018-05-08