微機(jī)原理與接口技術(shù)-第6章輸入輸出接口8255_第1頁(yè)
微機(jī)原理與接口技術(shù)-第6章輸入輸出接口8255_第2頁(yè)
微機(jī)原理與接口技術(shù)-第6章輸入輸出接口8255_第3頁(yè)
微機(jī)原理與接口技術(shù)-第6章輸入輸出接口8255_第4頁(yè)
微機(jī)原理與接口技術(shù)-第6章輸入輸出接口8255_第5頁(yè)
已閱讀5頁(yè),還剩85頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六章可編程接口芯片可編程接口概術(shù)可編程并行輸入/輸出接口芯片8255A可編程接口概術(shù)一個(gè)簡(jiǎn)單的具有輸入功能和輸出功能的可編程接口電路如下圖,它包括一個(gè)輸入接口,其組成主要是八位的三態(tài)門(mén);一個(gè)輸出接口,其組成主要是八位的鎖存器;另外還有八位的多路轉(zhuǎn)換開(kāi)關(guān)及控制這個(gè)開(kāi)關(guān)的寄存器FF。用戶對(duì)寄存器FF寫(xiě)入的內(nèi)容稱為命令字或方式控制字,而寄存器FF稱為命令寄存器,相應(yīng)的端口稱為命令端口或控制端口,對(duì)可編程芯片初始化過(guò)程實(shí)際上就是對(duì)芯片的控制端口寫(xiě)入各種命令字的操作過(guò)程。并行接口電路:微處理器與I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸時(shí)均需經(jīng)過(guò)接口電路實(shí)現(xiàn)系統(tǒng)與設(shè)備互連的匹配。并行接口電路中每個(gè)信息位有自己的傳輸線,一個(gè)數(shù)據(jù)字節(jié)各位可并行傳送,速度快,控制簡(jiǎn)單。由于電氣特性的限制,傳輸距離不能太長(zhǎng)。8255A是通用的可編程并行接口芯片,功能強(qiáng),使用靈活。適合一些并行輸入/輸出設(shè)備的使用。6.1可編程并行輸入/輸出接口芯片8255A一、功能8255A(8155A)是一種通用的可編程并行I/O接口芯片,廣泛用于幾乎所有系列的微型機(jī)系統(tǒng)中,如8086、MCS51、Z80CPU系統(tǒng)等。8255A具有3個(gè)帶鎖存或緩沖的數(shù)據(jù)端口,可與外設(shè)并行進(jìn)行數(shù)據(jù)交換。用戶可用程序來(lái)選擇多種操作方式,通用性強(qiáng)。使用靈活,可為CPU與外設(shè)之間提供并行輸入/輸出通道。二、8255引腳及內(nèi)部結(jié)構(gòu)

1、8255A的引腳

8255有40個(gè)引腳,采用雙列直插式封裝形式。其引腳如圖所示。二、8255A的內(nèi)部結(jié)構(gòu)

數(shù)據(jù)總線緩沖器內(nèi)部控制線內(nèi)部數(shù)據(jù)線D0~D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部讀寫(xiě)控制邏輯PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET1、與外設(shè)連接的管腳

我們已經(jīng)知道8255A有三個(gè)數(shù)據(jù)端口,每個(gè)端口是8位的,由此可推算與外設(shè)相連接的管腳共有24位。其中A口有PA7—PA0八個(gè)I/O引腳,B口有PB7—PB0八個(gè)I/O引腳,C口有PC7—PC0八個(gè)I/O引腳。特別地對(duì)于PC7—PC0,其中可有若干根復(fù)用線可用于“聯(lián)絡(luò)”信號(hào)或狀態(tài)信號(hào),其具體定義與端口的工作方式有關(guān)。

PA0…PA7PB0…PB7PC0…PC7端口A:PA0~PA7A組,支持工作方式0、1、2端口B:PB0~PB7B組,支持工作方式0、1端口C:PC0~PC7僅支持工作方式0A組控制高4位PC4~PC7B組控制低4位PC0~PC3端口A:PA0~PA7常作數(shù)據(jù)端口,功能最強(qiáng)大端口B:PB0~PB7常作數(shù)據(jù)端口端口C:PC0~PC7可作數(shù)據(jù)、狀態(tài)和控制端口分兩個(gè)4位,每位可獨(dú)立操作控制最靈活,最難掌握2、與CPU連接的管腳

包括數(shù)據(jù)線D7—D0,讀寫(xiě)控制線和,復(fù)位線RESET,以及和CPU地址線相連接的片選信號(hào)、端口地址控制線A0和A1。CS*A1A0I/O地址讀操作RD*寫(xiě)操作WR*00000101001160H61H62H63H讀端口A讀端口B讀端口C非法寫(xiě)端口A寫(xiě)端口B寫(xiě)端口C寫(xiě)控制字D0~D7數(shù)據(jù)線 A0~A1地址線RD*讀信號(hào) WR*寫(xiě)信號(hào)CS*片選信號(hào) RESET復(fù)位信號(hào)8255A端口選擇及操作功能表D0…D7A0A1/CS/WR/RDRESET三、8255A的控制字8255A可以通過(guò)指令在控制端口中設(shè)置控制字來(lái)決定它的工作。8255A的控制字有兩個(gè),共用一個(gè)地址,根據(jù)D7位的值來(lái)區(qū)分??刂谱址譃閮深?lèi):1.方式選擇控制字2.C口置位/復(fù)位控制字1D6D5D4D3D2D1D0方式選擇控制字標(biāo)識(shí)位A組方式選擇00方式001方式11x方式2端口A1輸入0輸出PC3~PC0:1輸入(方式0時(shí))0輸出端口B:1輸入0輸出B組方式選擇:0方式01方式1PC7~PC4:1輸入(方式0時(shí))0輸出8255A的工作方式可由CPU寫(xiě)一個(gè)工作方式選擇控制字到8255A的控制寄存器來(lái)選擇。其格式如上圖所示,可以分別選擇端口A、端口B和端口C上下兩部分的工作方式。端口A有方式0、方式1和方式2三種工作方式,端口B只能工作于方式0和方式1,而端口C僅工作于方式0。注意8255A工作方式選擇控制字的最高位D7(特征位)應(yīng)為1。0D6D5D4D3D2D1D0xxx無(wú)關(guān)1:置10:置000001111端口C按位置1/置0控制字標(biāo)識(shí)位位選擇PC0PC1PC2PC3PC4PC5PC6PC700110011010101018255A的C口按位置位/復(fù)位控制字8255A的C口具有位控功能,即端口C的8位中的任一位都可通過(guò)CPU向8255A的控制寄存器寫(xiě)入一個(gè)按位置位/復(fù)位控制字來(lái)置1或清0,而C口中其他位的狀態(tài)不變。其格式如上圖所示,注意8255A的C口按位置位/復(fù)位控制字的最高位D7(特征位)應(yīng)為0。例如:設(shè)有一片8255A的口地址為60H-63H,PC5平時(shí)為低電平,要求從PC5的引腳輸出一個(gè)正脈沖。可使用程序先將PC5置1,輸出一個(gè)高電平,再把PC5清零,輸出一個(gè)低電平,結(jié)果PC5引腳輸出一個(gè)正脈沖。程序如下:MOVAL,00001011BOUT63H,ALMOVAL,000001010BOUT63H,AL四、8255A的工作方式及編程8255A端口功能表工作方式方式0A口B口C口方式1方式2基本輸入輸出端口輸入不鎖存,輸出鎖存同A口同A口應(yīng)答式輸入輸出端口輸入輸出均可鎖存雙向應(yīng)答式輸入輸出,輸入輸出均可鎖存同A口不用上C口作為應(yīng)答式A口的應(yīng)答線;下C口作為應(yīng)答式B口的應(yīng)答線用作A口的雙向應(yīng)答控制線★三種可編程的工作方式:方式0——基本的字節(jié)輸入/輸出方式方式1——選通的字節(jié)輸入/輸出方式方式2——帶選通的雙向字節(jié)輸入/輸出方式

8255A有三種工作方式:方式0——基本輸入/輸出方式方式1——選通輸入/輸出方式方式2——雙向傳輸方式可以通過(guò)往控制寄存器中寫(xiě)入控制字來(lái)選擇其工作方式。方式0:基本輸入輸出方式適用于無(wú)條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數(shù)據(jù)的外設(shè)適用于查詢和中斷方式的接口電路1、8255A工作在方式0方式0也叫基本輸入/輸出方式。在這種方式下,端口A和端口B可以通過(guò)方式選擇控制字規(guī)定為輸入口或者輸出口;端口C分為高4位(PC7~PC4)和低4位(PC3~PC0)兩個(gè)4位端口,這兩個(gè)4位端口也可由方式選擇控制字分別規(guī)定為輸入口或輸出口。這四個(gè)并行口共可構(gòu)成16種不同的使用組態(tài)。利用8255A的方式0進(jìn)行數(shù)據(jù)傳輸時(shí),由于沒(méi)有規(guī)定專(zhuān)門(mén)的應(yīng)答信號(hào),所以這種方式常用于與簡(jiǎn)單外設(shè)之間的數(shù)據(jù)傳送,如向LED顯示器的輸出,從二進(jìn)制開(kāi)關(guān)裝置的輸入等。需要說(shuō)明的是,這里所說(shuō)的輸入或輸出是相對(duì)于8255A芯片而言的。當(dāng)數(shù)據(jù)從外設(shè)送往8255A時(shí)為輸入,反之,數(shù)據(jù)從8255A送往外設(shè)則為輸出。方式0也可以用于查詢方式的輸入或輸出接口電路,此時(shí)端口A和B分別作為一個(gè)數(shù)據(jù)端口,而用端口C的某些位作為這兩個(gè)數(shù)據(jù)端口的控制和狀態(tài)信息。下圖是一個(gè)A口和B口工作在方式0時(shí)利用C口某些位作為聯(lián)絡(luò)信號(hào)的接口電路。在此例中將8255A設(shè)置為:A口輸出,B口輸入,C口高4位輸入(現(xiàn)僅用PC7、PC6兩位輸入外設(shè)的狀態(tài)),C口低4位輸出(現(xiàn)僅用PC1、PC0兩位輸出選通及清除信號(hào))。此時(shí)8255A的工作方式控制字為10001010B(8AH)。方式0查詢方式的接口電路其工作原理如下:在向輸出設(shè)備送數(shù)據(jù)前,先通過(guò)PC7查詢?cè)O(shè)備狀態(tài),若設(shè)備準(zhǔn)備好則從A口送出數(shù)據(jù),然后通過(guò)PC1發(fā)選通信號(hào)使輸出設(shè)備接收數(shù)據(jù)。從輸入設(shè)備取數(shù)據(jù)前,先通過(guò)PC6查詢?cè)O(shè)備狀態(tài),設(shè)備準(zhǔn)備好后,再?gòu)腂口讀入數(shù)據(jù),然后通過(guò)PC0發(fā)清除信號(hào),以便輸入后續(xù)字節(jié)。2.方式1——選通的輸入輸出方式特點(diǎn):(1)兩組端口A和B都可以工作在方式1,每一組包含一個(gè)8位的數(shù)據(jù)端口和一個(gè)3位的控制端口。(2)8位數(shù)據(jù)端口可以是輸入或者輸出,輸入/出均帶鎖存。(3)C口有6位固定作為A口、B口的狀態(tài)和控制信號(hào),剩下2位可由程序指定為輸入和輸出。在方式1輸入情況下,C口被定義的狀態(tài)和控制信號(hào)有、IBF和INTR,其含義如下::選通信號(hào),低電平有效,由外設(shè)提供。有效時(shí),外設(shè)把數(shù)據(jù)送入8255A的A口或B口。

IBF:輸入緩沖器滿,高電平有效,由8255A輸出給外設(shè)。當(dāng)該信號(hào)有效時(shí)表明數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示A口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器外設(shè)已將數(shù)據(jù)送到A口或B口的輸入緩沖器。IBF由置位,的上升沿使它復(fù)位。IBF可作為8255A與外設(shè)的聯(lián)絡(luò)信號(hào)。當(dāng)IBF=0時(shí),允許外設(shè)向8255A傳送一個(gè)數(shù)據(jù);當(dāng)IBF=1時(shí),表示外設(shè)送來(lái)的數(shù)據(jù)還未被CPU取走,這時(shí)禁止外設(shè)向8255A傳送數(shù)據(jù)。IBF也可作為CPU的查詢信號(hào),當(dāng)IBF=1時(shí),告訴CPU應(yīng)該從8255A的端口讀取數(shù)據(jù)。INTR:中斷請(qǐng)求信號(hào),高電平有效,由8255A發(fā)出。在程序設(shè)置的中斷允許信號(hào)INTE=1的條件下,當(dāng)=1和IBF=1時(shí),INTR被置為1,的上升沿使它復(fù)位。INTE是端口內(nèi)部的中斷允許信號(hào),是內(nèi)部中斷允許觸發(fā)器的狀態(tài),由C口的位控字來(lái)設(shè)置。若位控字使PC4=1,則A口的中斷允許信號(hào)INTEA=1;若位控字PC2=1,則B口的中斷允許信號(hào)INTB=1。這一點(diǎn)對(duì)于PC4和PC2兩引的、功能并無(wú)影響。方式1輸入引腳:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示A口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)中斷允許觸發(fā)器方式1需借用端口C用做聯(lián)絡(luò)信號(hào)同時(shí)還具有中斷請(qǐng)求和屏蔽功能方式1輸入聯(lián)絡(luò)信號(hào)STB*——選通信號(hào),低電平有效由外設(shè)提供的輸入信號(hào),當(dāng)其有效時(shí),將輸入設(shè)備送來(lái)的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號(hào),高電平有效8255A輸出的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),表示數(shù)據(jù)已鎖存在輸入鎖存器INTR——中斷請(qǐng)求信號(hào),高電平有效8255A輸出的信號(hào),可用于向CPU提出中斷請(qǐng)求,要求CPU讀取外設(shè)數(shù)據(jù)方式1輸入的時(shí)序方式1輸出時(shí),各個(gè)控制信號(hào)的意義OBF(OutputBufferFull):輸出緩沖器滿信號(hào),輸出,低電平有效。當(dāng)CPU把數(shù)據(jù)寫(xiě)入端口A或B的輸出緩沖器時(shí),寫(xiě)信號(hào)WR的上升沿把OBF置成低電平,通知外設(shè)到端口A或B來(lái)取走數(shù)據(jù),當(dāng)外設(shè)取走數(shù)據(jù)時(shí)向8255A發(fā)應(yīng)答信號(hào)ACK,ACK的下降沿使OBF恢復(fù)為高電平。ACK(Acknowledge):外設(shè)應(yīng)答信號(hào),輸入,低電平有效。當(dāng)ACK有效時(shí),表示CPU輸出到8255A的數(shù)據(jù)已被外設(shè)取走。INTR(InterruptRequest):中斷請(qǐng)求信號(hào),輸出,高電平有效。該信號(hào)由ACK的后沿(上升沿)在INTE=1且OBF=1的條件下產(chǎn)生,該信號(hào)使8255A向CPU發(fā)出中斷請(qǐng)求。若CPU響應(yīng)此中斷請(qǐng)求,則向數(shù)據(jù)口寫(xiě)入一方式1輸出時(shí),各個(gè)控制信號(hào)的意義新的數(shù)據(jù),寫(xiě)信號(hào)WR上升沿(后沿)使INTR復(fù)位,變?yōu)榈碗娖?。INTE(InterruptEnable):中斷允許信號(hào),與方式1輸入類(lèi)似,端口A的輸出中斷請(qǐng)求INTRA可以通過(guò)對(duì)PC6的置位或復(fù)位來(lái)加以允許或禁止。端口B的輸出中斷請(qǐng)求信號(hào)INTRB可以通過(guò)對(duì)PC2的置位或復(fù)位來(lái)加以允許或禁止。方式1輸出時(shí),各個(gè)控制信號(hào)的意義方式1輸出引腳:A端口外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外設(shè)響應(yīng)信號(hào)表示外設(shè)已經(jīng)接收到數(shù)據(jù)輸出緩沖器滿信號(hào)表示CPU已經(jīng)輸出了數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器方式1輸出引腳:B端口

方式1輸出的時(shí)序

3.方式2——雙向傳輸方式此方式只適用于端口A。這時(shí),在PA0~PA7的8位數(shù)據(jù)線上,外設(shè)既可以從8255A獲取數(shù)據(jù);也可以向8255A發(fā)送數(shù)據(jù)。傳輸過(guò)程既可以工作于查詢方式,也可以工作于中斷方式。方式2的主要特點(diǎn)(1)僅限于端口A。(2)一個(gè)雙向8位數(shù)據(jù)總線端口A和一個(gè)5位的控制/狀態(tài)端口C。(3)輸入/輸出均鎖存。方式2將方式1的選通輸入輸出功能組合成一個(gè)雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)只有端口A可以工作于方式2,需要利用端口C的5個(gè)信號(hào)線,其作用與方式1相同方式2的數(shù)據(jù)輸入過(guò)程與方式1的輸入方式一樣方式2的數(shù)據(jù)輸出過(guò)程與方式1的輸出方式有一點(diǎn)不同:數(shù)據(jù)輸出時(shí)8255A不是在OBF*有效時(shí)向外設(shè)輸出數(shù)據(jù),而是在外設(shè)提供響應(yīng)信號(hào)ACK*時(shí)才送出數(shù)據(jù)

方式2的控制和狀態(tài)信息

D711/01/01/01×××工作方式控制字D6D5D4D3D2D1D0

方式2的控制和狀態(tài)信息

8255A工作于方式2的狀態(tài)字當(dāng)A口工作于方式2時(shí),允許中斷,此時(shí)若B口工作于方式1,則也允許中斷。這時(shí)就有三個(gè)中斷源(A口的輸入和輸出、B口)、兩個(gè)中斷請(qǐng)求信號(hào)(INTRA、INTRB)。CPU在響應(yīng)8255A的中斷請(qǐng)求時(shí),先要查詢PC3(INTRA)和PC0(INTRB),以判斷中斷源是A口還是B口。如果中斷源是A口,還要進(jìn)一步查詢PC5(IBFA)和PC7(),以確定是輸入中斷還是輸出中斷。8255A的工作方式2是A口方式1輸出和方式1輸入兩種操作的組合,所以方式2的工作過(guò)程也同上述工作方式1的輸出和輸入過(guò)程。INTRWROBFAACKA送外設(shè)的數(shù)據(jù)數(shù)據(jù)有效1234STBA97IBFARD方式2的時(shí)序

8255A的編程初始化編程:一個(gè)方式控制字采用控制I/O地址:A1A0=11工作過(guò)程中:通過(guò)數(shù)據(jù)端口對(duì)外設(shè)數(shù)據(jù)進(jìn)行讀寫(xiě)數(shù)據(jù)讀寫(xiě)利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBMPC/XT機(jī)上,端口A、B、C和控制端口的I/O地址為60H、61H、62H和63H1.寫(xiě)入方式控制字:控制字格式1.寫(xiě)入方式控制字:示例要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:movdx,0fffeh ;假設(shè)控制端口為FFFEHmoval,0b1h ;方式控制字outdx,al ;送到控制端口2.讀寫(xiě)數(shù)據(jù)端口初始化編程后:當(dāng)數(shù)據(jù)端口作為輸入接口時(shí),執(zhí)行輸入IN指令將從輸入設(shè)備得到外設(shè)數(shù)據(jù)當(dāng)數(shù)據(jù)端口作為輸出接口時(shí),執(zhí)行輸出OUT指令將把CPU的數(shù)據(jù)送給輸出設(shè)備8255A具有鎖存輸出數(shù)據(jù)的能力對(duì)輸出方式的端口同樣可以輸入不是讀取外設(shè)數(shù)據(jù)讀取的是上次CPU給外設(shè)的數(shù)據(jù)2.讀寫(xiě)數(shù)據(jù)端口:示例利用8255A的輸出鎖存能力,可實(shí)現(xiàn)按位輸出控制對(duì)輸出端口B的PB7位置位的程序段:movdx,0fffah ;B端口假設(shè)為FFFAHinal,dx ;讀出B端口原輸出內(nèi)容oral,80h ;使PB7=1outdx,al ;輸出新的內(nèi)容3.讀寫(xiě)端口C:歸納1C端口被分成兩個(gè)4位端口,兩個(gè)端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組3.讀寫(xiě)端口C:歸納2當(dāng)A和B端口工作在方式1或方式2時(shí),C端口的部分或全部引腳將被征用其余引腳仍可設(shè)定工作在方式03.讀寫(xiě)端口C:歸納3對(duì)端口C的數(shù)據(jù)輸出有兩種辦法通過(guò)端口C的I/O地址:向C端口直接寫(xiě)入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫(xiě)進(jìn)C端口的輸出鎖存器,并從輸出引腳輸出,但對(duì)設(shè)置為輸入的引腳無(wú)效通過(guò)控制端口:向C端口寫(xiě)入位控字,使C端口的某個(gè)引腳輸出1或0,或置位復(fù)位內(nèi)部的中斷允許觸發(fā)器端口C的位控制字位控制字寫(xiě)入控制端口特別便于置位復(fù)位內(nèi)部中斷允許觸發(fā)器INTE3.讀寫(xiě)端口C:歸納4讀取的C端口數(shù)據(jù)有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯(lián)絡(luò)線的引腳:將讀到反映8255A狀態(tài)的狀態(tài)字D7D6D5D4D3D2D1D0方式1輸入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1輸出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2雙向OBFAINTE1IBFAINTE2INTRA×××端口C的狀態(tài)字A組B組七、8255應(yīng)用舉例作為通用的并行接口電路芯片,825A具有廣泛的應(yīng)用應(yīng)用在IBMPC/XT微機(jī)上應(yīng)用于打印機(jī)接口電路連接簡(jiǎn)易鍵盤(pán)驅(qū)動(dòng)LED數(shù)碼管1、LED顯示器接口2、并行打印機(jī)接口電路3、鍵盤(pán)接口1、LED顯示器接口例:8255A作為開(kāi)關(guān)K0~K3及七段LED顯示器接口。要求開(kāi)關(guān)設(shè)置的二進(jìn)制信息,由PC0~PC3輸入,經(jīng)程序轉(zhuǎn)換為對(duì)應(yīng)的七段LED顯示器的字形代碼后,由PA口輸出顯示。8255APA7PA0~驅(qū)動(dòng)器+5V+5VK0K1K2K3PC3PC2PC1PC0D7~D0RDWRA1A2ABCG2AG2BG1Y0Y1Y2OOOD7~D0RDWRA0A1CSA0A3A4A78086系統(tǒng)總線LS138接口電路M/IO&A5A6各端口地址為:E8H~EEH8255A各端口地址確定:由圖可知: A7A6A5A4A3A2A1A011101

08255A方式選擇控制字:CSABCG2AG2BG1Y0Y1Y2A0A3A4A7LS138M/IO&A5A6按題意設(shè)置端口A方式0輸出,下C口輸入.10000××181HLED顯示器的結(jié)構(gòu)abdcefgdpLED顯示器的外形abcdefgep共陽(yáng)極LED顯示器的結(jié)構(gòu)abcdefgep共陰極LED顯示器的結(jié)構(gòu)LED顯示器的結(jié)構(gòu)可分為共陽(yáng)極和共陰極兩種若要顯示某個(gè)字符首先需要將它轉(zhuǎn)換成對(duì)應(yīng)的字形碼(也稱為段碼),然后送到LED顯示。這一轉(zhuǎn)換過(guò)程稱為譯碼。譯碼方法分為軟件譯碼法和硬件譯碼法兩種PA0PA1PA2PA3PA4PA5PA6PA78255DB7--DB0abcdefgep方案1共陽(yáng)極LED顯示器與同相驅(qū)動(dòng)器接口LED顯示器的工作原理軟件譯碼:abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0dpgfedcba0(C0H)11000000abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(90H)100100001(F9H)111110012(A4H)101001003(B0H)101100004(99H)100110015(92H)100100106(82H)100000107(F8H)111110008(80H)10000000LED顯示器的工作原理PA0PA1PA2PA3PA4PA5PA6PA78255DB7--DB0abcdefgep方案2共陽(yáng)極LED顯示器與反相驅(qū)動(dòng)器接口abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0dpgfedcba0(3FH)00111111abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(6FH)011011111(05H)000001102(5BH)010110113(4FH)010011114(66H)011001105(6DH)011011016(7DH)011111017(07H)000001118(7FH)01111111LED顯示器的字形代碼表存放在TABLE單元開(kāi)始的內(nèi)存中.TABLEDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,98H,88H,83H,0C6H,0A1H,86H,8EH編程:實(shí)現(xiàn)操作的具體程序如下:MOV DX,0E8H ;指向端口A OUT DX,AL ;輸出字形碼顯示 HLTMOV DX,0EEH;設(shè)置8255A工作方式MOV AL,81H OUT DX,ALMOV DX,0ECH;指向端口C,讀開(kāi)關(guān)狀態(tài) IN AL,DX AND AL,0FH LEA BX,TABLE;顯示代碼表首地址送BX XLAT ;查表,取出相應(yīng)的字形碼送AL硬件譯碼:利用專(zhuān)用接口芯片7447驅(qū)動(dòng)LED顯示器7447為BCD—七段譯碼器與單個(gè)LED的連接7447abcdefg1312111091514VccGNDRBIRBOLTABCD345+5V7126+5V1685VR=(5–1.5–0.2)V/20mA=168取R=1505V1.5V0.2VI=20mARLED顯示器的電路設(shè)計(jì)分為兩種,靜態(tài)顯示和動(dòng)態(tài)顯示,兩種電路各有長(zhǎng)處和缺點(diǎn),在不同情況下可采用不同的連接方式。下面是兩種連接方式:PA0PA1PA2PA3PA4PA5PA6PA77447abcdefgABCD7447abcdefgABCD7447abcdefgABCD7447abcdefgABCDPB0PB1PB2PB3PB4PB5PB6PB7DB0——DB7DB0——DB77447BCD—七段譯碼器與多個(gè)LED的連接5V靜態(tài)顯示器的設(shè)計(jì)器件多,輸出顯示后若不改變顯示內(nèi)容CPU不用干預(yù)?????????????????????7447abcdefg???ABCDPB0PB1PB2PB3PA0PA1PA2PA3PA4PA5PA68255動(dòng)態(tài)顯示器的設(shè)計(jì)動(dòng)態(tài)顯示器控制程序的設(shè)計(jì)LEASI,BUFFMOVCX,07HMOVDL,01H初始化結(jié)束取顯示數(shù)據(jù)送段通道口延時(shí)位碼送位通道口是否最后一位修改指針,位碼NYMOVAL,[SI]OUTPOTB,ALMOVAL,DLOUTPOTA,ALINCSIROLDL?????????????????????PB0PA0PA1PA2PA3PA4PA5PA68255???ag??????PB7???74LS07初始化結(jié)束取顯示數(shù)據(jù)查表得段碼送段通道延時(shí)位碼送位通道是否最后一位修改指針,位碼NYLEASI,BUFFMOVCL,40HMOVBX,LED-ADDDISI:MOVAL,[SI]XLATMOVDX,POTBOUTDX,ALMOVAL,CLMOVDX,POTAOUTDX,ALINCSISHRCLJNZDISI二、鍵盤(pán)接口鍵盤(pán)是微型計(jì)算機(jī)系統(tǒng)中最常用的一種輸入設(shè)備。鍵盤(pán)有兩種類(lèi)型:編碼鍵盤(pán)和非編碼鍵盤(pán)。編碼鍵盤(pán)能自動(dòng)提供對(duì)應(yīng)于被按鍵的編碼,如ASCII碼,并能同時(shí)產(chǎn)生一個(gè)脈沖通知CPU。編碼鍵盤(pán)還具有處理抖動(dòng)和多鍵串鍵的保護(hù)電路。這種鍵盤(pán)的優(yōu)點(diǎn)是使用方便,但需要較多的硬件,價(jià)格昂貴。非編碼鍵盤(pán)有一組開(kāi)關(guān)組成,提供行和列的鍵盤(pán)矩陣,其工作過(guò)程:按鍵的識(shí)別;按鍵代碼的產(chǎn)生;防止串鍵和消除抖動(dòng)等均由程序來(lái)實(shí)現(xiàn)。故這種鍵盤(pán)的優(yōu)點(diǎn)是所需要的硬件較少,價(jià)格便宜,宜用微機(jī)化儀表的面板的鍵盤(pán)。

這里只介紹非編碼鍵盤(pán)PB7PB6PB5PB4PB3PB2PB1PB0C98DE40F615B273APA0PA1PA2PA38255A8255A+5V4行×4列16個(gè)按鍵的鍵盤(pán)工作原理鍵盤(pán)掃描過(guò)程:(1)檢測(cè)鍵盤(pán)上所有的鍵是否都松開(kāi),反復(fù)檢測(cè)直至全松開(kāi)。(2)檢測(cè)鍵盤(pán)上是否有鍵按下,反復(fù)檢測(cè)直至有鍵按下。(3)若有鍵按下,則消除鍵抖動(dòng)后(硬件消抖動(dòng)電路,軟件延時(shí)消抖動(dòng)下),再確認(rèn)該鍵是否按下。(4)對(duì)按下的鍵進(jìn)行編碼,即將該鍵所在的行號(hào)和列號(hào)轉(zhuǎn)換成16進(jìn)制代碼。(6)根據(jù)代碼轉(zhuǎn)相應(yīng)功能子程序。注:若在按鍵時(shí),多個(gè)鍵盤(pán)同時(shí)按下,可取最后松開(kāi)的按鍵作為本次按下的鍵。(5)檢測(cè)該鍵是否松開(kāi),反復(fù)檢測(cè)直至松開(kāi)。初始化:PORT-AEQU0FF9H;8255A口地址PORT-BEQU0FFBH;8255B口地址PORT-CTLEQU0FF9H;8255控制口地址TABLEDB77H,7BH,7DH,7EHDB0B7H,0BBH,0BDH,0BEHDB0D7H,0DBH,0DDH,0DEHDB0E7H,0EBH,0EDH,0EEH8255初始化:方式0,A口輸出,B口、C口輸入MOVDX,PORT-CTL;DX指向控制口MOVAL,10001011B;控制字OUTDX,AL;寫(xiě)入控制字MOVDX,PORT-A;DX指向A口MOVAL,00HOUTDX,ALWO:MOVDX,PORT-B;DX指向B口INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;各鍵均未按下JNEWO;否,繼續(xù)等WR:INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;是否有鍵按下JEWR;否,等待MOVCX,16EAHDELAY:LOOPDELAYWR:INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;是否有鍵按下JEWR;否,等待讀入列值鍵松開(kāi)讀入列值有鍵按下延時(shí)20ms消抖動(dòng)鍵仍按下逐行逐列查按鍵查表得鍵代碼所有行置“0”NYNMOVAL,0FEH;置行掃描初值MOVCL,AL;暫存于CN-R:MOVDX,PORT-AOUTDX,AL;輸出行掃描值MOVDX,PORT-B;DX指向B口INAL,DX;輸入B口ANDAL,OFHCOMAL,OFH;有鍵按下JNEENCODE;是,轉(zhuǎn)編碼ROLCL,01;否,修改掃描初值MOVCL,ALJMPN-R;掃描下一行ENCODE:MOVBX,000FH;置鍵代碼初值INAL,DX;讀入行列號(hào)NEXT-T:COMAL,TABLE[BX];與表中行列號(hào)相等嗎JEDONE;相等轉(zhuǎn)DONEDECBX;不相等,修改位置JNSNEXT-T;未查完,繼續(xù)MOVAH,01;查完,未查到,置出錯(cuò)標(biāo)志JMPEXIT;退出DONE:MOVAL,BL;鍵代碼送ALMOVAH,00;鍵有

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論