微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第1頁
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第2頁
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第3頁
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第4頁
微機(jī)系統(tǒng)與接口課件:Ch5_4第五章 數(shù)字量輸入輸出(4)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第五章 數(shù)字量輸入輸出(4)*概念:總線、接口電路、接口芯片、端口地址 *中斷及其處理 中斷控制器8259 *定時(shí)器/計(jì)數(shù)器*并行I/O /串行I/O DMA電路與應(yīng)用1CPU(總線)與外設(shè)間的數(shù)據(jù)傳送方式一、無條件傳送方式二、條件傳送方式( 查詢方式)三、中斷傳送方式四、DMA傳送方式( Direct Memory Access )2回顧中斷傳送方式的特點(diǎn)CPU和外設(shè)大部分時(shí)間處在并行工作狀態(tài), 只在CPU響應(yīng)外設(shè)的中斷申請后, 進(jìn)入I/O數(shù)據(jù)傳送的過程這一I/O數(shù)據(jù)傳送過程8259中斷控制器無法完成 需要并行/串行接口電路來完成基本的I/O數(shù)據(jù)傳送過程稱為通信: 查詢、中斷數(shù)據(jù)傳送方式3并

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

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

4、準(zhǔn)備下一次輸出數(shù)據(jù) 地址譯碼CPU控制寄存器輸入緩沖寄存器輸出緩沖寄存器狀態(tài)寄存器數(shù)據(jù)總線讀出信號寫入信號復(fù)位準(zhǔn)備好中斷請求A0A1輸入設(shè)備輸出設(shè)備數(shù)據(jù)輸入準(zhǔn)備好數(shù)據(jù)輸入回答數(shù)據(jù)輸入數(shù)據(jù)輸出數(shù)據(jù)輸出準(zhǔn)備好數(shù)據(jù)輸出回答片選輸入設(shè)備輸出設(shè)備8就緒(Ready)在輸入場合“就緒”說明輸入接口已準(zhǔn)備好送往CPU的數(shù)據(jù),正等著CPU來讀取該狀態(tài)也可用接口中數(shù)據(jù)緩沖器已“滿”來描述在輸出場合“就緒”說明輸出接口已做好準(zhǔn)備,等待接收CPU要輸出的數(shù)據(jù)該狀態(tài)也可用接口數(shù)據(jù)緩沖器已“空”、或者用接口(外設(shè))“閑”或不“忙(Busy)”來描述就緒:滿,空、閑、不忙9可編程并行接口i8255A(P276) Prog

5、rammable Peripheral Interface Intel系列的8位并行接口芯片通用性強(qiáng),使用靈活可用程序設(shè)置和改變芯片的工作方式典型的可編程并行接口芯片40PDIP,+5V,24條可編程I/O引腳,直接位清零/置1功能內(nèi)部具有三個(gè)可獨(dú)立尋址的8位數(shù)據(jù)端口:A、B、C;三個(gè)端口可分A、B組控制;數(shù)據(jù)總線緩沖器以及讀/寫控制邏輯。8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB310resetD7D0A9A2

6、A1A0IORIOW片選譯碼數(shù)據(jù)緩沖器讀寫控制片內(nèi)譯碼CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口端口A端口C端口B +5VGNDD7D0外設(shè)8255A總線片內(nèi)譯碼電路A0A1=數(shù)據(jù)端口A、B、C 每個(gè)端口8位,通過編程設(shè)定其為 輸入口或輸出口和外設(shè)傳送信息 00 A口;01=B口; 10 C口;11 控制口8255內(nèi)部結(jié)構(gòu)與外部接線圖118255內(nèi)部譯碼與讀寫由CS、A1、A0、RD、WR引腳的不同組合,實(shí)現(xiàn)各種不同的功能。(教材P276表5.8)控制端口控制端口不可讀128255內(nèi)部: C口上下結(jié)構(gòu)上(PC74)下(PC30)數(shù)據(jù)總線緩沖器讀寫控制邏輯A組控制B

7、組控制A口C口C口B口PA7PA0PC7PC4PC3PC0PB7PB0DB70RDWRCSA1A0RESETC下半口C上半口138255編程1個(gè)控制端口,2個(gè)控制字 C口位控控制字0D6D5D4D3D2D1D0標(biāo)識位XXX位選擇: 000111-Bit0Bit71-置位; 0-復(fù)位例: MOV DX,283H; MOV AL,8AH ;10001010BOUT DX,AL1D6D5D4D3D2D1D0標(biāo)識位A組:00-方式0;01-方式1;1X-方式2 A口:0-出1-入C上半口0-出1-入B組:0-方式 0;1-方式 1B口:0-出1-入C下半口:0-出1-入 方式控制字148255控制字舉

8、例(對照P277控制字)MOV DX,283HMOV AL, 0B8H ; OUT DX, AL ;A口輸入,方式1,B口輸出,C口輸入,方式0 控制字:10111001 例A口輸入,B口輸出,C口上半口輸入,下半口輸出,方式0 控制字:10011000= 98H 片選地址 280H283H A1A1,A0A0 控制寄存器地址283HMOV DX,283HMOV AL,98HOUT DX,AL158255A的C口位控操作例:設(shè)8255A控制端口地址為283H使端口C的PC7=1,控制字為00001111B,即0FH;而要使PC3=0,則控制字為00000110B,即06H。0D6D5D4D3D

9、2D1D0標(biāo)識位XXX位選擇: 000111-Bit0Bit71-置位; 0-復(fù)位16程序:MOV AL,0FH ;置PC7=1的控制字MOV DX,0283H ;控制端口地址OUT DX,AL ;置PC7=1MOV AL,06H ;置PC3=0的控制字OUT DX,AL ;置PC3=08255A的C口位控操作178255內(nèi)部三個(gè)端口可編程特性(1)A組、B組控制電路內(nèi)有控制寄存器接受CPU輸出的命令字,決定各自的工作方式及對端口C的按位置位或復(fù)位操作。(2)三個(gè)數(shù)據(jù)端口A、B、C每個(gè)端口均為8位,可選輸入或輸出操作。(3)端口A和B:各有一個(gè)8位數(shù)據(jù)輸入鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸出鎖存器。

10、(4)端口C:一個(gè)8位數(shù)據(jù)輸入緩沖器(沒有鎖存)和一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器??煞譃閮蓚€(gè)4位端口使用或用作控制或狀態(tài)信息端口,依工作方式而定。可編程特性188255A方式0(A、B、C) 基本的輸入輸出無需專用聯(lián)絡(luò)信號就可直接進(jìn)行的I/O1 基本I/O功能 輸入、輸出;三口全部可以當(dāng)作數(shù)據(jù)端口 輸入緩沖不鎖存,輸出鎖存; 用查詢方式,不可實(shí)現(xiàn)中斷。A、B作數(shù)據(jù)口,C作控制狀態(tài)口,(聯(lián)絡(luò)信號線可由用戶自行安排)例P278圖5.43 注:此時(shí),對C口各位無特定要求:可做I/O口或聯(lián)絡(luò)信號線 2 讀時(shí)序(常規(guī)) 過程: CPU發(fā)地址RD讀數(shù)據(jù) 外設(shè) 讀周期內(nèi)保持?jǐn)?shù)據(jù) 有效讀取數(shù)據(jù)條件: AB、RD

11、、外設(shè)數(shù)據(jù)有效保持;198255A工作方式(P278)方式0基本輸入/輸出方式(16種組合)208255A方式1(A、B) 選通的輸入輸出必須經(jīng)過專用聯(lián)絡(luò)信號的協(xié)調(diào)才能進(jìn)行1基本功能 一個(gè)輸入/輸出端口 包括8位數(shù)據(jù)端口(A口或B口) 和3位控制線(分別借助C口的3位);注:對C口各位有嚴(yán)格要求:規(guī)定用C的某些線作狀態(tài)或控制用,這些線是固定的,不可由用戶隨意改變 C口余兩個(gè)口作I/O(方式0),均鎖存; 在方式1下工作(查詢或中斷方式): A口和B口可作輸入或輸出 支持查詢或中斷方式。 只有A、B口可工作于方式12方式1輸入兩套系統(tǒng)交換信息:傳輸方向固定例:傳統(tǒng)的打印機(jī)連接218255A方式1

12、輸入PA7PA0INTEAPC4PC5PC3STBAIBFAINTRAPB7PB0INTEBPC2PC1PC0STBBIBFBINTRBSTB 選通輸入,低電平有效使數(shù)據(jù)送入輸入鎖存器 STROBEIBF 輸入緩沖器滿(STB下降沿產(chǎn)生)INPUT BUFFER FULLINTR中斷請求信號STB=1,IBF=1,INTE=1 則INTR=1,(/STB上升沿產(chǎn)生),CPU中斷服務(wù)程序讀走數(shù)據(jù)由RD信號清INTRINTEA 中斷允許=位控寫PC4=1 INTEA=1; PC6,7 I/OINTEB 中斷允許=位控寫PC2=1 INTEB=1228255A 方式1輸出 OBF 輸出緩沖器滿(寫端

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

14、FRDSTBWROBFINTRACK輸出選通輸入選通輸出外設(shè)寫數(shù)據(jù)處理器寫8255端口248255方式1C口狀態(tài)輸入C口狀態(tài): D7 D6 D5 D4 D3 D2 D1 D0I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB(其中D4,D2為中斷允許,事先位控寫入)輸出C口狀態(tài): D7 D6 D5 D4 D3 D2 D1 D0OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB(其中D6,D2為中斷允許,事先位控寫入)258255方式2雙向傳輸方式(端口A)PA7PA0雙向8位數(shù)據(jù):查詢/中斷方式。(輸入和輸出均是鎖存的) 借助5位

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

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

17、來與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ù)288255編程舉例編寫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 ;置數(shù)據(jù)段

18、寄存器DS主0000段 MOV DS,AX MOV AX,2000H ;置中斷向量1000:2000至2CH-2FH單元 MOV WORD PTR002CH,AX MOV AX,1000H MOV WORD PTR002EH,AXMOVAL,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 ; 298255編程舉例中斷處理子程序入口在1000:2000H處,其主要程序如下: ; 取

19、數(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, ALMOV AL,00000010B ; PC1(IBFB)輸出低電平,再次啟動(dòng)A/D轉(zhuǎn)換 OUT PCON, AL IRET30簡易鍵盤的工作原理+5V+5V+5V最簡單的線性結(jié)構(gòu)鍵盤每一個(gè)引腳連接一個(gè)鍵輸入0/1反映健是否高低31簡易鍵盤的工作原理+5V+5V控制線檢測線常用的矩陣結(jié)構(gòu)鍵盤每行連接一個(gè)引腳每列連接一個(gè)引腳利用控制線為低、讀取檢測線來識別閉合鍵32掃描法先使第0

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

21、掃描)mov cx,8;行數(shù)送CXmov ah,0feh;掃描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;輸出行值(掃描值)mov dx,colportin al,dx;讀進(jìn)列值鍵盤掃描程序35第2段:識別按鍵(判斷)cmp al,0ffh;判斷有無低電平的列線jnz key3;有,則轉(zhuǎn)下一步處理rol ah,1;無,則移位掃描值loop key2;準(zhǔn)備下一行掃描jmp key1;所有行都沒有鍵按下,則返回繼續(xù)檢測key3: ;此時(shí),al列值,ah行值鍵盤掃描程序36反轉(zhuǎn)法首先,將行線作為控制線接一個(gè)輸出端口,將列線作為檢測線接一個(gè)輸入端口CPU通過輸出端口將行線(控制線)全部設(shè)置為低電平,然后從輸入端口讀取列線(檢測線)然后,將行線和列線的作用互換,即將列線作為控制線接輸出端口,行線作為檢測線接輸入端口將剛才讀得的列值從列線所接端口輸出,再讀取行線的輸入值這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀得一對唯一的行值和列值37第1段:是否有鍵按下;設(shè)置行線接輸出端口,列線接輸入端口key2:mov al,00mov dx,rowportout dx,al;設(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論