微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第1頁(yè)
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第2頁(yè)
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第3頁(yè)
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第4頁(yè)
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(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、1,第五章 數(shù)字量輸入輸出(4),*概念:總線、接口電路、接口芯片、端口地址 *中斷及其處理 中斷控制器8259 *定時(shí)器/計(jì)數(shù)器 *并行I/O /串行I/O DMA電路與應(yīng)用,2,CPU(總線)與外設(shè)間的數(shù)據(jù)傳送方式,一、無(wú)條件傳送方式 二、條件傳送方式( 查詢方式) 三、中斷傳送方式 四、DMA傳送方式( Direct Memory Access ),3,回顧中斷傳送方式的特點(diǎn),CPU和外設(shè)大部分時(shí)間處在并行工作狀態(tài), 只在CPU響應(yīng)外設(shè)的中斷申請(qǐng)后, 進(jìn)入I/O數(shù)據(jù)傳送的過(guò)程 這一I/O數(shù)據(jù)傳送過(guò)程8259中斷控制器無(wú)法完成 需要并行/串行接口電路來(lái)完成 基本的I/O數(shù)據(jù)傳送過(guò)程稱為通信

2、: 查詢、中斷數(shù)據(jù)傳送方式,4,并行接口/通信的基本概念,通信 指計(jì)算機(jī)與外設(shè)、計(jì)算機(jī)與計(jì)算機(jī)間的信息交換 (近義詞:并行/串行傳輸) 通信的基本方法: 并行通信和串行通信,數(shù)據(jù),狀態(tài)/控制 Handshaking,A計(jì)算機(jī),B計(jì)算機(jī) 外設(shè),寬度:多位/1位,5,并行通信,將數(shù)據(jù)的各位同時(shí)在多根并行傳輸線上進(jìn)行傳輸。 數(shù)據(jù)的各位同時(shí)由源到達(dá)目的地 快 多根數(shù)據(jù)線速度快,距離短、線路費(fèi)用高(空間 時(shí)間 ),并行通信適于短距離、高速通信,6,串行通信,將數(shù)據(jù)的各位按時(shí)間順序依次在一根傳輸線上傳輸。 數(shù)據(jù)的各位依次由源到達(dá)目的地 慢 數(shù)據(jù)線少 速度慢但線路費(fèi)用低(線路空間時(shí)間 ),串行通信適于長(zhǎng)距離

3、、中低速通信,7,不可編程并行接口和可編程并行接口(靈活性和通用性),并行接口,并行接口連接CPU與并行外設(shè),實(shí)現(xiàn) 兩者間的并行通信,在信息傳送過(guò)程中,起到輸出鎖存或輸入緩沖的作用。,并行接口的典型硬件結(jié)構(gòu) 1、一個(gè)或一個(gè)以上具有鎖存或緩沖的數(shù)據(jù)端口 2、與CPU進(jìn)行數(shù)據(jù)交換所必須的控制和狀態(tài)信號(hào) 3、與外設(shè)進(jìn)行數(shù)據(jù)交換所必須的控制和狀態(tài)信號(hào) 4、端口譯碼電路 5、控制電路,8,并行接口與外設(shè)連接示意圖,輸入過(guò)程:輸入設(shè)備Ready-ACK/Busy;INT請(qǐng)求握手 輸出過(guò)程:PIO Ready(數(shù)據(jù)輸出緩沖器空)-CPU WR;Output Ready當(dāng)外設(shè)接收一個(gè)數(shù)據(jù)并ACK,通知接口準(zhǔn)備

4、下一次輸出數(shù)據(jù),輸入設(shè)備,輸出設(shè)備,9,就緒(Ready),在輸入場(chǎng)合 “就緒”說(shuō)明輸入接口已準(zhǔn)備好送往CPU的數(shù)據(jù),正等著CPU來(lái)讀取 該狀態(tài)也可用接口中數(shù)據(jù)緩沖器已“滿”來(lái)描述 在輸出場(chǎng)合 “就緒”說(shuō)明輸出接口已做好準(zhǔn)備,等待接收CPU要輸出的數(shù)據(jù) 該狀態(tài)也可用接口數(shù)據(jù)緩沖器已“空”、或者用接口(外設(shè))“閑”或不“忙(Busy)”來(lái)描述,就緒:滿,空、閑、不忙,10,可編程并行接口i8255A(P276) Programmable Peripheral Interface,Intel系列的8位并行接口芯片 通用性強(qiáng),使用靈活可用程序設(shè)置和改變芯片的工作方式 典型的可編程并行接口芯片 40P

5、DIP,+5V,24條可編程I/O引腳,直接位清零/置1功能 內(nèi)部具有三個(gè)可獨(dú)立尋址的8位數(shù)據(jù)端口:A、B、C;三個(gè)端口可分A、B組控制;數(shù)據(jù)總線緩沖器以及讀/寫控制邏輯。,11,片內(nèi)譯碼電路 A0A1=,數(shù)據(jù)端口A、B、C 每個(gè)端口8位,通過(guò)編程設(shè)定其為 輸入口或輸出口和外設(shè)傳送信息 00 A口;01=B口; 10 C口;11 控制口,8255內(nèi)部結(jié)構(gòu)與外部接線圖,12,8255內(nèi)部譯碼與讀寫,控制端口,控制端口不可讀,13,8255內(nèi)部: C口上下結(jié)構(gòu)上(PC74)下(PC30),14,8255編程1個(gè)控制端口,2個(gè)控制字,C口位控控制字,例: MOV DX,283H; MOV AL,8A

6、H ;10001010B,OUT DX,AL,方式控制字,15,8255控制字舉例(對(duì)照P277控制字),16,8255A的C口位控操作,例:設(shè)8255A控制端口地址為283H 使端口C的PC7=1,控制字為00001111B,即0FH; 而要使PC3=0,則控制字為00000110B,即06H。,17,程序: MOV AL,0FH ;置PC7=1的控制字 MOV DX,0283H ;控制端口地址 OUT DX,AL ;置PC7=1 MOV AL,06H ;置PC3=0的控制字 OUT DX,AL ;置PC3=0,8255A的C口位控操作,18,8255內(nèi)部三個(gè)端口可編程特性,(1)A組、B組

7、控制電路內(nèi)有控制寄存器接受CPU輸出的命令字,決定各自的工作方式及對(duì)端口C的按位置位或復(fù)位操作。 (2)三個(gè)數(shù)據(jù)端口A、B、C每個(gè)端口均為8位,可選輸入或輸出操作。 (3)端口A和B:各有一個(gè)8位數(shù)據(jù)輸入鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸出鎖存器。 (4)端口C:一個(gè)8位數(shù)據(jù)輸入緩沖器(沒(méi)有鎖存)和一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器??煞譃閮蓚€(gè)4位端口使用或用作控制或狀態(tài)信息端口,依工作方式而定。可編程特性,19,8255A方式0(A、B、C) 基本的輸入輸出無(wú)需專用聯(lián)絡(luò)信號(hào)就可直接進(jìn)行的I/O,1 基本I/O功能 輸入、輸出;三口全部可以當(dāng)作數(shù)據(jù)端口 輸入緩沖不鎖存,輸出鎖存; 用查詢方式,不可實(shí)現(xiàn)中斷

8、。A、B作數(shù)據(jù)口,C作控制狀態(tài)口,(聯(lián)絡(luò)信號(hào)線可由用戶自行安排)例P278圖5.43 注:此時(shí),對(duì)C口各位無(wú)特定要求:可做I/O口或聯(lián)絡(luò)信號(hào)線 2 讀時(shí)序(常規(guī)) 過(guò)程: CPU發(fā)地址RD讀數(shù)據(jù) 外設(shè) 讀周期內(nèi)保持?jǐn)?shù)據(jù) 有效讀取數(shù)據(jù)條件: AB、RD、外設(shè)數(shù)據(jù)有效保持;,20,8255A工作方式(P278),方式0基本輸入/輸出方式(16種組合),21,8255A方式1(A、B) 選通的輸入輸出必須經(jīng)過(guò)專用聯(lián)絡(luò)信號(hào)的協(xié)調(diào)才能進(jìn)行,1基本功能 一個(gè)輸入/輸出端口 包括8位數(shù)據(jù)端口(A口或B口) 和3位控制線(分別借助C口的3位); 注:對(duì)C口各位有嚴(yán)格要求:規(guī)定用C的某些線作狀態(tài)或控制用,這些線

9、是固定的,不可由用戶隨意改變 C口余兩個(gè)口作I/O(方式0),均鎖存; 在方式1下工作(查詢或中斷方式): A口和B口可作輸入或輸出 支持查詢或中斷方式。 只有A、B口可工作于方式1 2方式1輸入,兩套系統(tǒng)交換信息:傳輸方向固定 例:傳統(tǒng)的打印機(jī)連接,22,8255A方式1輸入,STB 選通輸入,低電平有效使數(shù)據(jù)送入輸入鎖存器 STROBE IBF 輸入緩沖器滿(STB下降沿產(chǎn)生)INPUT BUFFER FULL INTR中斷請(qǐng)求信號(hào)STB=1,IBF=1,INTE=1 則INTR=1,(/STB上升沿產(chǎn)生),CPU中斷服務(wù)程序讀走數(shù)據(jù)由RD信號(hào)清INTR INTEA 中斷允許=位控寫PC4

10、=1 INTEA=1; PC6,7 I/O INTEB 中斷允許=位控寫PC2=1 INTEB=1,23,8255A 方式1輸出,OBF 輸出緩沖器滿(寫端口WR上升沿),ACK使OBF=1即ACK清OBF信號(hào) ACK 外設(shè)接受到數(shù)據(jù)響應(yīng)信號(hào) INTEA(用位控方式寫PC6=1 INTEA=1中斷允許 ;輸出緩沖器空-OBF=1申請(qǐng)中斷,CPU響應(yīng)中斷往該端口寫一字節(jié)數(shù)據(jù),寫端口清INTR INTEB用位控方式寫PC2=1 INTEB=1中斷允許 INTR由/ACK的后沿在INTE=1且/OBF=1的條件下產(chǎn)生;寫端口清 INTR,PC6,PC2,24,方式1-選通I/O時(shí)序,外部數(shù)據(jù),處理器

11、讀8255端口,外設(shè)讀數(shù)據(jù),INTR,IBF,INTR,輸出,選通輸入,選通輸出,外設(shè)寫數(shù)據(jù),處理器寫8255端口,25,8255方式1C口狀態(tài),輸入C口狀態(tài): D7 D6 D5 D4 D3 D2 D1 D0 I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB (其中D4,D2為中斷允許,事先位控寫入),輸出C口狀態(tài): D7 D6 D5 D4 D3 D2 D1 D0 OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB (其中D6,D2為中斷允許,事先位控寫入),26,8255方式2雙向傳輸方式(端口A),PA7PA0雙向8位數(shù)據(jù):

12、查詢/中斷方式。(輸入和輸出均是鎖存的) 借助5位控制端口(C)用于聯(lián)絡(luò)線。/ACK有效時(shí)PA輸出數(shù)據(jù)到I/O線PA7PA0上(下降沿8255輸出數(shù)據(jù),上升沿鎖存于外設(shè)中并發(fā)中斷請(qǐng)求信號(hào))INTE1輸出/INTE2輸入中斷允許(共用INTRA)但中斷允許位獨(dú)立端口C狀態(tài):(PC20仍可為B口方式1服務(wù):聯(lián)絡(luò)線,或方式0時(shí)和B口一起成為獨(dú)立I/O,方式2的控制字,27,8255方式2雙向傳輸方式時(shí)序,數(shù)據(jù)從CPU寫往8255,輸出緩沖區(qū)滿,數(shù)據(jù)從外設(shè)到8255(PA口),數(shù)據(jù)從8255到外設(shè),數(shù)據(jù)從8255到CPU,外設(shè)信號(hào),外設(shè)總線,28,8255A應(yīng)用舉例(一),PC/XT中8255A在系統(tǒng)

13、板上連接:方式0-檢測(cè)系統(tǒng)配置、狀態(tài),管理鍵盤 P282圖5.47 A口 60H,輸入,部件測(cè)試碼或鍵盤掃描碼 B口 61H,輸出,-輸出系統(tǒng)內(nèi)部控制信號(hào):-允許鍵盤工作/+清除鍵盤數(shù)據(jù),-保持鍵盤時(shí)鐘為低,-允許I/O通道校驗(yàn),-允許 RAM奇偶校驗(yàn),+揚(yáng)聲器發(fā)聲,+定時(shí)器2門控 C口 62H,輸入,測(cè)試狀態(tài)和系統(tǒng)配置情況:RAM校驗(yàn)狀態(tài),I/O通道校驗(yàn),測(cè)T2輸出,測(cè)揚(yáng)聲器狀態(tài) 控制R:63H (自檢A口輸出:10001001B,開(kāi)機(jī)自檢時(shí)輸出部件檢測(cè)碼,逐個(gè)檢測(cè)有關(guān)部件是否正常,完成自檢后A口輸入: 10011001B,輸入鍵盤掃描碼正常A出入) 寫完控制字后,CPU可通過(guò)IN/OUT指

14、令來(lái)與8255A傳送數(shù)據(jù)。 如:IN AL,60H ;讀端口A的數(shù)據(jù) MOV DATAB,AL OUT 61H,AL ;將數(shù)據(jù)DATAB送端口B IN AL,62H MOV DATAC,AL ;讀端口C的數(shù)據(jù),29,8255編程舉例,編寫8255A的初始化程序段和中斷服務(wù)程序(注:CPU采用中斷方式從8255A中讀取轉(zhuǎn)換后的數(shù)據(jù))。 8255的A、B、C及控制端口的地址分別為PORTA、POATB、PORTC和PCON,則一種可能的程序段實(shí)現(xiàn)如下: 主程序:; 初始化8255A MOVAL,10011110B ; 設(shè)置8255A的工作方式控制字 OUT PCON, AL XOR AX,AX ;

15、置數(shù)據(jù)段寄存器DS主0000段 MOV DS,AX MOV AX,2000H ;置中斷向量1000:2000至2CH-2FH單元 MOV WORD PTR002CH,AX MOV AX,1000H MOV WORD PTR002EH,AX MOVAL,00000101B ; 設(shè)置C口置位/復(fù)位控制字,使INTEB(PC2)為高電平,允許B口中斷 OUT PCON, AL MOV AL,00000010B ; 設(shè)置C口置位/復(fù)位控制字,使PC1(IBFB)輸出低電平,啟動(dòng)第一次A/D轉(zhuǎn)換 OUT PCON, AL ; ,30,8255編程舉例,中斷處理子程序入口在1000:2000H處,其主要程

16、序如下: ; 取數(shù),并自動(dòng)啟動(dòng)下一次A/D轉(zhuǎn)換 MYINT:MOV AL,00000011B ; PC1(IBFB)輸出高電平,停止A/D轉(zhuǎn)換 OUT PCON,AL INAL,PORTB ; 取8位轉(zhuǎn)換值放到AL中 MOV SI, AL MOV AL,00000010B ; PC1(IBFB)輸出低電平,再次啟動(dòng)A/D轉(zhuǎn)換 OUT PCON, AL IRET,31,簡(jiǎn)易鍵盤的工作原理,最簡(jiǎn)單的線性結(jié)構(gòu)鍵盤 每一個(gè)引腳連接一個(gè)鍵 輸入0/1反映健是否高低,32,簡(jiǎn)易鍵盤的工作原理,常用的矩陣結(jié)構(gòu)鍵盤 每行連接一個(gè)引腳 每列連接一個(gè)引腳 利用控制線為低、讀取檢測(cè)線來(lái)識(shí)別閉合鍵,33,掃描法,先使

17、第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合(通過(guò)檢查列線電位實(shí)現(xiàn)) 此后,再將第1行接地,然后檢測(cè)列線是否有變?yōu)榈碗娢坏木€。如此往下一行一行地掃描,直到最后一行 在掃描過(guò)程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),便在掃描中途退出 通過(guò)組合行線和列線可識(shí)別此刻按下的是哪一鍵,34,第1段:是否有鍵按下,key1:mov al,00 mov dx,rowport out dx,al;使所有行線為低電平 mov dx,colport in al,dx;讀取列值 cmp al,0ffh ;判定是否有列線為低電平 jz key1;無(wú)閉合鍵,循環(huán)等待 call delay;有,延遲20ms清除抖動(dòng),鍵盤

18、掃描程序,35,第2段:識(shí)別按鍵(掃描),mov cx,8;行數(shù)送CX mov ah,0feh;掃描初值送AH key2:mov al,ah mov dx,rowport out dx,al;輸出行值(掃描值) mov dx,colport in al,dx;讀進(jìn)列值,鍵盤掃描程序,36,第2段:識(shí)別按鍵(判斷),cmp al,0ffh ;判斷有無(wú)低電平的列線 jnz key3;有,則轉(zhuǎn)下一步處理 rol ah,1;無(wú),則移位掃描值 loop key2;準(zhǔn)備下一行掃描 jmp key1 ;所有行都沒(méi)有鍵按下,則返回繼續(xù)檢測(cè) key3: ;此時(shí),al列值,ah行值,鍵盤掃描程序,37,反轉(zhuǎn)法,首

19、先,將行線作為控制線接一個(gè)輸出端口,將列線作為檢測(cè)線接一個(gè)輸入端口 CPU通過(guò)輸出端口將行線(控制線)全部設(shè)置為低電平,然后從輸入端口讀取列線(檢測(cè)線) 然后,將行線和列線的作用互換,即將列線作為控制線接輸出端口,行線作為檢測(cè)線接輸入端口 將剛才讀得的列值從列線所接端口輸出,再讀取行線的輸入值 這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀得一對(duì)唯一的行值和列值,38,第1段:是否有鍵按下, ;設(shè)置行線接輸出端口,列線接輸入端口 key2:mov al,00 mov dx,rowport out dx,al;設(shè)置行線全為低 mov dx,colport in al,dx;讀取列值 cmp al,0ffh jz key2;無(wú)閉合鍵,循環(huán)等待 push ax;有閉合鍵,保存列值 push ax,鍵盤掃描程序,39,第2段:識(shí)別按鍵(反轉(zhuǎn)法), ;設(shè)置行線接輸入端口,列線接輸出

溫馨提示

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