第6章YA及專題微機(jī)系統(tǒng)的并行IO接口_第1頁
第6章YA及專題微機(jī)系統(tǒng)的并行IO接口_第2頁
第6章YA及專題微機(jī)系統(tǒng)的并行IO接口_第3頁
第6章YA及專題微機(jī)系統(tǒng)的并行IO接口_第4頁
第6章YA及專題微機(jī)系統(tǒng)的并行IO接口_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第8 8章章微機(jī)系統(tǒng)的并行微機(jī)系統(tǒng)的并行I/OI/O接口技術(shù)接口技術(shù)本章要點(diǎn)本章要點(diǎn)8255A內(nèi)部結(jié)構(gòu)及外部引腳 8255A和CPU及外設(shè)的信號連接8255A三種工作方式和設(shè)置方法82558255A A控制字與應(yīng)用控制字與應(yīng)用8.1 并行并行I/OI/O接口概述接口概述分類:(1)按數(shù)據(jù)傳送方向分為:輸入接口、輸出接口;并行接口就是在通信過程中能夠同時傳送數(shù)據(jù)所有位的接口芯片。并行接口通常以字節(jié)或字為單位傳送,速度快,效率高;適合近距離傳送。(2)按傳輸數(shù)據(jù)形式分為:單向傳送接口、雙向傳送接口;(3)按接口電路結(jié)構(gòu)分為:簡單接口、可編程接口;(4)按傳送信息類型分為:數(shù)字接口和模擬接口。 8

2、.2 并行并行I/OI/O接口芯片接口芯片8255A Intel 8255A是通用可編程并行I/O接口電路芯片,可為多種并行I/O設(shè)備提供接口; 是Intel公司為8085、80X86系列微處理器配套的接口芯片,也可以和其他微處理器系統(tǒng)相配; 一片8255A有3個獨(dú)立輸入輸出端口(A口、B口、C口)及一個控制寄存器; 既可作輸入接口,也可作為輸出接口; 80X86系統(tǒng)中常采用8255A作為鍵盤、揚(yáng)聲器、打印機(jī)等外設(shè)接口電路芯片。 內(nèi)內(nèi)部部數(shù)數(shù)據(jù)據(jù)總總線線 PB7PB0 B 組組 B 口口 (8 位位 ) PC3PC0 B 組組 C 口口 (4 位位 ) PC7PC4 PA7PA0 A 組組 A

3、 口口 (8 位位 ) A 組組 C 口口 (4 位位 ) A 組組控控 制制 B 組組控控 制制 D7D0 數(shù)數(shù) 據(jù)據(jù) 總總 線線 緩緩 沖沖 器器 讀讀 /寫寫控控 制制邏邏 輯輯 RD W R A1 A0 RESET CS 一、一、8255A內(nèi)部內(nèi)部結(jié)構(gòu)及外部引腳結(jié)構(gòu)及外部引腳8.2 并行并行I/OI/O接口芯片接口芯片8255A 40根引腳,雙列直插式芯片。這些引腳可分成:(1)與CPU系統(tǒng)連接引腳;(2)與外設(shè)連接引腳。8255A內(nèi)部結(jié)構(gòu)框圖一、一、8255A內(nèi)部結(jié)構(gòu)及外部引腳內(nèi)部結(jié)構(gòu)及外部引腳8.2 并行并行I/OI/O接口芯片接口芯片8255A 從功能上來分,從功能上來分,825

4、5A由以下幾部由以下幾部分組成:分組成: 數(shù)據(jù)端口數(shù)據(jù)端口A、B、C 都是都是8位并行數(shù)據(jù)口,可作為輸入或位并行數(shù)據(jù)口,可作為輸入或輸出。輸出。v 端口端口A(PA0PA7 ):):數(shù)據(jù)端口;輸數(shù)據(jù)端口;輸入入/輸出線;輸出鎖存器輸出線;輸出鎖存器/緩沖器,輸緩沖器,輸入鎖存器;入鎖存器;v端口端口B(PB0PB7 ):):數(shù)據(jù)端口;數(shù)據(jù)端口;輸入輸入/輸出線;輸出鎖存器輸出線;輸出鎖存器/緩沖器,緩沖器,輸入緩沖器;輸入緩沖器;v端口端口C(PC0PC7) :數(shù)據(jù)端口或控制端口;分成:數(shù)據(jù)端口或控制端口;分成4位的兩組,與位的兩組,與A口和口和B口組合,以輸出控制信號口組合,以輸出控制信號/

5、輸入狀態(tài)信號。輸入狀態(tài)信號。一、8255A內(nèi)部結(jié)構(gòu)及外部引腳8.2 并行并行I/OI/O接口芯片接口芯片8255A A組組端口端口A端口端口C的高的高4位位端口端口B端口端口C的低的低4位位B組組 A組和B組控制v分別控制端口分別控制端口A和端口和端口C高高4位;端口位;端口B和端口和端口C低低4位;位;v接受讀接受讀/寫控制邏輯來的命令;寫控制邏輯來的命令;v接受接受CPU輸出命令字,決定工作方式;輸出命令字,決定工作方式;v對端口對端口C某一位實(shí)現(xiàn)按位復(fù)位或置位。某一位實(shí)現(xiàn)按位復(fù)位或置位。數(shù)據(jù)總線緩沖器三態(tài)雙向8位緩沖器,作8255A與系統(tǒng)DB的接口。輸出指令輸出指令數(shù)據(jù)總線數(shù)據(jù)總線輸入指

6、令輸入指令數(shù)據(jù)總線數(shù)據(jù)總線v8255AvCPU控制字、數(shù)據(jù)8255A;(CPU寫入)狀態(tài)信息、數(shù)據(jù)CPU;(CPU讀)8.2 并行并行I/OI/O接口芯片接口芯片8255A 讀/寫控制邏輯接受接受CPU來的輸入信號,然后向來的輸入信號,然后向A組和組和B組控制電路發(fā)送組控制電路發(fā)送命令。有:片選信號;讀信號;寫信號命令。有:片選信號;讀信號;寫信號;復(fù)位信號。復(fù)位信號。與CPU(系統(tǒng))連接的引腳vD0D7vCSvRDvWRvA0,A1 vRESET復(fù)位信號,接系統(tǒng)總線的RESET與外設(shè)連接的引腳vPA0PA7vPB0PB7vPC0PC7分別對應(yīng)分別對應(yīng)A、B、C三個三個8位輸入位輸入/輸出端口

7、輸出端口8.2 并行并行I/OI/O接口芯片接口芯片8255A 二、8255A與系統(tǒng)連接示意圖D0D7WRRDA1A0CSDBIOWIORA1A0譯碼器譯碼器8255A口口B口口C口口D0D7外外 設(shè)設(shè)A15A2系系統(tǒng)統(tǒng)總總線線三、8255A控制字與初始化編程8.2 并行并行I/OI/O接口芯片接口芯片8255A 兩個控制字:方式控制字、端口C按位置位/復(fù)位控制字。工作方式控制字 設(shè)定各端口工作方式及數(shù)據(jù)傳送方向;放在程序開始。v有三種工作方式: (1)方式0:基本輸入/輸出方式; (2)方式1:選通輸入/輸出方式; (3)方式2:選通雙向傳送方式。v端口端口A:可工作在方式:可工作在方式0,

8、1,2;v端口端口B:可工作在可工作在方式方式0,1;v端口端口C:可工作在可工作在方式方式0;(獨(dú)立使用);(獨(dú)立使用)v端口端口C分兩部分:高分兩部分:高4位隨位隨A口設(shè)置,低口設(shè)置,低4位隨位隨B口設(shè)置??谠O(shè)置。v CPU用輸出指令寫控制字到用輸出指令寫控制字到8255A控制寄存器來選擇??刂萍拇嫫鱽磉x擇。8.2 并行并行I/O接口芯片接口芯片8255A 8255A工作方式控制字格式工作方式控制字格式1A組控制組控制B組控制組控制18.2 并行并行I/OI/O接口芯片接口芯片8255A 端口C按位置位/復(fù)位控制字 使端口C的一位置位(1)或復(fù)位(0),而輸出一個開關(guān)量去控制外圍設(shè)備;可放

9、在初始化程序后的任何地方。8255A C口按口按位置位位置位/復(fù)位復(fù)位控制字控制字000:PC0 001:PC1010:PC2 011:PC3100:PC4 101:PC5110:PC6 111:PC7v有三種工作方式。 四、8255A三種工作方式8.2 并行并行I/OI/O接口芯片接口芯片8255A (1)方式0:基本輸入/輸出方式 相當(dāng)于三個獨(dú)立的8位簡單接口; 各端口可分別為輸入或輸出; 輸出有鎖存能力,輸入無鎖存能力; 端口C可以分為兩個獨(dú)立的4位端口; 利用端口C的高、低4位可作為A口、B口的控制信息和狀態(tài)信息。8.2 并行并行I/OI/O接口芯片接口芯片8255A 方式方式0的應(yīng)用

10、的應(yīng)用v 無條件輸入輸出方式;無條件輸入輸出方式;操作流程圖開關(guān)、發(fā)光二極管顯示接口顯示、發(fā)聲程序?8.2 并行并行I/OI/O接口芯片接口芯片8255A 查詢式程序?開始讀入C口狀態(tài)數(shù)據(jù)式式輸入輸輸入輸出出A、B口為口為8位數(shù)據(jù)的位數(shù)據(jù)的輸入或輸出口,輸入或輸出口,開始v8255A工作方式1主要是與異步工作或中斷方式的外設(shè)實(shí)現(xiàn)選通輸入輸出。(2)方式方式1 選通輸入輸出選通輸入輸出8.2 并行并行I/OI/O接口芯片接口芯片8255A v在這種方式下,A口和B口作為獨(dú)立數(shù)據(jù)輸入口或輸出口,但數(shù)據(jù)輸入輸出要在選通信號控制下完成。v選通信號用C口的某些位提供。方式1下A口B口均為選通輸入 8.2

11、 并行并行I/OI/O接口芯片接口芯片8255A 8255A方式1選通輸入結(jié)構(gòu)圖PB7PB08.2 8.2 并行并行I/OI/O接口芯片接口芯片8255A8255A(2)8255A輸入數(shù)據(jù)緩沖器滿,使輸入數(shù)據(jù)緩沖器滿,使IBF=1,CPU還沒有還沒有讀走數(shù)據(jù);外設(shè)據(jù)此暫緩送下一個數(shù);讀走數(shù)據(jù);外設(shè)據(jù)此暫緩送下一個數(shù);(3)若)若INTE=1(中斷允許中斷允許),則,則STB的上升沿使的上升沿使INTR=1,向向CPU發(fā)中斷請求;發(fā)中斷請求;(4)CPU響應(yīng)中斷。響應(yīng)中斷。 CPU通過輸入指令讀取數(shù)據(jù);讀通過輸入指令讀取數(shù)據(jù);讀取數(shù)據(jù)后取數(shù)據(jù)后IBF 、INTR變無效;變無效; 輸入過程:(1)

12、外設(shè)發(fā)選通信號)外設(shè)發(fā)選通信號STB,有效期間將數(shù)據(jù)鎖存在,有效期間將數(shù)據(jù)鎖存在8255A數(shù)據(jù)緩沖器;數(shù)據(jù)緩沖器;8.2 并行并行I/OI/O接口芯片接口芯片8255A vA口、B口方式1選通輸入方式控制字:1 0 1 1 1 1 x D7 D6 D5 D4 D3D2 D1 D0PC7,PC6:1:輸入輸入 0:輸出:輸出vC口方式口方式1選通輸入選通輸入狀態(tài)字狀態(tài)字:PC7 PC6 IBFA STBA INTRA STBB IBFB INTRB兩位兩位I/OvSTBA/B:選通輸入,外設(shè)提供,將輸入數(shù)據(jù)送鎖存器;:選通輸入,外設(shè)提供,將輸入數(shù)據(jù)送鎖存器;vIBFA/B:輸入緩沖器滿信號,給外

13、設(shè)的回答信號。:輸入緩沖器滿信號,給外設(shè)的回答信號。IBF=1,輸入鎖存器滿,輸入鎖存器滿,CPU沒讀取,外設(shè)暫停送新數(shù)據(jù);沒讀取,外設(shè)暫停送新數(shù)據(jù);CPU讀讀后后IBF =0;v INTRA/B:中斷請求信號。:中斷請求信號。8255A向向CPU發(fā)出讀數(shù)據(jù)請求;發(fā)出讀數(shù)據(jù)請求;v INTEA/B:中:中斷允許信號,斷允許信號,為為1:中斷允許,:中斷允許,為為0:中斷禁止。:中斷禁止。 方式1下A口B口均為選通輸出 8.2 并行并行I/OI/O接口芯片接口芯片8255A 8255A方式1選通輸出結(jié)構(gòu)圖8.2 并行并行I/OI/O接口芯片接口芯片8255A輸出過程(1)CPU接收中斷請求,輸出

14、指令將輸出數(shù)據(jù)送A(B)口鎖存,并使INTR=0;(2)OBF=0,通知外設(shè)在連接端口上已有有效數(shù)據(jù),外設(shè)可以讀了;(3)外設(shè)讀數(shù)據(jù),發(fā)響應(yīng)信號ACK=0,且使OBF=1;(4)外設(shè)取走數(shù)據(jù)后,ACK=1 ,OBF=1,若INTE=1,則又使INTR=1,通知CPU輸出下一個數(shù)據(jù);vA口、口、B口方式口方式1選通輸出選通輸出方式控制字方式控制字:1 0 1 0 1 0 x D7 D6 D5 D4 D3D2 D1 D0PC5,PC4:1:輸入輸入 0:輸出:輸出vC口方式口方式1選通輸出選通輸出狀態(tài)字狀態(tài)字:OBFA ACKA PC5 PC4 INTRA ACKB OBFB INTRB兩位兩位I

15、/OvINTRA/B:中斷請:中斷請求信號,高電平。外求信號,高電平。外設(shè)向設(shè)向CPU提出中斷請?zhí)岢鲋袛嗾埱螅暂敵鰯?shù)據(jù)。求,以輸出數(shù)據(jù)。8.2 并行并行I/OI/O接口芯片接口芯片8255A(3)方式方式2 選通雙向輸入輸出選通雙向輸入輸出8.2 并行并行I/OI/O接口芯片接口芯片8255A vC口的PC3PC7(5位)作為A口的控制和狀態(tài)線,B口可工作在方式0或方式1;v輸入輸出均鎖存;v用于程序查詢方式或中斷方式。v只有端口A可工作在選通雙向輸入/輸出工作方式下。既能發(fā)送,也能接收;8255A方式方式2結(jié)構(gòu)圖結(jié)構(gòu)圖 8.2 并行并行I/OI/O接口芯片接口芯片8255A方式方式2選通輸

16、入過程選通輸入過程(1)外設(shè)向)外設(shè)向8255A送數(shù)據(jù),同時給送數(shù)據(jù),同時給8255A發(fā)發(fā)STB信號,使數(shù)據(jù)信號,使數(shù)據(jù)鎖存在鎖存在A口,且口,且IBF有效;有效;(2)STB信號結(jié)束,使信號結(jié)束,使INTR有效,向有效,向CPU發(fā)中斷請求;發(fā)中斷請求;(3)CPU響應(yīng)中斷,執(zhí)行輸入指令讀走響應(yīng)中斷,執(zhí)行輸入指令讀走A口數(shù)據(jù);口數(shù)據(jù);(4)IOR信號使信號使INTR、IBF無效,開始下個數(shù)據(jù)讀入過程;無效,開始下個數(shù)據(jù)讀入過程;方式2選通輸出過程(1)CPU執(zhí)行輸出指令向執(zhí)行輸出指令向A口寫數(shù)據(jù);口寫數(shù)據(jù);(2) IOW信號使信號使INTR變低電平,同時變低電平,同時OBF有效;有效;(3)外

17、設(shè)接到)外設(shè)接到OBF信號后發(fā)信號后發(fā)ACK信號,讀走信號,讀走A口數(shù)據(jù);口數(shù)據(jù);(4)ACK信號使信號使OBF無效、無效、INTR變高,發(fā)中斷請求準(zhǔn)備輸變高,發(fā)中斷請求準(zhǔn)備輸出下個數(shù)據(jù)。出下個數(shù)據(jù)。D2 D1 D0 OBFa INTE1 IBFa INTE2 INTRa INTEb INTEb I/O OBFb IBFb I/O INTRb INTRb I/O D7 D6 D5 D4 D3 D2 D1 D0 A 組 B 組 A口方式口方式2雙向雙向方式控制字方式控制字:1 1 x x x I/O I/O I/O D7 D6 D5 D4 D3 D2D1D0B口口方式方式B口口輸入輸出輸入輸出P

18、C2PC0輸入輸出輸入輸出A口雙向口雙向A口方式口方式2下下C口口狀態(tài)字狀態(tài)字:PC2PC0PC1PC3PC4PC5PC6PC78.2 并行并行I/OI/O接口芯片接口芯片8255AB口方式口方式1輸出輸出B口方式口方式1輸入輸入B口方式口方式0v8255A工作于方式0時,端口C可用于數(shù)據(jù)傳送;8.2 并行并行I/OI/O接口芯片接口芯片8255Av當(dāng)8255A工作于方式1或方式2時,端口C的部分引腳或全部引腳便用做應(yīng)答聯(lián)絡(luò)線使用,這時端口C的內(nèi)容是反映端口A或B及相應(yīng)外部設(shè)備的狀態(tài),稱為方式1或方式2的狀態(tài)字;vCPU如需了解各端口工作狀態(tài),可通過讀C口內(nèi)容。讀出的狀態(tài)字與設(shè)置的控制字信號線

19、相對應(yīng)。讀出的狀態(tài)字與設(shè)置的控制字信號線相對應(yīng)。 小結(jié)8.2 并行并行I/OI/O接口芯片接口芯片8255A方式方式2應(yīng)用接口電路應(yīng)用接口電路 示意圖示意圖系統(tǒng)總線 IRQ0 IRQ1 IRQ2 IRQ7 主機(jī) INTR 8259A INT 主機(jī)8255 PC3(INTR) 方式方式2的的應(yīng)用應(yīng)用主程序: 中斷服務(wù)程序: 否 是 是 是輸入中斷? 禁止輸入/輸出中斷 關(guān)系統(tǒng)中斷 斷 讀入8255A狀態(tài)字 斷 是輸出中斷? 從A 口輸出一個數(shù)據(jù) 否 允許輸入/輸出中斷 開系統(tǒng)中斷 發(fā)EOI 命令 中斷返回 讀入數(shù)據(jù)送接收數(shù)據(jù)緩沖器 8.3 Intel 8255A應(yīng)用舉例應(yīng)用舉例(1)確定工作過程

20、;(2)選擇各接口芯片工作方式、確定方式控制字;(3)編寫相應(yīng)控制程序。 主程序: 中斷服務(wù)程序: 發(fā)送數(shù)據(jù)初始化 發(fā)送字節(jié)首址 SI 接收數(shù)據(jù)初始化 接收緩沖器首址DI 開中斷 8255A初始化 8259A初始化 開始 等待接收中斷 8255A編程編程例8.1 用8255A并行接口芯片實(shí)現(xiàn)鍵盤接口,其電路原理如圖所示。圖中按鍵排列成4行4列,8255A的C口設(shè)置為方式0,并將PC7PC4與各行線相連,PC3PC0與各列線相連。 8.3 Intel 8255A應(yīng)用舉例應(yīng)用舉例8255A應(yīng)用舉例矩陣鍵盤接口反轉(zhuǎn)法按鍵識別過程: 8.3 Intel 8255A應(yīng)用舉例(1)將PC7PC4設(shè)定為輸出

21、,PC3PC0設(shè)定為輸入。從行線輸出全0,即PC7PC4輸出全0,然后從PC3PC0讀入列線內(nèi)容,若讀入數(shù)據(jù)中有一位為0,則表明與該位對應(yīng)的列線上有一個鍵按下,存儲此內(nèi)容作為“列值列值”,轉(zhuǎn)第(2)步,否則循環(huán)執(zhí)行本步驟;(2)將PC7PC4設(shè)定為輸入,PC3PC0設(shè)定為輸出。把第(1)步讀入內(nèi)容輸出到列線上,即從PC3PC0輸出,從PC7PC4讀入行線內(nèi)容,若有鍵按下,其中必有一位為0,為0位所對應(yīng)行線就是被按下鍵所在行,存儲此內(nèi)容作為“行值行值”。將行值和列值組合在一起,用查表方法即可得到按鍵的鍵號。例如,若第0行第2列鍵被按下,則第(1)步從列線讀入列值為1011B;第(2)步從行線讀入

22、行值為1110B,二者組合,得到該鍵行列值組合為11101011B。8.3 Intel 8255A應(yīng)用舉例關(guān)于抖動問題。一般每個鍵在按下和松開時,都會經(jīng)歷短時間抖動后才到達(dá)穩(wěn)定接通或斷開,抖動持續(xù)時間因鍵的質(zhì)量有所不同,通常為520ms。要正確確定按鍵和鍵釋放需去抖動,一般有兩種方法:一是軟件延時,即發(fā)現(xiàn)有鍵按下或釋放時,軟件延時一段時間再檢測;二是硬件消抖法,即用基本RS觸發(fā)器、單穩(wěn)電路、RC濾波器等來消除抖動。START:MOV AL,10000001B ;方式0,C高4位輸出,低4位輸入OUT 43H,ALMOV AL,0OUT 42H,AL;C高4位(行線)為0WAIT:IN AL,4

23、2H;讀C低4位(列線)狀態(tài)AND AL,0FH;保留低4位CMP AL,0FH;檢查有鍵按下否(是否有0位)JE WAIT;相等,即全1,無鍵按下,循環(huán)繼續(xù)檢測MOV AH,AL;否則,保存列值MOV AL,10001000B;設(shè)方式0,C高4位輸入,低4位輸出OUT 43H,AL;即C高低4位反轉(zhuǎn)輸入輸出方向MOV AL,AHOUT 42H,AL;把列值反向輸出到列線(C低4位)上IN AL,42H;讀入行線(C高4位)狀態(tài)AND AL,0F0H;保留高4位OR AL,AH;組合行值和列值用軟件去抖動如何改?設(shè)8255A端口地址為40H43H。采用反轉(zhuǎn)法按鍵識別程序。82558255應(yīng)用專題應(yīng)用專題專題內(nèi)容:制作一個時間顯示系統(tǒng)(24小時制,60進(jìn)制)。主程序是檢測開關(guān)狀態(tài)(K0 K1 K2 K3),記錄并顯示(在CRT上)開關(guān)狀態(tài)(即功能號),數(shù)碼

溫馨提示

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

評論

0/150

提交評論