版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 并行接口并行通信:在微型計(jì)算機(jī)和外設(shè)或其它計(jì)算機(jī)之間的信息交換中,把一個(gè)字符的各數(shù)位用幾根數(shù)據(jù)線同時(shí)進(jìn)行傳輸。并行接口:實(shí)現(xiàn)并行通信的接口并行接口電路的實(shí)現(xiàn):通用的TTL芯片,如:74LS373、74LS244和74LS245等可編程并行接口芯片,如:8255A 簡(jiǎn)單并行接口7.1可編程并行接口8255A7.2鍵盤接口7.3LED顯示器接口7.47.1 簡(jiǎn)單并行接口采用通用的TTL芯片,是一種不可編程的接口芯片,它電路結(jié)構(gòu)簡(jiǎn)單、功能單一,硬件接好后,功能固定,無(wú)法改變。簡(jiǎn)單并行接口的種類7.1.1簡(jiǎn)單并行接口的應(yīng)用7.1.27.1.1 簡(jiǎn)單并行接口的種類基本部件為三態(tài)緩沖器和數(shù)據(jù)鎖存器
2、。通常包括上述兩種部件之一或兼具這兩種部件的接口電路都可作為簡(jiǎn)單的并行接口。三態(tài)緩沖器接口1數(shù)據(jù)鎖存器接口2兼具數(shù)據(jù)鎖存器和三態(tài)緩沖器的接口31.三態(tài)緩沖器接口使用最多、最典型的是:74LS244:?jiǎn)蜗虻?位緩沖器/驅(qū)動(dòng)器74LS245:雙向的8位總線收發(fā)器。由于三態(tài)門具有“通斷”控制能力的這個(gè)特點(diǎn),故可利用其作輸入接口。利用三態(tài)門作為輸入信號(hào)接口時(shí),要求信號(hào)源能夠?qū)⑿盘?hào)保持足夠長(zhǎng)的時(shí)間直到被CPU讀取,這是因?yàn)槿龖B(tài)門本身沒有對(duì)信號(hào)的保持或鎖存能力。 圖7.1圖7.1 74LS244的邏輯功能圖和引腳圖2.數(shù)據(jù)鎖存器接口數(shù)據(jù)輸出接口通常采用具有信息存儲(chǔ)能力的雙穩(wěn)態(tài)觸發(fā)器來(lái)實(shí)現(xiàn)。數(shù)據(jù)鎖存器接口主
3、要是指帶有一定控制端的觸發(fā)器和數(shù)據(jù)鎖存器,最簡(jiǎn)單的可用D觸發(fā)器構(gòu)成。例如,常用的8位觸發(fā)器組成的74LS273芯片。 74LS273共有8個(gè)數(shù)據(jù)輸入端(1D8D)和8個(gè)數(shù)據(jù)輸出端1Q8Q。S為復(fù)位端,低電平有效,CP為脈沖輸入端,在每個(gè)脈沖的上升沿將輸入端D的狀態(tài)鎖存在Q輸出端,并將此狀態(tài)保持到下一個(gè)時(shí)鐘脈沖的上升沿。74LS273常作為并行輸出接口。 圖7.2圖7.2 74LS273的邏輯功能圖和引腳圖3.兼具數(shù)據(jù)鎖存器和三態(tài)緩沖器的接口最典型的是74LS373芯片,它是具有三態(tài)緩沖功能的數(shù)據(jù)鎖存器,由一個(gè)8位的鎖存器和一個(gè)8位三態(tài)緩沖器構(gòu)成。 功能類似的還有Intel公司的8212輸入/輸
4、出接口芯片。 圖7.3圖7.3 74LS373的邏輯功能圖和引腳圖使能端G有效時(shí),將D端數(shù)據(jù)鎖存到觸發(fā)器。當(dāng)輸出允許端OE有效時(shí),將鎖存的數(shù)據(jù)送到輸出端Q。 7.1.2 簡(jiǎn)單并行接口的應(yīng)用例7.1例7.2例7.1圖7.4是使用三態(tài)緩沖器74LS244構(gòu)成的開關(guān)接口電路。74LS244的端口地址為80H。試編寫一段程序,實(shí)現(xiàn)每隔5分鐘檢測(cè)一次開關(guān)S1S8的通斷狀態(tài),檢測(cè)100次結(jié)束,并把檢測(cè)結(jié)果保存到以2000H開始的一段存儲(chǔ)區(qū)域中。程序段圖7.4 由74LS244構(gòu)成的開關(guān)接口例7.1的程序段 MOV BX,2000H MOV CX,100LOP: IN AL,80H;80H是I/O端口地址
5、MOV BX,AL INC BX CALL DELAY5M;延時(shí)5分鐘 LOOP LOP 圖7.4例7.2圖7.5是采用鎖存器74LS373的發(fā)光二級(jí)管LED接口電路。74LS373的端口地址為40H。試編寫一段程序,控制8個(gè)LED發(fā)光管間隔發(fā)光,每隔5秒鐘變換發(fā)光狀態(tài)(亮變滅,滅變亮),工作10小時(shí)結(jié)束。程序段圖7.5 由74LS373構(gòu)成的LED接口例7.2的程序段由圖7.5可看出,輸出為0時(shí),LED亮,為1時(shí),LED滅,由于要求8個(gè)LED間隔發(fā)光,所以可輸出初始值為01010101B=55H;另外,每隔5秒變換發(fā)光狀態(tài),10小時(shí)結(jié)束,所以需變換的次數(shù)為106060/5=7200。程序段如
6、下: MOV CX,7200 MOV AL,55HLOP: OUT 40H,AL;40H是I/O端口地址 CALL DELAY5S;延遲5秒鐘 XOR AL,0FFH LOOP LOP 7.2 可編程并行接口8255A8255A的內(nèi)部結(jié)構(gòu)和引腳特性7.2.18255A的控制字7.2.28255A的工作方式7.2.38255A的編程及應(yīng)用7.2.47.2.1 8255A的內(nèi)部結(jié)構(gòu)和引腳特性8255A的內(nèi)部結(jié)構(gòu)18255A的引腳特性21.8255A的內(nèi)部結(jié)構(gòu)圖7.6數(shù)據(jù)總線緩沖器數(shù)據(jù)端口A、B、CA組和B組控制電路讀/寫控制邏輯圖7.6 8255A的內(nèi)部結(jié)構(gòu)1)數(shù)據(jù)總線緩沖器一個(gè)雙向三態(tài)的8位緩沖
7、器用作8255A同數(shù)據(jù)總線相連的緩沖部件。CPU通過執(zhí)行輸入/輸出指令實(shí)現(xiàn)對(duì)緩沖器發(fā)送或接收操作。8255A的控制字和狀態(tài)字也是通過該緩沖器傳送的。圖7.62)數(shù)據(jù)端口A、B、C三個(gè)8位的數(shù)據(jù)端口PA、PB、PC,用戶可以用軟件將它們?cè)O(shè)置為輸入或輸出端口。端口A(PA口)有一個(gè)8位的數(shù)據(jù)輸入鎖存器和一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器。所以,端口A作為輸入或輸出時(shí),數(shù)據(jù)均受到鎖存。故端口A可以用在數(shù)據(jù)雙向傳輸?shù)膱?chǎng)合。端口B(PB口)和端口C(PC口)分別有一個(gè)8位的數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器。只有端口B和端口C用作輸出端口時(shí),數(shù)據(jù)才受到鎖存。圖7.63)A組和B組控制電路82
8、55A的三個(gè)數(shù)據(jù)端口分為兩組來(lái)控制。端口A及端口C的高4位為A組端口B及端口C的低4位為B組這兩組控制電路用來(lái)決定A組和B組的工作方式 。圖7.64)讀/寫控制邏輯完成對(duì)數(shù)據(jù)信息的傳輸控制??刂菩盘?hào)和傳輸動(dòng)作的對(duì)應(yīng)關(guān)系如表7.1所示。 圖7.62.8255A的引腳特性PA7PA0:端口A的數(shù)據(jù)輸入/輸出引腳,和外設(shè)相連。PB7PB0:端口B的數(shù)據(jù)輸入/輸出引腳,和外設(shè)相連。PC7PC0:端口C的數(shù)據(jù)輸入/輸出引腳,和外設(shè)相連。D7D0:雙向三態(tài)數(shù)據(jù)線,和系統(tǒng)數(shù)據(jù)總線相連。A1、A0:端口選擇信號(hào)。 當(dāng)A1A0=00時(shí),選中端口A; 當(dāng)A1A0=01時(shí),選中端口B; 當(dāng)A1A0=10時(shí),選中端口
9、C; 當(dāng)A1A0=11時(shí),選中控制端口。 2.8255A的引腳特性對(duì)8088CPU來(lái)講,其外部數(shù)據(jù)總線為8條,不論其選中奇地址還是偶地址讀寫,在一個(gè)總線周期內(nèi)都能完成。此時(shí)可將8255A的A1、A0對(duì)應(yīng)連接到8088系統(tǒng)總線的A1、A0上,則8255A各個(gè)端口地址為相鄰地址。對(duì)8086CPU來(lái)講,其外部數(shù)據(jù)總線為16條,其中數(shù)據(jù)總線的低8位總對(duì)應(yīng)一個(gè)偶地址,高8位總對(duì)應(yīng)一個(gè)奇地址。在8255A和8086CPU相連時(shí),若將8255A的數(shù)據(jù)線D7D0接到8086CPU數(shù)據(jù)總線低8位上時(shí),就要求8255A的端口地址應(yīng)為偶地址,這樣才能保證對(duì)8255A的端口讀寫能在一個(gè)總線周期內(nèi)完成。故將8255A的
10、A1和A0分別和8086系統(tǒng)總線的A2和A1對(duì)應(yīng)相連,而將8086地址總線的A0總設(shè)為0,即8255A端口地址為4個(gè)相鄰的偶地址。 8255A的控制端口用來(lái)接收控制字,從而決定8255A的工作方式。7.2.2 8255A的控制字8255A的控制字有兩種:方式選擇控制字端口C置1/置0控制字這兩個(gè)控制字均寫入8255A的控制口。 1.方式選擇控制字方式選擇控制字用來(lái)決定8255A三個(gè)數(shù)據(jù)端口各自的工作方式。其格式如圖7.8所示。8255A有3 種基本工作方式:方式0:基本輸入/輸出工作方式方式1:選通的輸入/輸出工作方式方式2:雙向傳輸方式例子圖7.8 8255A的方式選擇控制字例子在一個(gè)808
11、6系統(tǒng)中,若8255A的控制端口地址為0046H,要求將該8255A的端口A工作在方式0,作輸出口;端口B工作在方式1,作輸入口;端口C 的高4位做輸出,低4位設(shè)置為輸出。方式選擇控制字為86H。初始化程序: MOV AL,86H OUT 46H,AL圖7.82.端口C置1/置0控制字在用8255A的三個(gè)數(shù)據(jù)端口傳送信息的過程中,經(jīng)常將端口C的某一個(gè)數(shù)位或幾個(gè)數(shù)位作為控制信號(hào)使用,以配合端口A或端口B工作。端口C置1/置0控制字可以設(shè)置端口C的某個(gè)數(shù)位為1或?yàn)?,從而完成信息傳輸過程中的信號(hào)設(shè)置要求。其格式如圖7.10所示。例子圖7.10 端口C置1/置0控制字例子要求將端口C的PC6置0,P
12、C3置1,則端口C置1/置0控制字分別為0CH和07H,若8255A的控制端口地址為B0F6H,則程序段如下:MOV DX,0B0F6H MOV AL,0CH OUT DX,AL MOV AL,07H OUT DX,AL 圖7.107.2.3 8255A的工作方式3種:方式0、方式1和方式2。端口A可以工作在這3種方式的任何一種。端口B只能工作在方式0或方式1。端口C除作為一般輸入/輸出口之外,常用作配合端口A和端口B工作的控制聯(lián)絡(luò)口。工作方式可以通過向控制口寫入方式控制字來(lái)設(shè)置。方式0-基本的輸入輸出方式1方式1-選通的輸入輸出方式2方式2-雙向傳輸方式31.方式0-基本的輸入/輸出方式各端
13、口工作的輸入或輸出狀態(tài)可以任意定義。端口A、B可以被定義為簡(jiǎn)單的并行輸入或輸出端口,端口C的高4位和低4位也可以定義為兩個(gè)獨(dú)立的4位輸入或輸出端口。程序通過IN和OUT指令對(duì)各個(gè)端口進(jìn)行讀寫。輸入時(shí)序輸出時(shí)序小結(jié)圖7.11 方式0輸入時(shí)序圖圖7.12 方式0輸出時(shí)序圖方式0小結(jié)在無(wú)條件傳送或查詢方式時(shí),常使用方式0。若工作在無(wú)條件傳送方式下,可以對(duì)8255A的三個(gè)8位并行數(shù)據(jù)口直接進(jìn)行讀寫操作。若工作在查詢式傳送方式下,可以用端口C的某些數(shù)位作為狀態(tài)信號(hào)的輸入和控制信號(hào)的輸出。這只需將端口C的低4位和高4位分別定義為輸入和輸出即可。 2.方式1-選通的輸入/輸出方式當(dāng)8255A的端口A或端口B
14、有一個(gè)工作在方式1,則端口C有3位固定地作為數(shù)據(jù)傳送的控制聯(lián)絡(luò)信號(hào)。由于工作在方式1時(shí),端口C的某些數(shù)位自動(dòng)地轉(zhuǎn)為數(shù)據(jù)傳送的選通和應(yīng)答信號(hào),故稱該方式為選通的輸入/輸出方式。輸入時(shí):A端口輸入時(shí)對(duì)應(yīng)的控制信號(hào)B端口輸入時(shí)對(duì)應(yīng)的控制信號(hào)輸入時(shí)序中斷控制輸出時(shí):A端口輸出時(shí)對(duì)應(yīng)的控制信號(hào)B端口輸出時(shí)對(duì)應(yīng)的控制信號(hào)輸出時(shí)序方式1小結(jié)方式1 :A端口輸入時(shí)對(duì)應(yīng)的控制信號(hào)數(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ù)PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器方式1 :B端口輸入時(shí)對(duì)應(yīng)的控制信號(hào)PC2PC1PC0P
15、B7PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號(hào)表示外設(shè)已經(jīng)準(zhǔn)備好數(shù)據(jù)輸入緩沖器滿信號(hào)表示B口已經(jīng)接收數(shù)據(jù)中斷請(qǐng)求信號(hào)請(qǐng)求CPU接收數(shù)據(jù)中斷允許觸發(fā)器方式1的輸入時(shí)序STB和IBF是外設(shè)和8255A間的一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),為的是可靠地輸入數(shù)據(jù)方式1的中斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位:允許中斷;復(fù)位:禁止中斷對(duì)INTE的操作通過寫入端口C的對(duì)應(yīng)位實(shí)現(xiàn),INTE觸發(fā)器對(duì)應(yīng)端口C的位是作應(yīng)答聯(lián)絡(luò)信號(hào)的輸入信號(hào)的那一位,只要對(duì)那一位置位/復(fù)位就可以控制INTE觸發(fā)器。選通輸入方式下端口A的INTEA對(duì)應(yīng)PC4端口B的INTEB對(duì)應(yīng)PC2方式1 :A端口輸出時(shí)對(duì)應(yīng)的控制信
16、號(hào)外設(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ù)PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器方式1 :B端口輸出時(shí)對(duì)應(yīng)的控制信號(hào)PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外設(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ā)器端口A的INTEA對(duì)應(yīng)PC6端口B的INTEB對(duì)應(yīng)PC2方式1的輸出時(shí)序OBF和ACK是外設(shè)和8255A間的一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),為的是可靠地輸出數(shù)據(jù)方式1小結(jié)若8255A的某一個(gè)端口工作在
17、方式1的輸入或輸出情況下,端口C中自動(dòng)提供了相應(yīng)的數(shù)位作為控制信號(hào),尤其是提供了中斷請(qǐng)求信號(hào)。若外設(shè)能給8255A提供選通信號(hào)和數(shù)據(jù)接收應(yīng)答信號(hào),那么利用端口C提供的信號(hào)和CPU聯(lián)絡(luò)而形成數(shù)據(jù)的中斷傳送方式,會(huì)比采用方式0的無(wú)條件傳送和查詢式傳送要方便有效。 3.方式2-雙向傳輸方式8255A的數(shù)據(jù)端口中,只有端口A可以工作在此種方式下。當(dāng)端口A工作在方式2時(shí),CPU通過8255A既可以向外設(shè)發(fā)送數(shù)據(jù),又可以從外設(shè)接收數(shù)據(jù),故稱為雙向傳輸方式。 方式2的控制信號(hào)方式2時(shí)序方式2小結(jié)方式2的控制信號(hào)PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAIN
18、TE2用PC6設(shè)置INTE1(輸出)用PC4設(shè)置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號(hào)方式2時(shí)序方式2小結(jié)由于方式2既可以工作在輸入方式,又可以工作在輸出方式,所以,若一個(gè)并行外設(shè)可以輸入數(shù)據(jù),又可以輸出數(shù)據(jù),當(dāng)它和8255A的端口A連接時(shí),可令8255A的端口A工作在方式2。 7.2.4 8255A的編程及應(yīng)用例7.3例7.4例7.38255A作為連接打印機(jī)的接口,如圖7.19所示。 端口A作為傳送字符的通道,工作于方式0,輸出;B端口未用;端口C工作于方式0,PC3作為信號(hào)輸入端,故PC3PC0為輸入方式,PC6作為信號(hào)輸出,故PC7PC4為輸出方式。設(shè)需打印的字符已放
19、在CL寄存器中。8255A的端口地址為:A端口:C000H C端口: C004HB端口:C002H 控制口:C006H工作過程程序段圖7.19 8255A作為連接打印機(jī)的接口例7.3的工作過程當(dāng)主機(jī)要往打印機(jī)輸出字符時(shí),先查詢打印機(jī)忙信號(hào)。如果打印機(jī)正在處理一個(gè)字符或正在打印一行字符,則忙信號(hào)為1,反之,則忙信號(hào)為0。當(dāng)查詢到忙信號(hào)為0時(shí),則可通過8255A往打印機(jī)輸出一個(gè)字符。此時(shí),要將選通信號(hào)STB置成低電平,然后再使STB為高電平,這相當(dāng)于在STB端輸出一個(gè)負(fù)脈沖(初始狀態(tài),是高電平) 。圖7.19例7.3的程序段PRINT: MOV DX,0C006H MOV AL,81H;控制字 O
20、UT DX,AL MOV AL,0DH OUT DX,AL;STB端送高電平 LP: MOV DX,0C004H IN AL,DX;檢測(cè)BUSY AND AL,08H JNZ LP;若打印機(jī)忙,則等待 MOV AL,CL MOV DX,0C000H OUT DX,AL; 若打印機(jī)不忙,將AL中字符送端口 MOV DX,0C006H MOV AL,0CH OUT DX,AL;使STB為低電平 MOV AL,0DH OUT DX,AL;使STB為高電平 ;后續(xù)程序段 圖7.19例7.48255A工作于方式1,作為用中斷方式工作的Centronic360 字符打印機(jī)的接口,如圖7.20所示。8255
21、A的端口A作為數(shù)據(jù)通道,工作于方式1。此時(shí)PC7自動(dòng)作為信號(hào)輸出端,PC6自動(dòng)作為信號(hào)輸入端,而PC3自動(dòng)作為信號(hào)輸出端。在Centronic360 字符打印機(jī)標(biāo)準(zhǔn)定義的信號(hào)線中,有2條聯(lián)絡(luò)信號(hào)線:選通信號(hào)STB,響應(yīng)信號(hào)ACKNLG。所需的數(shù)據(jù)選通脈沖信號(hào)STB由CPU控制PC0來(lái)產(chǎn)生。在這里沒有用到OBF,可將它懸空。PC3連接8259A的中斷請(qǐng)求輸入端IR3。對(duì)應(yīng)于中斷類型號(hào)0BH,此中斷對(duì)應(yīng)的中斷向量放在2CH,2DH,2EH和2FH四個(gè)內(nèi)存單元中,假設(shè)8259A在系統(tǒng)程序中已經(jīng)完成初始化,這部分電路連接圖未畫出。設(shè)8255A的端口地址為:端口:00C0H B端口:00C2HC端口:0
22、0C4H 控制口:00C6H方式控制字為A0H工作過程主程序段中斷處理子程序圖7.20 8255A作為中斷方式打印機(jī)接口例7.4的工作過程實(shí)際使用時(shí),在此系統(tǒng)中由中斷處理程序完成字符輸出,而主程序僅僅完成8255A的方式控制字的設(shè)置和開放中斷。需要指出的是這里開放中斷不僅要用STI開放CPU的中斷,而且要使8255A的INTE為1。在中斷處理程序中,設(shè)字符已放在主機(jī)的字符輸出緩沖區(qū),往A端口輸出字符后,CPU用對(duì)C端口的置1/置0命令使選通信號(hào)為0,從而將數(shù)據(jù)送到打印機(jī)。當(dāng)打印機(jī)接收并打印字符后,發(fā)出應(yīng)答信號(hào),由此清除了8255A的“緩沖器滿”指示,并使8255A產(chǎn)生新的中斷請(qǐng)求。如果中斷是開
23、放的,CPU便響應(yīng)中斷,進(jìn)入中斷處理程序。 圖7.20例7.4的主程序段MAIN: MOV AL,0A0H;主程序段 OUT 0C6H,AL MOV AL,01H;使PC0為,讓選通無(wú)效 OUT 0C6H,ALXOR AX,AX MOV DS,AX MOV AX,2000H MOV WORD PTR 002CH,AX MOV AX,1000H MOV WORD PTR 002EH,AX MOV AL,0DH;使PC6為,允許8255A中斷 OUT 0C6H,AL STI ;開放中斷 圖7.20例7.4的中斷處理子程序的主要程序段 ROUTINTR:MOV AL,DI;DI為緩沖區(qū)指針,字符送端
24、口 OUT 0C0H,AL MOV AL,00H;使PC0為,產(chǎn)生選通信號(hào) OUT 0C6H,AL INC AL;使PC0為,撤銷選通信號(hào) OUT 0C6H,AL IRET7.3 鍵盤接口鍵盤的工作原理7.3.1鍵的識(shí)別7.3.27.3.1 鍵盤的工作原理運(yùn)用簡(jiǎn)單結(jié)構(gòu)來(lái)設(shè)計(jì)鍵盤的缺點(diǎn):當(dāng)鍵盤上的鍵較多時(shí),引線太多,占用的I/O端口也太多,只能用在僅有幾個(gè)鍵的小鍵盤中。通常使用的鍵盤結(jié)構(gòu)是矩陣式的。設(shè)有mn個(gè)鍵,則采用矩陣式結(jié)構(gòu)只要mn條引線。7.3.2 鍵的識(shí)別為了識(shí)別鍵盤上的閉合鍵,通常采用行掃描法。矩陣式鍵盤的行線、列線分別接并行輸出口和并行輸入口,如圖7.23所示。行掃描法識(shí)別閉合鍵的原
25、理圖7.23行掃描法識(shí)別閉合鍵的原理先使第0行接地,其余行為高電平,如有某條列線變?yōu)榈碗娖?,則表示第0行和此列線相交位置上的鍵被按下;如列線全為高電平,則說(shuō)明第0行上沒有鍵被按下。此后,再將第1行接地,然后檢測(cè)列線中是否有變?yōu)榈碗娖降木€。如此往下逐行掃描,直到最后一行。在掃描過程中,當(dāng)發(fā)現(xiàn)某行有鍵閉合時(shí),也就是列線中有1位為0時(shí),根據(jù)行線位置和列線位置,便能識(shí)別此刻閉合的到底是哪一個(gè)鍵。實(shí)際上:第一步:判斷是否有鍵按下第二步:判斷哪一個(gè)鍵被按下圖7.23第一步:判斷是否有鍵按下使輸出端口各位均輸出為0,即相當(dāng)于將所有各行都接地。然后,從輸入端口讀入數(shù)據(jù)。如讀得的數(shù)據(jù)是FFH,則程序在循環(huán)中等待
26、。如果讀得的數(shù)據(jù)不是FFH,則說(shuō)明必有列線處于低電平,從而可斷定必有鍵被按下。此時(shí),為了消除鍵的抖動(dòng),可以調(diào)用延遲程序,然后再判別具體按下的是哪個(gè)鍵。程序段圖7.23第一步的程序段 WAIT:MOV AL,00H MOV DX,OUTPORT;輸出端口 OUT DX,AL MOV DX,INPORT;輸入端口 IN AL,DX AND AL,0FFH CMP AL,0FFH JZ WAIT DONE:CALL DELAY;是,則延遲20ms去抖動(dòng) 圖7.23第二步:判斷哪一個(gè)鍵被按下流程圖程序段第二步的流程圖圖7.23第二步的程序段PROG:MOV BL,0 MOV CL,0FEH MOV D
27、L,8 ;計(jì)數(shù)值為行數(shù) FROW:MOV AL,CL MOV DX, OUTPORT OUT DX,AL ROL AL,1 MOV CL,AL MOV DX, INPORT IN AL,DX CMP AL,0FFH JNZ FCOL MOV AL,BL ADD AL,08H MOV BL,AL DEC DL JNZ FROW JMP DONE FCOL: RCR AL,1 JNC PROCE INC BL JMP FCOL PROCE: ;鍵命令處理程序 DONE: ;后續(xù)處理程序 圖7.237.4 LED顯示器接口LED顯示器的工作原理7.4.1靜態(tài)顯示與動(dòng)態(tài)顯示7.4.27.4.1 LED
28、顯示器的工作原理七段發(fā)光二極管簡(jiǎn)稱為L(zhǎng)ED,它是一種應(yīng)用很普遍的顯示器件。許多微型機(jī)控制系統(tǒng)及數(shù)字化儀器中都用LED作為輸出顯示。LED的主要部分是七段發(fā)光管,如圖7.25所示。LED顯示器有共陽(yáng)和共陰兩種結(jié)構(gòu),如圖7.26所示。LED顯示器和8255A之間的連接為了將一個(gè)二進(jìn)制數(shù)在一個(gè)LED上顯示出來(lái),就需要將4位二進(jìn)制數(shù)轉(zhuǎn)換為L(zhǎng)ED的7位顯示代碼: 采用專用芯片進(jìn)行LED段譯碼軟件譯碼法圖7.25 七段LED顯示器圖7.26 七段LED顯示器件內(nèi)部電路LED顯示器和8255A之間的連接CPU通過8255A往LED傳輸七段代碼,8255A的端口本身是8位的,因此,有1位懸空未用。由于LED的
29、一個(gè)段發(fā)光時(shí),通過的平均電流為10mA左右,所以采用共陰極LED時(shí),陰極接地,而陽(yáng)極要加驅(qū)動(dòng)電路。用共陰極LED時(shí),如驅(qū)動(dòng)器輸出為,則對(duì)應(yīng)的段發(fā)光。采用專用芯片進(jìn)行LED段譯碼采用專用帶驅(qū)動(dòng)器的LED顯示器段譯碼器,可以實(shí)現(xiàn)對(duì)BCD碼的譯碼,但不能對(duì)大于9的二進(jìn)制數(shù)譯碼。7447有4位輸入,7位輸出。使用時(shí),只要將7447的輸入端與主機(jī)系統(tǒng)輸出端口的某4位相連,而7447的7位輸出直接與LED顯示器的ag相接,便可以實(shí)現(xiàn)對(duì)1位BCD碼的顯示。 軟件譯碼法下面的程序段用來(lái)實(shí)現(xiàn)1位數(shù)字的LED顯示。設(shè)要顯示數(shù)字放在DATA單元中,而LEDADD為代碼表首址。DISP: MOV BX,OFFSET DATA MOV AL,BX MOV BX,OFFSET LEDADD XLAT OUT DX,
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育背景下城市酒店的多元化民族元素應(yīng)用探索
- 2025來(lái)料加工和來(lái)件裝配合同范本重慶冉繽律師文集
- 文創(chuàng)設(shè)計(jì)師創(chuàng)意設(shè)計(jì)文化創(chuàng)意
- 酒吧保安工作總結(jié)
- 媒體行業(yè)的數(shù)字化轉(zhuǎn)型之路
- 2025非訴委托合同書
- 2025民間借款貸款合同范本
- 2025關(guān)于解除勞動(dòng)合同協(xié)議書范例
- 小學(xué)勞動(dòng)教育中跨文化交流的實(shí)踐與思考
- 心理輔導(dǎo)與學(xué)校心理健康教育的結(jié)合
- 2024年08月云南省農(nóng)村信用社秋季校園招考750名工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識(shí)
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- 企業(yè)員工培訓(xùn)之風(fēng)險(xiǎn)管理與防范對(duì)策
- 水源熱泵操作規(guī)程
- 食材配送后續(xù)服務(wù)方案
- 鑄造工廠設(shè)備管理(共21頁(yè))
- 農(nóng)產(chǎn)品收購(gòu)臺(tái)賬(登記經(jīng)營(yíng)單位及個(gè)體經(jīng)營(yíng)者投售的農(nóng)產(chǎn)品
- 分紅保險(xiǎn)精算規(guī)定
- Proud-of-you中英文歌詞
- 基因的表達(dá)與調(diào)控.ppt
評(píng)論
0/150
提交評(píng)論