清華大學(xué)馮博琴微機(jī)原理并行接口8255Final_第1頁(yè)
清華大學(xué)馮博琴微機(jī)原理并行接口8255Final_第2頁(yè)
清華大學(xué)馮博琴微機(jī)原理并行接口8255Final_第3頁(yè)
清華大學(xué)馮博琴微機(jī)原理并行接口8255Final_第4頁(yè)
清華大學(xué)馮博琴微機(jī)原理并行接口8255Final_第5頁(yè)
已閱讀5頁(yè),還剩79頁(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)介

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

2、以用來(lái)設(shè)置其工作方式,不需要再附加外部電路。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final數(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的輸入輸出控制線和狀態(tài)信號(hào)線,與端口A、端口B配合使用。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final2. A組控制和B組控制接受CPU對(duì)控制端口的命令(控制字),可以獨(dú)立地設(shè)置8255中3個(gè)

3、端口的工作方式3. 數(shù)據(jù)總線緩沖器雙向三態(tài)8bit數(shù)據(jù)緩沖器,與CPU的數(shù)據(jù)總線相連,同時(shí)與8255的內(nèi)部數(shù)據(jù)總線相連,接受從CPU發(fā)出的控制字, 輸入輸出數(shù)據(jù), 同時(shí)也向CPU傳輸8255的狀態(tài)字4. 讀寫控制邏輯電路接受CPU發(fā)送的讀寫信號(hào),其中A0 , A1尋址8255內(nèi)部寄存器,共有3個(gè)數(shù)據(jù)端口,1個(gè)控制端口。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final2. 8255的引腳信號(hào)PA7PA0, PB7PB0, PC7PC0與外設(shè)相連的獨(dú)立地址的并行擴(kuò)展口。D7D0:與CPU的數(shù)據(jù)總線相連,傳輸8255的命令字或I/O數(shù)據(jù)。RESET:高有效, 8255內(nèi)部寄存器清零, 3個(gè)端口均為輸

4、入。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final:片選信號(hào),為低8255開(kāi)始工作:為低,讀有效,CPU可以從3個(gè)端口讀入數(shù)據(jù)。:為低,寫有效,CPU可以向3個(gè)端口輸出數(shù)據(jù),同時(shí)利用寫信號(hào)可以向8255的控制口寫控制命令,設(shè)置8255的工作方式。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final3. 8255的控制字控制字分兩類,一類是控制并行口的工作方式的命令,一類是專門對(duì)C口各位的設(shè)置。這兩類控制字占用一個(gè)地址,用命令的最高位D7位進(jìn)行區(qū)分, 所以控制字的最高位D7稱為控制字標(biāo)志位。為1為方式選擇字,為0為端口C設(shè)置字。D7D6D5D4D3D2D1D0格式字A組工作方式A口I/OC口高半字

5、節(jié)I/OB組工作方式B口I/OC口低半字節(jié)I/O100 方式001 方式110 方式21輸入0輸出1 輸入0 輸出0 方式01 方式11 輸入0 輸出1 輸入0 輸出 A 方式選擇控制字清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalA1 , A0:8255內(nèi)部寄存器地址尋址信號(hào),8255內(nèi)部有4個(gè)端口,A,B,C與控制口。A1 A0 端口00A口01B口10C口11控制口清華大學(xué)馮博琴微機(jī)原理并行接口8255Final說(shuō)明:1) A口有3種工作方式方式0:基本I/O方式;方式1:?jiǎn)蜗蜻x通I/O方式,輸入或輸出只能選一種;方式2:雙向選通I/O方式,一次設(shè)置后通道既可以做輸入又可以做輸出。2)

6、 端口B有兩種工作方式 即方式0與方式13) A口和B口工作在方式0時(shí),C口也可同時(shí)工作在方式0,且C口高半字節(jié)和低半字節(jié)可以分別獨(dú)立工作。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final4) A口工作在方式1時(shí),C口的部分位成為A口的信號(hào)聯(lián)絡(luò)線,但B口仍可以獨(dú)立工作。不要求A,B同為輸入或輸出。B口工作于方式1也是一樣。5) A口工作于方式2,C口的大部分位線用于A口的信號(hào)聯(lián)絡(luò)線,B口仍可以獨(dú)立工作于方式0或方式1。清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalD7D6D5D4D3D2D1D0格式字A組工作方式A口I/OC口高半字節(jié)I/OB組工作方式B口I/OC口低半字節(jié)I/O100 方式

7、001 方式110 方式21輸入0輸出1 輸入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 89H88H89HD7D6D5D4D3D2D1D01001010094H清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalJ1:A口,方式0,輸出 B口,方式0,輸入 C口高,輸出; C 口低,輸入 J2:A口,方式0,輸入 B口,方式1,輸出 C口高,輸出 J1,J

8、2地址A7A6A5A4A3A2A1A0J1J210010088H8EH10000080H86H00清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalD7D6D5D4D3D2D1D0格式字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控制字:D7D6D5D4D3D2D1D01000001183H清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalD

9、7D6D5D4D3D2D1D0格式字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控制字:D7D6D5D4D3D2D1D0100101094H清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalJ1: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控制口清華大學(xué)馮博琴微機(jī)原理并行接口8255Final B 端口C口各位設(shè)置字D7D6D5D4D3D2D1D0格式字位選擇數(shù)值0000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC71/0例:07H 00000111,即將 PC3置1。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final說(shuō)明:1) 端口C置0/置1控制字盡管是對(duì)端口C進(jìn)行操作,但此控制字必須寫入控制口,而不是寫入端口C。2) 一個(gè)

11、控制字只能對(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 清華大學(xué)馮博琴微機(jī)原理并行接口8255Final第二節(jié) 8255的工作方式清華大學(xué)馮博琴微機(jī)原理并行接口8255Final一、方式0 基本輸入輸出方式實(shí)際上是4個(gè)端口,A、B、C高、C低,可以獨(dú)立地任意組合,一共可有16種組合方式。輸入時(shí)序清華大學(xué)馮博琴微機(jī)原理并行接口8255Final1

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

13、0中,可利用C口的各位信號(hào)線做應(yīng)答信號(hào),配合A, B口的輸入輸出操作。圖中, 8255地址為02A0H02A6H根據(jù)開(kāi)關(guān)情況來(lái)控制LED。(開(kāi)關(guān)閉合燈亮),寫出控制程序。分析: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 清華大學(xué)馮博琴微機(jī)原理并行接口8255Final打印機(jī)工作順序(過(guò)程)1) 數(shù)據(jù)與STB信號(hào)一起送入打印機(jī),STB相當(dāng)于啟動(dòng)信號(hào),啟動(dòng)打印機(jī)接受數(shù)據(jù);2) 打印機(jī)處理數(shù)據(jù),這時(shí)BUSY為高,表示

14、“忙”;3) 處理完數(shù)據(jù),BUSY為0,且ACK為低,應(yīng)答主機(jī)。清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalCPU經(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。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final8255地址80H83H,控制字81HMOV AL, 81H OUT 83H, ALMOV AL, 0FHOUT 83H, ALLEA SI, BUFMOV CX, 100 ; 設(shè)置PC7為1,

15、不啟動(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è)字符; 忙, 等待清華大學(xué)馮博琴微機(jī)原理并行接口8255Final二、方式1 選通輸入輸出方式(應(yīng)答方式)1. 特點(diǎn)1) A口或B口工作在方式1時(shí),C口各位做聯(lián)絡(luò)應(yīng)答信號(hào)線,其各位的含義是固定的,不可用軟件改變;2) 各位聯(lián)絡(luò)信號(hào)都有固定的時(shí)序(自動(dòng)進(jìn)行)3) 在輸

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

17、清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalINTRA: 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ù)。&清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalINTEA: Interrupt Enable,中斷允許信號(hào),設(shè)置中斷允許或屏蔽中斷的信號(hào)。INTE沒(méi)有外部引出端,由軟件對(duì)C口某位進(jìn)行置0或置1的操作實(shí)現(xiàn)。對(duì)A口,中斷允許端是PC4,對(duì)B口,是PC2。置1允許

18、中斷,置0屏蔽中斷。&清華大學(xué)馮博琴微機(jī)原理并行接口8255Final端口B在方式1輸入下各個(gè)聯(lián)絡(luò)線的定義與端口A完全一樣,只是占用C口的聯(lián)絡(luò)線與端口A不同。其中,其中斷屏蔽允許位是PC2。&清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalPC02屬于B口聯(lián)絡(luò)線,PC35屬于A口聯(lián)絡(luò)線,PC6,PC7沒(méi)有被重新定義,仍可作為基本I/O口使用,屬于C口的高半部分,在控制字中定義其輸入輸出特性。&清華大學(xué)馮博琴微機(jī)原理并行接口8255Final工作時(shí)序清華大學(xué)馮博琴微機(jī)原理并行接口8255Final1) 數(shù)據(jù)與STB由外設(shè)進(jìn)入8255,STB為低,通知8255接受數(shù)據(jù)。2) 8255收到STB信號(hào)

19、,將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ù)。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final(4) RD外設(shè)8255CPU(1) STB(2) IBF(3) INTR清華大學(xué)馮博琴微機(jī)原理并行接口8255Final3. 方式1下輸出操作的聯(lián)絡(luò)信號(hào)線

20、定義及時(shí)序指定了端口C的3根線做其聯(lián)絡(luò)信號(hào)線。: Output Buffer Full,輸出緩沖器滿,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ù)。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final: 外設(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已寫完一個(gè)數(shù)據(jù);OBF為高:輸出緩沖器已空;ACK為高:外設(shè)應(yīng)答信號(hào)結(jié)束。表

21、明外設(shè)收到數(shù)據(jù);INTE為高:8255允許中斷。清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalINTEA: 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屏蔽中斷。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final端口B在方式1輸出下各個(gè)聯(lián)絡(luò)線的定義與端口A完全一樣,只是占用C口的聯(lián)絡(luò)線與端口A不同。其中,其中斷屏蔽允許位是PC2。其占用的聯(lián)絡(luò)線與輸入時(shí)一樣,但聯(lián)絡(luò)線的定義不同。清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalPC02

22、屬于B口聯(lián)絡(luò)線,PC3,PC6,PC7屬于A口聯(lián)絡(luò)線,PC4,PC5沒(méi)有被重新定義,仍可作為基本I/O口使用,屬于C口的高半部分,在控制字中定義其輸入輸出特性。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final輸出時(shí)序:清華大學(xué)馮博琴微機(jī)原理并行接口8255Final1) CPU在INTR為高的情況下WR信號(hào)有效,通過(guò)DB向8255寫入數(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)的端口上;4) 外設(shè)取走數(shù)據(jù),向8255發(fā)送應(yīng)答信號(hào),5) 其下降沿復(fù)位

23、OBF,6) 其上升沿復(fù)位INTR,使中斷申請(qǐng)信號(hào)有效,8255得以繼續(xù)向CPU申請(qǐng)中斷,輸出下一個(gè)數(shù)據(jù)。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final外設(shè)8255CPU(1)WR(2) OBF(3) ACK(4) INTR清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalD7D6D5D4D3D2D1D0A組B組輸入:D7D6D5D4D3I/OI/OIBFAINTEAINTRA輸出:D7D6D5D4D3OBFAINTEAI/OI/OINTRAD2D1D0INTEBIBFBINTRBD2D1D0INTEBOBFBINTRB狀態(tài)字中CPU可以查詢的狀態(tài)輸入是IBF和INTR,輸出是OBF和INTR

24、,但一般INTR更可靠。如果中斷允許INTE為0(禁止中斷),則INTR無(wú)效。但如果CPU禁止8255中斷,一般在硬件上不接INTR管腳,而INTE依然置1,供CPU查詢INTR。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final4. 方式1的狀態(tài)字在方式1下8255有固定的狀態(tài)字,反應(yīng)了當(dāng)前8255正在工作的各種狀態(tài),即其內(nèi)部各寄存器的狀態(tài),供CPU查詢,CPU通過(guò)讀寫8255的端口C可以獲取狀態(tài)字。狀態(tài)字是8255在輸入輸出過(guò)程中由內(nèi)部自動(dòng)產(chǎn)生的,由C口讀取,與端口C在芯片外部的引腳無(wú)關(guān)。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final8255工作在方式1控制微型打印機(jī)應(yīng)用實(shí)例分析:PA端口

25、與打印機(jī)的數(shù)據(jù)線相連;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í),需查詢BUSY為低才可以完成一次數(shù)據(jù)傳輸。所以用PC4接BUSY,設(shè)置為輸入。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final8255地址:200H206H控制字:1010 1 A8HLEA SI, BUFMOV CX, 100MOV DX, 206HMOV AL, 0A8HOUT DX, ALL1: MOV AL, SI MOV DX, 200H

26、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;寫控制字;A口輸出數(shù)據(jù);讀狀態(tài)字;查看OBF是否為高;讀C口;查看PC4清華大學(xué)馮博琴微機(jī)原理并行接口8255Final利用中斷申請(qǐng)INTR查詢地址:80H83H, 控制字A8H允許中斷,設(shè)置PC6為1控制字:0110 1 0DHLEA SI, BUFMOV CX, 100MOV AL, 0A8HOUT 83H, ALMOV AL, 0DHOUT 83H, ALL1: M

27、OV 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清華大學(xué)馮博琴微機(jī)原理并行接口8255Final三、方式2 雙向應(yīng)答式輸入輸出方式該方式只能用于端口A,指定A口既作入口又作輸出口,可采用中斷或查詢方式與CPU交換數(shù)據(jù),C口用5個(gè)高位數(shù)位為A口提供應(yīng)答信號(hào)。這時(shí),端口B仍可以方式0或方式1工作。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final輸出輸入方式2的信

28、號(hào)聯(lián)絡(luò)線實(shí)際上是方式1輸入輸出的組合。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final同樣,方式2的時(shí)序?qū)嶋H上也是方式1的輸入與輸出的時(shí)序的組合。當(dāng)一個(gè)外設(shè)既可以用作輸入也可以用作輸出時(shí),將其接口初始化為方式2,這樣輸入輸出就不用再重新初始化了,具體某個(gè)時(shí)刻是輸出操作還是輸入操作由程序來(lái)控制,CPU可以通過(guò)中斷或查詢狀態(tài)字來(lái)控制程序進(jìn)程。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final方式2的輸入與輸出是一個(gè)中斷源,因此,在中斷處理程序中還應(yīng)該查詢8255的狀態(tài)字,進(jìn)一步識(shí)別是輸入申請(qǐng)中斷還是輸出申請(qǐng)中斷,來(lái)啟動(dòng)不同的處理程序。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final方式2的狀態(tài)字D7

29、D6D5D4D3OBFAINTE1IBFAINTE2INTRA輸入:INTRAINTEAIBFAI/OI/OD3D4D5D6D7輸出:INTRAI/OI/OINTEAOBFAD3D4D5D6D7方式1輸出輸入兩個(gè)中斷允許位INTE1和INTE2要分別設(shè)置。在中服中要查詢OBF和IBF兩位,看是哪個(gè)操作在申請(qǐng)中斷。清華大學(xué)馮博琴微機(jī)原理并行接口8255Final第三節(jié) 鍵盤及LED顯示清華大學(xué)馮博琴微機(jī)原理并行接口8255Final鍵盤及LED顯示電路鍵盤是微機(jī)系統(tǒng)最常使用的輸入設(shè)備小鍵盤:適用于單板機(jī)或以微處理器為基礎(chǔ)的儀器,實(shí)現(xiàn)數(shù)據(jù)、地址、命令及指令等的輸入獨(dú)立鍵盤:通過(guò)5芯電纜與PC微機(jī)主

30、機(jī)連接清華大學(xué)馮博琴微機(jī)原理并行接口8255Final簡(jiǎn)易鍵盤的工作原理+5V+5V+5V最簡(jiǎn)單的線性結(jié)構(gòu)鍵盤每一個(gè)引腳連接一個(gè)鍵輸入0/1反映鍵是否按下清華大學(xué)馮博琴微機(jī)原理并行接口8255Final簡(jiǎn)易鍵盤的工作原理清華大學(xué)馮博琴微機(jī)原理并行接口8255Final1. 掃描法先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合(通過(guò)檢查列線電位實(shí)現(xiàn))此后,再將第1行接地,然后檢測(cè)列線是否有變?yōu)榈碗娢坏木€。如此往下一行一行地掃描,直到最后一行在掃描過(guò)程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),便在掃描中途退出通過(guò)組合行線和列線可識(shí)別此刻按下的是哪一鍵清華大學(xué)馮博琴微機(jī)原理并行接口8255Final

31、KEYMOVDX,pt;pt為8255的控制寄存器地址:MOVAL,82H;方式選擇控制字OUTDX,ALWAITMOVAL,00H:MOVDX,PTA;所有行線輸出低電平,OUTDX,ALMOVDX,,PTB;PTB為列線所連接的端口BINAL,DX;讀取列值A(chǔ)NDAL,0FFHCMPAL,0FFH;看是否有列線處于低電平JEWAIT;否,則沒(méi)有鍵閉合,循環(huán)等待CALLDELAY;是,則延遲20ms去抖動(dòng)清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalSCAN:MOVBL,0;鍵號(hào)基值為0MOVDL,0FEH;送掃描初值,只有最低位為“0”MOVCL,8;行數(shù)計(jì)數(shù)值ROW:MOVAL,DLO

32、UTPTA,AL;掃描一行ROLDL,1;修改掃描值,使之下一行為“0”INAL,PTB;讀進(jìn)列值CMPAL,0FFHJNEKEYC;有列線為“0”,則進(jìn)一步取列位置ADDBL,8;沒(méi)有列線接地,則使鍵基值=鍵基值+列數(shù)DECCL;是否各行都掃完JNEROW;未掃完,則掃下一行JMPWAIT;已經(jīng)掃完,沒(méi)有按鍵按下,轉(zhuǎn)WAIT等待清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalKEYC:RCRAL,1JNCPROCE;若此列接地,則轉(zhuǎn)至PROCEINCBL;鍵號(hào)=鍵基值+列號(hào)JMPKEYC;若未找到接地的列線,則轉(zhuǎn)KEYCODE繼續(xù)PROCE;鍵命令處理,鍵值在BL寄存器中:;后續(xù)處理程序清華

33、大學(xué)馮博琴微機(jī)原理并行接口8255Final2. 反轉(zhuǎn)法首先,將行線作為控制線接一個(gè)輸出端口,將列線作為檢測(cè)線接一個(gè)輸入端口CPU通過(guò)輸出端口將行線(控制線)全部設(shè)置為低電平,然后從輸入端口讀取列線(檢測(cè)線)然后,將行線和列線的作用互換,即將列線作為控制線接輸出端口,行線作為檢測(cè)線接輸入端口將剛才讀得的列值從列線所接端口輸出,再讀取行線的輸入值這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀得一對(duì)唯一的行值和列值清華大學(xué)馮博琴微機(jī)原理并行接口8255Final;設(shè)置行線接輸出端口,列線接輸入端口KEY2:MOV AL,00MOV DX,ROWPORTOUT DX,AL;設(shè)置行線全為低MOV DX,COLPO

34、RTIN AL,DX;讀取列值CMP AL,0FFHJZ KEY2;無(wú)閉合鍵,循環(huán)等待PUSH AX;有閉合鍵,保存列值 PUSH AX清華大學(xué)馮博琴微機(jī)原理并行接口8255Final;設(shè)置行線接輸入端口,列線接輸出端MOV DX,COLPORTPOP AXOUT DX,AL;輸出列值MOV DX,ROWPORTIN AL,DX;讀取行值POP BX;組合行列值MOV AH,BL;此時(shí),AL行值,AH列值鍵盤掃描程序清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalMOV SI,OFFSET TABLEMOV DI,OFFSET CHARMOV CX,64;CX鍵的個(gè)數(shù)KEY3:CMP AX,S

35、I ;與鍵值比較 JZ KEY4;相同,說(shuō)明查到INC SI;不相同,繼續(xù)比較INC SIINC DILOOP KEY3JMP KEY1;全部比較完,仍無(wú)相同,說(shuō)明是重鍵清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalKEY4:MOV AL,DI;獲取鍵代碼送AL;判斷按鍵是否釋放,沒(méi)有則等待CALL DELAY;按鍵釋放,延時(shí)消除抖動(dòng);后續(xù)處理清華大學(xué)馮博琴微機(jī)原理并行接口8255Final;鍵盤的行列值表TABLEDW 0FEFEH;鍵0的行列值(鍵值)DW 0FDFEH;鍵1的行列值DW 0FBFEH;鍵2的行列值;其他鍵的行列值;鍵盤的鍵代碼表CHARDB ;鍵0的代碼值DB ;鍵1的

36、代碼值;其他鍵的代碼值清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalLED數(shù)碼管及其接口發(fā)光二極管LED是最簡(jiǎn)單的顯示設(shè)備由7段LED就可以組成的LED數(shù)碼管LED數(shù)碼管廣泛用于單板微型機(jī)、微型機(jī)控制系統(tǒng)及數(shù)字化儀器中LED數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等清華大學(xué)馮博琴微機(jī)原理并行接口8255Final1. LED數(shù)碼管的工作原理主要部分是7段發(fā)光管順時(shí)針?lè)謩e稱為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 hgfedcba清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalLED數(shù)碼管的結(jié)構(gòu)共陽(yáng)

37、極陽(yáng)極+5Vabcdefgh陰極abcdefgh共陰極清華大學(xué)馮博琴微機(jī)原理并行接口8255Final2. 單個(gè)LED數(shù)碼管的顯示8255PA0PA1PA2PA3PA4PA5PA6PA7驅(qū)動(dòng)電路abcdefghhgfedcba清華大學(xué)馮博琴微機(jī)原理并行接口8255FinalLEDTBDB 3FH,06H,5BH,;顯示代碼表MOV AL,1;AL要顯示的數(shù)字MOV BX,OFFSET LEDTBXLAT ;換碼:ALDS:BXALMOV DX,PORTOUT DX,AL;輸出顯示清華大學(xué)馮博琴微機(jī)原理并行接口8255Final3. 多個(gè)LED數(shù)碼管的顯示8個(gè)數(shù)碼管:用2個(gè)8位輸出端口控制硬件上用公用的驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)各數(shù)碼管軟件上用掃描方法實(shí)現(xiàn)數(shù)碼顯示清華大學(xué)馮博琴微機(jī)原理并行接口8255Final動(dòng)態(tài)LED顯示器原理Com8255PA7hgfedcbaPA0PB0PB5ComComComComComhgfedcbahgfedcbahgfedcbahgfedcbahgfedcba清華大學(xué)馮博琴微機(jī)原理并行接口8255Final例:設(shè)計(jì)兩個(gè)8255,要求:8255(1)地址為80H-83H, A方式0、輸入、B方式1,輸出,C7-4輸出, C3-0輸入8255(2)地

溫馨提示

  • 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)論