微機(jī)原理第8章并行接口8255Final-課件_第1頁(yè)
微機(jī)原理第8章并行接口8255Final-課件_第2頁(yè)
微機(jī)原理第8章并行接口8255Final-課件_第3頁(yè)
微機(jī)原理第8章并行接口8255Final-課件_第4頁(yè)
微機(jī)原理第8章并行接口8255Final-課件_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第8章 并行接口8255及應(yīng)用第8章 第一節(jié) 可編程并行接口8255第一節(jié) 可編程并行接口8255并行接口概念 并行通信就是把一個(gè)字符的各數(shù)位用幾條線(xiàn)同時(shí)進(jìn)行傳輸,并行通信的信息傳輸速度快,信息率高。用于數(shù)據(jù)傳輸要求較高,距離較短的場(chǎng)合 并行通信沒(méi)有對(duì)同步和異步傳輸?shù)膰?yán)格定義。如果CPU用一個(gè)時(shí)序信號(hào)來(lái)管理接口和設(shè)備的動(dòng)作,這樣的并行傳輸稱(chēng)為同步傳輸;如果CPU和接口設(shè)備之間只用應(yīng)答信號(hào)聯(lián)系,這樣的傳輸稱(chēng)為異步傳輸。并行接口概念8255的內(nèi)部結(jié)構(gòu)8255是Intel系列的并行接口芯片,它是可編程的,可以用來(lái)設(shè)置其工作方式,不需要再附加外部電路。8255的內(nèi)部結(jié)構(gòu)8255是Intel系列的并行接

2、口芯片,它數(shù)據(jù)端口 A, B, C:3個(gè)8bit數(shù)據(jù)端口,有各自的特點(diǎn) 端口A1個(gè)8bit的數(shù)據(jù)輸入鎖存,一個(gè)8bit的數(shù)據(jù)輸出鎖存;2) 端口B1個(gè)8bit的數(shù)據(jù)輸入緩沖,一個(gè)8bit的數(shù)據(jù)輸出鎖存; 3) 端口C1個(gè)8bit的數(shù)據(jù)輸入緩沖,一個(gè)8bit的數(shù)據(jù)輸出鎖存;端口C常常被分成2個(gè)4位端口,分別作為端口A和端口B的輸入輸出控制線(xiàn)和狀態(tài)信號(hào)線(xiàn),與端口A、端口B配合使用。數(shù)據(jù)端口 A, B, C:3個(gè)8bit數(shù)據(jù)端口,有各自的特點(diǎn)2. A組控制和B組控制接受CPU對(duì)控制端口的命令(控制字),可以獨(dú)立地設(shè)置8255中3個(gè)端口的工作方式3. 數(shù)據(jù)總線(xiàn)緩沖器雙向三態(tài)8bit數(shù)據(jù)緩沖器,與CPU

3、的數(shù)據(jù)總線(xiàn)相連,同時(shí)與8255的內(nèi)部數(shù)據(jù)總線(xiàn)相連,接受從CPU發(fā)出的控制字, 輸入輸出數(shù)據(jù), 同時(shí)也向CPU傳輸8255的狀態(tài)字4. 讀寫(xiě)控制邏輯電路接受CPU發(fā)送的讀寫(xiě)信號(hào),其中A0 , A1尋址8255內(nèi)部寄存器,共有3個(gè)數(shù)據(jù)端口,1個(gè)控制端口。2. A組控制和B組控制接受CPU對(duì)控制端口的命令(控制字)2. 8255的引腳信號(hào)PA7PA0, PB7PB0, PC7PC0與外設(shè)相連的獨(dú)立地址的并行擴(kuò)展口。D7D0:與CPU的數(shù)據(jù)總線(xiàn)相連,傳輸8255的命令字或I/O數(shù)據(jù)。RESET:高有效, 8255內(nèi)部寄存器清零, 3個(gè)端口均為輸入。2. 8255的引腳信號(hào)PA7PA0, PB7PB0,

4、 :片選信號(hào),為低8255開(kāi)始工作:為低,讀有效,CPU可以從3個(gè)端口讀入數(shù)據(jù)。:為低,寫(xiě)有效,CPU可以向3個(gè)端口輸出數(shù)據(jù),同時(shí)利用寫(xiě)信號(hào)可以向8255的控制口寫(xiě)控制命令,設(shè)置8255的工作方式。:片選信號(hào),為低8255開(kāi)始工作:為低,讀有效,CPU可以從3. 8255的控制字控制字分兩類(lèi),一類(lèi)是控制并行口的工作方式的命令,一類(lèi)是專(zhuān)門(mén)對(duì)C口各位的設(shè)置。這兩類(lèi)控制字占用一個(gè)地址,用命令的最高位D7位進(jìn)行區(qū)分, 所以控制字的最高位D7稱(chēng)為控制字標(biāo)志位。為1為方式選擇字,為0為端口C設(shè)置字。D7D6D5D4D3D2D1D0格式字A組工作方式A口I/OC口高半字節(jié)I/OB組工作方式B口I/OC口低半

5、字節(jié)I/O100 方式001 方式110 方式21輸入0輸出1 輸入0 輸出0 方式01 方式11 輸入0 輸出1 輸入0 輸出 A 方式選擇控制字3. 8255的控制字控制字分兩類(lèi),一類(lèi)是控制并行口的工作方A1 , A0:8255內(nèi)部寄存器地址尋址信號(hào),8255內(nèi)部有4個(gè)端口,A,B,C與控制口。A1 A0 端口00A口01B口10C口11控制口A1 , A0:8255內(nèi)部寄存器地址尋址信號(hào),8255內(nèi)部說(shuō)明:1) A口有3種工作方式方式0:基本I/O方式;方式1:?jiǎn)蜗蜻x通I/O方式,輸入或輸出只能選一種;方式2:雙向選通I/O方式,一次設(shè)置后通道既可以做輸入又可以做輸出。2) 端口B有兩種

6、工作方式 即方式0與方式13) A口和B口工作在方式0時(shí),C口也可同時(shí)工作在方式0,且C口高半字節(jié)和低半字節(jié)可以分別獨(dú)立工作。說(shuō)明:4) A口工作在方式1時(shí),C口的部分位成為A口的信號(hào)聯(lián)絡(luò)線(xiàn),但B口仍可以獨(dú)立工作。不要求A,B同為輸入或輸出。B口工作于方式1也是一樣。5) A口工作于方式2,C口的大部分位線(xiàn)用于A口的信號(hào)聯(lián)絡(luò)線(xiàn),B口仍可以獨(dú)立工作于方式0或方式1。4) A口工作在方式1時(shí),C口的部分位成為A口的信號(hào)聯(lián)絡(luò)線(xiàn),D7D6D5D4D3D2D1D0格式字A組工作方式A口I/OC口高半字節(jié)I/OB組工作方式B口I/OC口低半字節(jié)I/O100 方式001 方式110 方式21輸入0輸出1 輸

7、入0 輸出0 方式01 方式11 輸入0 輸出1 輸入0 輸出一系統(tǒng)采用8255作I/O接口,其控制口的地址為8BH,將端口A設(shè)置為方式0輸入,端口B設(shè)置為方式1輸出,則A口的地址為_(kāi) ,B口地址為_(kāi),控制字為_(kāi)。8BH 1000 1011 1000 1000 88H 1000 1001 89H88H89HD7D6D5D4D3D2D1D01001010094HD7D6D5D4D3D2D1D0格式字A組工作方式A口I/OJ1:A口,方式0,輸出 B口,方式0,輸入 C口高,輸出; C 口低,輸入 J2:A口,方式0,輸入 B口,方式1,輸出 C口高,輸出 J1,J2地址A7A6A5A4A3A2A

8、1A0J1J210010088H8EH10000080H86H00J1:A口,方式0,輸出J2:A口,方式0,輸入J1,J2地D7D6D5D4D3D2D1D0格式字A組工作方式A口I/OC口高半字節(jié)I/OB組工作方式B口I/OC口低半字節(jié)I/O100 方式001 方式110 方式21輸入0輸出1 輸入0 輸出0 方式01 方式11 輸入0 輸出1 輸入0 輸出J1:A口,方式0,輸出; B口,方式0,輸入; C口高,輸出 ; C 口低,輸入 地址: 88H-8EH控制字:D7D6D5D4D3D2D1D01000001183HD7D6D5D4D3D2D1D0格式字A組工作方式A口I/OD7D6D

9、5D4D3D2D1D0格式字A組工作方式A口I/OC口高半字節(jié)I/OB組工作方式B口I/OC口低半字節(jié)I/O100 方式001 方式110 方式21輸入0輸出1 輸入0 輸出0 方式01 方式11 輸入0 輸出1 輸入0 輸出J2:A口,方式0,輸入; B口,方式1, 輸出; C口高,輸出 地址:80H-86H控制字:D7D6D5D4D3D2D1D0100101094HD7D6D5D4D3D2D1D0格式字A組工作方式A口I/OJ1:A口,方式0,輸出 B口,方式0,輸入 C口高,輸出 C 口低,輸入地址:88H-8EH,控制字:83H J2:A口,方式0,輸入 B口,方式1,輸出 C口高,輸

10、出 地址:80H-86H,控制字:94HMOV AL, 83HOUT 8EH, AL ;J1控制口MOV AL, 94HOUT 86H, AL ;J2控制口J1:A口,方式0,輸出J2:A口,方式0,輸入MOV A B 端口C口各位設(shè)置字D7D6D5D4D3D2D1D0格式字位選擇數(shù)值0000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC71/0例:07H 00000111,即將 PC3置1。 B 端口C口各位設(shè)置字D7D6D5D4D3D2D1D說(shuō)明:1) 端口C置0/置1控制字盡管是對(duì)端口C進(jìn)行操作,但此控制字必須寫(xiě)入控制口,而不是寫(xiě)

11、入端口C。2) 一個(gè)控制字只能對(duì)一位進(jìn)行操作。J1:A口,方式0,輸出 B口,方式0,輸入 C口高, 輸出,C 口低,輸入 地址: 88H-8EH, 控制字: 83H C口PC7置1, PC3置0。MOV AL, 0FH ;00001111OUT 8EH, AL MOV AL, 06H ;00000110OUT 8EH, AL 說(shuō)明:J1:A口,方式0,輸出 B口,方式0,輸入MOV第二節(jié) 8255的工作方式第二節(jié) 8255的工作方式一、方式0 基本輸入輸出方式實(shí)際上是4個(gè)端口,A、B、C高、C低,可以獨(dú)立地任意組合,一共可有16種組合方式。輸入時(shí)序一、方式0 基本輸入輸出方式輸入時(shí)序1) C

12、PU在發(fā)出讀信號(hào)前,先發(fā)出地址信號(hào),使8255的片選及各寄存器有效。2) 在CPU發(fā)出讀信號(hào)之前,外設(shè)已將欲輸入的數(shù)據(jù)送入8255的數(shù)據(jù)總線(xiàn)緩沖器。3) 8255數(shù)據(jù)總線(xiàn)緩沖器中的數(shù)據(jù)必須保持到讀信號(hào)消失后才結(jié)束。4) 讀脈沖寬度至少大于300ns。5) 在整個(gè)輸入數(shù)據(jù)期間,地址信號(hào)保持有效。1) CPU在發(fā)出讀信號(hào)前,先發(fā)出地址信號(hào),使8255的片選輸出時(shí)序1) 地址信號(hào)必須先有效;2) 寫(xiě)脈沖大于400ns;3) 數(shù)據(jù)在寫(xiě)信號(hào)結(jié)束前有效,且能在寫(xiě)信號(hào)結(jié)束后保持一段時(shí)間;4) 在寫(xiě)信號(hào)結(jié)束后,不超過(guò)350ns,數(shù)據(jù)出現(xiàn)在8255的輸出鎖存器中。輸出時(shí)序1) 地址信號(hào)必須先有效;2) 寫(xiě)脈沖大

13、于400ns在方式0中,可利用C口的各位信號(hào)線(xiàn)做應(yīng)答信號(hào),配合A, B口的輸入輸出操作。圖中, 8255地址為02A0H02A6H根據(jù)開(kāi)關(guān)情況來(lái)控制LED。(開(kāi)關(guān)閉合燈亮),寫(xiě)出控制程序。分析:A口輸入,方式0;B口輸出,方式0控制字:1 00 1 0 0 90HMOV DX, 2A6HMOV AL, 90H OUT DX, AL MOV DX, 2A0HIN AL, DXMOV DX, 2A2H OUT DX, AL 在方式0中,可利用C口的各位信號(hào)線(xiàn)做應(yīng)答信號(hào),配合A, B口打印機(jī)工作順序(過(guò)程)1) 數(shù)據(jù)與STB信號(hào)一起送入打印機(jī),STB相當(dāng)于啟動(dòng)信號(hào),啟動(dòng)打印機(jī)接受數(shù)據(jù);2) 打印機(jī)處

14、理數(shù)據(jù),這時(shí)BUSY為高,表示“忙”;3) 處理完數(shù)據(jù),BUSY為0,且ACK為低,應(yīng)答主機(jī)。打印機(jī)工作順序(過(guò)程)CPU經(jīng)8255與打印機(jī)連接,8255地址:80H83H,打印從BUF緩沖區(qū)開(kāi)始的100個(gè)字符。分析:8255A口方式0輸出,C口高半位輸出,C口低半位輸入,控制字:10000181H步驟:1) 查看PC2; 2) 發(fā)送PA; 3) 發(fā)送PC7。CPU經(jīng)8255與打印機(jī)連接,8255地址:80H83H,8255地址80H83H,控制字81HMOV AL, 81H OUT 83H, ALMOV AL, 0FHOUT 83H, ALLEA SI, BUFMOV CX, 100 ; 設(shè)

15、置PC7為1,不啟動(dòng)打印機(jī)L: IN AL, 82H AND AL, 04H JNZ L MOV AL, SI OUT 80H, ALMOV AL, 0EHOUT 83H, ALCALL delayMOV AL, 0FHOUT 83H, ALINC SIDEC CXJNZ LHLT; 讀C口; 判斷PC2;發(fā)送字符;PC7置0;PC7置1;下一個(gè)字符; 忙, 等待8255地址80H83H,控制字81HMOV AL, 二、方式1 選通輸入輸出方式(應(yīng)答方式)1. 特點(diǎn)1) A口或B口工作在方式1時(shí),C口各位做聯(lián)絡(luò)應(yīng)答信號(hào)線(xiàn),其各位的含義是固定的,不可用軟件改變;2) 各位聯(lián)絡(luò)信號(hào)都有固定的時(shí)序(

16、自動(dòng)進(jìn)行)3) 在輸入輸出操作中,產(chǎn)生固定格式的狀態(tài)字,這些狀態(tài)信息可供CPU查詢(xún)或向CPU申請(qǐng)中斷。CPU從端口C中讀取狀態(tài)字。4) 方式1為單向傳送,初始化后只能向一個(gè)方向上傳送,若要反方向傳送必須再次初始化。二、方式1 選通輸入輸出方式(應(yīng)答方式)1. 特2. 方式1下輸入操作的聯(lián)絡(luò)信號(hào)線(xiàn)定義及時(shí)序指定了C口的3根線(xiàn)作為A口的聯(lián)絡(luò)線(xiàn)。: 外設(shè)送入的選通信號(hào),與外設(shè)數(shù)據(jù)一起送入,相當(dāng)于8255的啟動(dòng)信號(hào)。IBFA: Input Buffer Full,輸入緩沖器滿(mǎn),高有效,由8255發(fā)往外設(shè),表示8255收到數(shù)據(jù),但未被CPU取走,通知外設(shè)不可再送數(shù)據(jù);當(dāng)其為低時(shí),表示CPU已取走數(shù)據(jù),允

17、許外設(shè)送新的數(shù)據(jù)。&2. 方式1下輸入操作的聯(lián)絡(luò)信號(hào)線(xiàn)定義及時(shí)序指定了C口的3根INTRA: 8255向CPU申請(qǐng)中斷,高有效,請(qǐng)求CPU中斷。INTR為高有3個(gè)條件: 1) STB為高,即數(shù)據(jù)已打入8255; 2) IBF為高,即8255已收到數(shù)據(jù);3) INTE(中斷請(qǐng)求允許)為高,即8255允許以中斷方式應(yīng)答。 INTRA為高,通知CPU可以取8255口中的數(shù)。&INTRA: 8255向CPU申請(qǐng)中斷,高有效,請(qǐng)求CPU中INTEA: Interrupt Enable,中斷允許信號(hào),設(shè)置中斷允許或屏蔽中斷的信號(hào)。INTE沒(méi)有外部引出端,由軟件對(duì)C口某位進(jìn)行置0或置1的操作實(shí)現(xiàn)。對(duì)A口,中

18、斷允許端是PC4,對(duì)B口,是PC2。置1允許中斷,置0屏蔽中斷。&INTEA: Interrupt Enable,中斷允許端口B在方式1輸入下各個(gè)聯(lián)絡(luò)線(xiàn)的定義與端口A完全一樣,只是占用C口的聯(lián)絡(luò)線(xiàn)與端口A不同。其中,其中斷屏蔽允許位是PC2。&端口B在方式1輸入下各個(gè)聯(lián)絡(luò)線(xiàn)的定義與端口A完全一樣,只是占PC02屬于B口聯(lián)絡(luò)線(xiàn),PC35屬于A口聯(lián)絡(luò)線(xiàn),PC6,PC7沒(méi)有被重新定義,仍可作為基本I/O口使用,屬于C口的高半部分,在控制字中定義其輸入輸出特性。&PC02屬于B口聯(lián)絡(luò)線(xiàn),PC35屬于A口聯(lián)絡(luò)線(xiàn),PC6,工作時(shí)序工作時(shí)序1) 數(shù)據(jù)與STB由外設(shè)進(jìn)入8255,STB為低,通知8255接受數(shù)

19、據(jù)。2) 8255收到STB信號(hào),將IBF置為1,通知外設(shè)禁止再送入數(shù)據(jù),同時(shí)接受數(shù)據(jù)。3) STB信號(hào)是由外設(shè)發(fā)出,一般有效300ns。4) 具備3個(gè)條件:STB為高,IBF為高,INTE為高,8255向CPU發(fā)中斷申請(qǐng)信號(hào),通知CPU取走數(shù)據(jù)。5) CPU接到中斷申請(qǐng)后,響應(yīng)中斷,向8255相應(yīng)端口發(fā)讀信號(hào),6) 讀信號(hào)的下降沿復(fù)位中斷申請(qǐng),7) 上升沿復(fù)位8255向外設(shè)發(fā)的禁止輸入信號(hào),外設(shè)得以向8255發(fā)送下一數(shù)據(jù)。1) 數(shù)據(jù)與STB由外設(shè)進(jìn)入8255,STB為低,通知825(4) RD外設(shè)8255CPU(1) STB(2) IBF(3) INTR(4) RD外設(shè)8255CPU(1)

20、STB(2) IBF(3. 方式1下輸出操作的聯(lián)絡(luò)信號(hào)線(xiàn)定義及時(shí)序指定了端口C的3根線(xiàn)做其聯(lián)絡(luò)信號(hào)線(xiàn)。: Output Buffer Full,輸出緩沖器滿(mǎn),8255接到CPU送來(lái)的數(shù)據(jù)后,將數(shù)據(jù)連帶這個(gè)信號(hào)一起送往外設(shè),這個(gè)信號(hào)相當(dāng)于啟動(dòng)信號(hào),通知外設(shè)開(kāi)始接收數(shù)據(jù)。3. 方式1下輸出操作的聯(lián)絡(luò)信號(hào)線(xiàn)定義及時(shí)序指定了端口C的3: 外設(shè)應(yīng)答信號(hào),外設(shè)送入8255,低有效。有效時(shí)表示外設(shè)已接到數(shù)據(jù),這個(gè)信號(hào)可以將OBF變高,表示CPU可以進(jìn)行下一次傳輸。INTR:中斷請(qǐng)求信號(hào),由8255發(fā)往CPU,高有效,為高的條件是:WR、OBF、ACK和INTE均為高電平,分別表示為:WR為高:CPU已寫(xiě)完一

21、個(gè)數(shù)據(jù);OBF為高:輸出緩沖器已空;ACK為高:外設(shè)應(yīng)答信號(hào)結(jié)束。表明外設(shè)收到數(shù)據(jù);INTE為高:8255允許中斷。: 外設(shè)應(yīng)答信號(hào),外設(shè)送入8255,低有效。有效時(shí)表示外設(shè)已INTEA: Interrupt Enable,中斷允許信號(hào),設(shè)置中斷允許或屏蔽中斷的信號(hào)。INTE沒(méi)有外部引出端,由軟件對(duì)C口某位進(jìn)行置0或置1的操作實(shí)現(xiàn)。對(duì)A口,中斷允許端是PC6,對(duì)B口,是PC2。置1允許中斷,置0屏蔽中斷。INTEA: Interrupt Enable,中斷允許端口B在方式1輸出下各個(gè)聯(lián)絡(luò)線(xiàn)的定義與端口A完全一樣,只是占用C口的聯(lián)絡(luò)線(xiàn)與端口A不同。其中,其中斷屏蔽允許位是PC2。其占用的聯(lián)絡(luò)線(xiàn)與

22、輸入時(shí)一樣,但聯(lián)絡(luò)線(xiàn)的定義不同。端口B在方式1輸出下各個(gè)聯(lián)絡(luò)線(xiàn)的定義與端口A完全一樣,只是占PC02屬于B口聯(lián)絡(luò)線(xiàn),PC3,PC6,PC7屬于A口聯(lián)絡(luò)線(xiàn),PC4,PC5沒(méi)有被重新定義,仍可作為基本I/O口使用,屬于C口的高半部分,在控制字中定義其輸入輸出特性。PC02屬于B口聯(lián)絡(luò)線(xiàn),PC3,PC6,PC7屬于A口聯(lián)絡(luò)輸出時(shí)序:輸出時(shí)序:1) CPU在INTR為高的情況下WR信號(hào)有效,通過(guò)DB向8255寫(xiě)入數(shù)據(jù);2) WR信號(hào)的上升沿使INTR為低,禁止CPU繼續(xù)向8255發(fā)送數(shù)據(jù);3) WR信號(hào)的上升沿使OBF信號(hào)有效,通知外設(shè)取走8255端口的數(shù)據(jù);同時(shí),CPU輸入的數(shù)據(jù)也出現(xiàn)在8255相應(yīng)

23、的端口上;4) 外設(shè)取走數(shù)據(jù),向8255發(fā)送應(yīng)答信號(hào),5) 其下降沿復(fù)位OBF,6) 其上升沿復(fù)位INTR,使中斷申請(qǐng)信號(hào)有效,8255得以繼續(xù)向CPU申請(qǐng)中斷,輸出下一個(gè)數(shù)據(jù)。1) CPU在INTR為高的情況下WR信號(hào)有效,通過(guò)DB向8外設(shè)8255CPU(1)WR(2) OBF(3) ACK(4) INTR外設(shè)8255CPU(1)WR(2) OBF(3) ACK(4D7D6D5D4D3D2D1D0A組B組輸入:D7D6D5D4D3I/OI/OIBFAINTEAINTRA輸出:D7D6D5D4D3OBFAINTEAI/OI/OINTRAD2D1D0INTEBIBFBINTRBD2D1D0INT

24、EBOBFBINTRB狀態(tài)字中CPU可以查詢(xún)的狀態(tài)輸入是IBF和INTR,輸出是OBF和INTR,但一般INTR更可靠。如果中斷允許INTE為0(禁止中斷),則INTR無(wú)效。但如果CPU禁止8255中斷,一般在硬件上不接INTR管腳,而INTE依然置1,供CPU查詢(xún)INTR。D7D6D5D4D3D2D1D0A組B組輸入:D7D6D5D4. 方式1的狀態(tài)字在方式1下8255有固定的狀態(tài)字,反應(yīng)了當(dāng)前8255正在工作的各種狀態(tài),即其內(nèi)部各寄存器的狀態(tài),供CPU查詢(xún),CPU通過(guò)讀寫(xiě)8255的端口C可以獲取狀態(tài)字。狀態(tài)字是8255在輸入輸出過(guò)程中由內(nèi)部自動(dòng)產(chǎn)生的,由C口讀取,與端口C在芯片外部的引腳無(wú)

25、關(guān)。4. 方式1的狀態(tài)字在方式1下8255有固定的狀態(tài)字,反應(yīng)了8255工作在方式1控制微型打印機(jī)應(yīng)用實(shí)例分析:PA端口與打印機(jī)的數(shù)據(jù)線(xiàn)相連;OBF(PC7)與打印機(jī)的STB相連,啟動(dòng)打印機(jī);ACK(PC6)與打印機(jī)的ACK相連,打印機(jī)取走數(shù)據(jù);ACK信號(hào)通知8255數(shù)據(jù)已被取走,該信號(hào)自動(dòng)使OBF為高,但由于打印機(jī)速度很慢,因此在打印時(shí),會(huì)發(fā)出BUSY信號(hào),此時(shí),需查詢(xún)BUSY為低才可以完成一次數(shù)據(jù)傳輸。所以用PC4接BUSY,設(shè)置為輸入。8255工作在方式1控制微型打印機(jī)應(yīng)用實(shí)例分析:PA端口與打8255地址:200H206H控制字:1010 1 A8HLEA SI, BUFMOV CX,

26、 100MOV DX, 206HMOV AL, 0A8HOUT DX, ALL1: MOV AL, SI MOV DX, 200H OUT DX, AL MOV DX, 204HL2: IN AL, DX AND AL, 80H JZ L2 L3: IN AL, DX AND AL, 10H JNZ L3 INC SI DEC CX JNZ L1 HLT;寫(xiě)控制字;A口輸出數(shù)據(jù);讀狀態(tài)字;查看OBF是否為高;讀C口;查看PC48255地址:200H206H控制字:1010 1 利用中斷申請(qǐng)INTR查詢(xún)地址:80H83H, 控制字A8H允許中斷,設(shè)置PC6為1控制字:0110 1 0DHLEA

27、SI, BUFMOV CX, 100MOV AL, 0A8HOUT 83H, ALMOV AL, 0DHOUT 83H, ALL1: MOV AL, SI OUT 80H, ALL2: IN AL, 82H AND AL, 08H JZ L2 L3: IN AL, 82 AND AL, 10H JNZ L3 INC SI DEC CX JNZ L1 HLT;A口輸出數(shù)據(jù);讀狀態(tài)字;查看INTR是否為高;讀C口;查看PC4利用中斷申請(qǐng)INTR查詢(xún)地址:80H83H, 控制字A8H三、方式2 雙向應(yīng)答式輸入輸出方式該方式只能用于端口A,指定A口既作入口又作輸出口,可采用中斷或查詢(xún)方式與CPU交換數(shù)

28、據(jù),C口用5個(gè)高位數(shù)位為A口提供應(yīng)答信號(hào)。這時(shí),端口B仍可以方式0或方式1工作。三、方式2 雙向應(yīng)答式輸入輸出方式該方式只能用于輸出輸入方式2的信號(hào)聯(lián)絡(luò)線(xiàn)實(shí)際上是方式1輸入輸出的組合。輸出輸入方式2的信號(hào)聯(lián)絡(luò)線(xiàn)實(shí)際上是方式1輸入輸出的組合。同樣,方式2的時(shí)序?qū)嶋H上也是方式1的輸入與輸出的時(shí)序的組合。當(dāng)一個(gè)外設(shè)既可以用作輸入也可以用作輸出時(shí),將其接口初始化為方式2,這樣輸入輸出就不用再重新初始化了,具體某個(gè)時(shí)刻是輸出操作還是輸入操作由程序來(lái)控制,CPU可以通過(guò)中斷或查詢(xún)狀態(tài)字來(lái)控制程序進(jìn)程。同樣,方式2的時(shí)序?qū)嶋H上也是方式1的輸入與輸出的時(shí)序的組合。方式2的輸入與輸出是一個(gè)中斷源,因此,在中斷處

29、理程序中還應(yīng)該查詢(xún)8255的狀態(tài)字,進(jìn)一步識(shí)別是輸入申請(qǐng)中斷還是輸出申請(qǐng)中斷,來(lái)啟動(dòng)不同的處理程序。方式2的輸入與輸出是一個(gè)中斷源,因此,在中斷處理程序中還應(yīng)該方式2的狀態(tài)字D7D6D5D4D3OBFAINTE1IBFAINTE2INTRA輸入:INTRAINTEAIBFAI/OI/OD3D4D5D6D7輸出:INTRAI/OI/OINTEAOBFAD3D4D5D6D7方式1輸出輸入兩個(gè)中斷允許位INTE1和INTE2要分別設(shè)置。在中服中要查詢(xún)OBF和IBF兩位,看是哪個(gè)操作在申請(qǐng)中斷。方式2的狀態(tài)字D7D6D5D4D3OBFAINTE1IBFA第三節(jié) 鍵盤(pán)及LED顯示第三節(jié) 鍵盤(pán)及LED顯示

30、鍵盤(pán)及LED顯示電路鍵盤(pán)是微機(jī)系統(tǒng)最常使用的輸入設(shè)備小鍵盤(pán):適用于單板機(jī)或以微處理器為基礎(chǔ)的儀器,實(shí)現(xiàn)數(shù)據(jù)、地址、命令及指令等的輸入獨(dú)立鍵盤(pán):通過(guò)5芯電纜與PC微機(jī)主機(jī)連接鍵盤(pán)及LED顯示電路鍵盤(pán)是微機(jī)系統(tǒng)最常使用的輸入設(shè)備簡(jiǎn)易鍵盤(pán)的工作原理+5V+5V+5V最簡(jiǎn)單的線(xiàn)性結(jié)構(gòu)鍵盤(pán)每一個(gè)引腳連接一個(gè)鍵輸入0/1反映鍵是否按下簡(jiǎn)易鍵盤(pán)的工作原理+5V+5V+5V最簡(jiǎn)單的線(xiàn)性結(jié)構(gòu)鍵盤(pán)簡(jiǎn)易鍵盤(pán)的工作原理簡(jiǎn)易鍵盤(pán)的工作原理1. 掃描法先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合(通過(guò)檢查列線(xiàn)電位實(shí)現(xiàn))此后,再將第1行接地,然后檢測(cè)列線(xiàn)是否有變?yōu)榈碗娢坏木€(xiàn)。如此往下一行一行地掃描,直到最后

31、一行在掃描過(guò)程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),便在掃描中途退出通過(guò)組合行線(xiàn)和列線(xiàn)可識(shí)別此刻按下的是哪一鍵1. 掃描法先使第0行接低電平,其余行為高電平,然后看第0KEYMOVDX,pt;pt為8255的控制寄存器地址:MOVAL,82H;方式選擇控制字OUTDX,ALWAITMOVAL,00H:MOVDX,PTA;所有行線(xiàn)輸出低電平,OUTDX,ALMOVDX,,PTB;PTB為列線(xiàn)所連接的端口BINAL,DX;讀取列值A(chǔ)NDAL,0FFHCMPAL,0FFH;看是否有列線(xiàn)處于低電平JEWAIT;否,則沒(méi)有鍵閉合,循環(huán)等待CALLDELAY;是,則延遲20ms去抖動(dòng)KEYMOVDX,pt;pt為8

32、255的控制寄存器地址:MOSCAN:MOVBL,0;鍵號(hào)基值為0MOVDL,0FEH;送掃描初值,只有最低位為“0”MOVCL,8;行數(shù)計(jì)數(shù)值ROW:MOVAL,DLOUTPTA,AL;掃描一行ROLDL,1;修改掃描值,使之下一行為“0”INAL,PTB;讀進(jìn)列值CMPAL,0FFHJNEKEYC;有列線(xiàn)為“0”,則進(jìn)一步取列位置ADDBL,8;沒(méi)有列線(xiàn)接地,則使鍵基值=鍵基值+列數(shù)DECCL;是否各行都掃完JNEROW;未掃完,則掃下一行JMPWAIT;已經(jīng)掃完,沒(méi)有按鍵按下,轉(zhuǎn)WAIT等待SCAN:MOVBL,0;鍵號(hào)基值為0MOVDL,0FEH;KEYC:RCRAL,1JNCPROC

33、E;若此列接地,則轉(zhuǎn)至PROCEINCBL;鍵號(hào)=鍵基值+列號(hào)JMPKEYC;若未找到接地的列線(xiàn),則轉(zhuǎn)KEYCODE繼續(xù)PROCE;鍵命令處理,鍵值在BL寄存器中:;后續(xù)處理程序KEYC:RCRAL,1JNCPROCE;若此列接地,則轉(zhuǎn)至2. 反轉(zhuǎn)法首先,將行線(xiàn)作為控制線(xiàn)接一個(gè)輸出端口,將列線(xiàn)作為檢測(cè)線(xiàn)接一個(gè)輸入端口CPU通過(guò)輸出端口將行線(xiàn)(控制線(xiàn))全部設(shè)置為低電平,然后從輸入端口讀取列線(xiàn)(檢測(cè)線(xiàn))然后,將行線(xiàn)和列線(xiàn)的作用互換,即將列線(xiàn)作為控制線(xiàn)接輸出端口,行線(xiàn)作為檢測(cè)線(xiàn)接輸入端口將剛才讀得的列值從列線(xiàn)所接端口輸出,再讀取行線(xiàn)的輸入值這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀得一對(duì)唯一的行值和列值2.

34、 反轉(zhuǎn)法首先,將行線(xiàn)作為控制線(xiàn)接一個(gè)輸出端口,將列線(xiàn)作;設(shè)置行線(xiàn)接輸出端口,列線(xiàn)接輸入端口KEY2:MOV AL,00MOV DX,ROWPORTOUT DX,AL;設(shè)置行線(xiàn)全為低MOV DX,COLPORTIN AL,DX;讀取列值CMP AL,0FFHJZ KEY2;無(wú)閉合鍵,循環(huán)等待PUSH AX;有閉合鍵,保存列值 PUSH AX;設(shè)置行線(xiàn)接輸入端口,列線(xiàn)接輸出端MOV DX,COLPORTPOP AXOUT DX,AL;輸出列值MOV DX,ROWPORTIN AL,DX;讀取行值POP BX;組合行列值MOV AH,BL;此時(shí),AL行值,AH列值鍵盤(pán)掃描程序鍵盤(pán)掃描程序MOV SI

35、,OFFSET TABLEMOV DI,OFFSET CHARMOV CX,64;CX鍵的個(gè)數(shù)KEY3:CMP AX,SI ;與鍵值比較 JZ KEY4;相同,說(shuō)明查到INC SI;不相同,繼續(xù)比較INC SIINC DILOOP KEY3JMP KEY1;全部比較完,仍無(wú)相同,說(shuō)明是重鍵MOV SI,OFFSET TABLEKEY4:MOV AL,DI;獲取鍵代碼送AL;判斷按鍵是否釋放,沒(méi)有則等待CALL DELAY;按鍵釋放,延時(shí)消除抖動(dòng);后續(xù)處理KEY4:MOV AL,DI;獲取鍵代碼送AL;鍵盤(pán)的行列值表TABLEDW 0FEFEH;鍵0的行列值(鍵值)DW 0FDFEH;鍵1的行列

36、值DW 0FBFEH;鍵2的行列值;其他鍵的行列值;鍵盤(pán)的鍵代碼表CHARDB ;鍵0的代碼值DB ;鍵1的代碼值;其他鍵的代碼值;鍵盤(pán)的行列值表LED數(shù)碼管及其接口發(fā)光二極管LED是最簡(jiǎn)單的顯示設(shè)備由7段LED就可以組成的LED數(shù)碼管LED數(shù)碼管廣泛用于單板微型機(jī)、微型機(jī)控制系統(tǒng)及數(shù)字化儀器中LED數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等LED數(shù)碼管及其接口發(fā)光二極管LED是最簡(jiǎn)單的顯示設(shè)備1. LED數(shù)碼管的工作原理主要部分是7段發(fā)光管順時(shí)針?lè)謩e稱(chēng)為a、b、c、d、e、f、g有的產(chǎn)品還附帶有一個(gè)小數(shù)點(diǎn)h通過(guò)7個(gè)發(fā)光段的不同組合主要顯示0-9也可顯示A-F(16進(jìn)制數(shù))還可顯示個(gè)別特殊字符:、P hg

37、fedcba1. LED數(shù)碼管的工作原理主要部分是7段發(fā)光管hgfedLED數(shù)碼管的結(jié)構(gòu)共陽(yáng)極陽(yáng)極+5Vabcdefgh陰極abcdefgh共陰極LED數(shù)碼管的結(jié)構(gòu)共陽(yáng)極陽(yáng)極+5Va陰極a共陰極2. 單個(gè)LED數(shù)碼管的顯示8255PA0PA1PA2PA3PA4PA5PA6PA7驅(qū)動(dòng)電路abcdefghhgfedcba2. 單個(gè)LED數(shù)碼管的顯示8255PA0ahgfedcbLEDTBDB 3FH,06H,5BH,;顯示代碼表MOV AL,1;AL要顯示的數(shù)字MOV BX,OFFSET LEDTBXLAT ;換碼:ALDS:BXALMOV DX,PORTOUT DX,AL;輸出顯示LEDTBDB 3FH,06H,5BH,;顯示代碼3. 多個(gè)LED數(shù)碼管的顯示8個(gè)數(shù)碼管:用2個(gè)8位輸出端口控制硬件上用公用的驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)各數(shù)碼管軟件上用掃描方法實(shí)現(xiàn)數(shù)碼顯示3. 多個(gè)LED數(shù)碼管的顯示8個(gè)數(shù)碼管:用2個(gè)8位輸出端口動(dòng)態(tài)LED顯示器原理Com8255PA7hgfedcbaPA0PB0PB5ComComComComComhgfedcbahgfedcbahgfedcbahgfedcbahgfedcba動(dòng)態(tài)LED顯示器原理Com8255PA7hgfedcbaPA例:設(shè)計(jì)兩個(gè)8255,要求:8255(1)地址為80

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論