九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

微型計算機(jī)輸入輸出接口.ppt

上傳人:za****8 文檔編號:14781518 上傳時間:2020-07-30 格式:PPT 頁數(shù):74 大?。?.22MB
收藏 版權(quán)申訴 舉報 下載
微型計算機(jī)輸入輸出接口.ppt_第1頁
第1頁 / 共74頁
微型計算機(jī)輸入輸出接口.ppt_第2頁
第2頁 / 共74頁
微型計算機(jī)輸入輸出接口.ppt_第3頁
第3頁 / 共74頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《微型計算機(jī)輸入輸出接口.ppt》由會員分享,可在線閱讀,更多相關(guān)《微型計算機(jī)輸入輸出接口.ppt(74頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第5章 微型計算機(jī)輸入輸出接口,5.1 輸入輸出接口 5.2 輸入輸出數(shù)據(jù)傳輸?shù)目刂品绞?5.3 開關(guān)量輸入輸出接口,5.1 輸入輸出接口,5.1.1 外部設(shè)備及其信號 5.1.2 I/O接口的功能 5.1.3 I/O端口的編址方法 5.1.4 簡單I/O接口的組成,5.1.1 外部設(shè)備及其信號 外部設(shè)備(Peripheral Device) 按照與CPU數(shù)據(jù)傳輸?shù)姆较騽澐? (1)輸入設(shè)備 鍵盤、鼠標(biāo)、光筆 輸入圖形信息的掃描儀、數(shù)碼相機(jī) 檢測現(xiàn)場信息的數(shù)字化測試儀表 模擬量采集和模擬量數(shù)字量轉(zhuǎn)換裝置等,(2)輸出設(shè)備 顯示器、打印機(jī) 繪圖儀 現(xiàn)場控制的數(shù)字量模擬量轉(zhuǎn)換裝置和執(zhí)行元件 (3)

2、復(fù)合輸入輸出設(shè)備 外存儲設(shè)備是典型的復(fù)合輸入輸出設(shè)備: 磁帶機(jī)(Tape Driver) 軟磁盤驅(qū)動器(Floppy Driver) 硬磁盤驅(qū)動器(Hard Disk Driver) 光盤驅(qū)動器(Compact Disk Driver) 許多光盤只能讀出信息,稱為CDROM (Compact DiskRead Only Memory),只讀光盤只能用作輸入設(shè)備。,2. 外部設(shè)備的信號 (1)數(shù)據(jù)信號 按照信號的物理形態(tài),可分為以下幾種; 數(shù)字量: 以二進(jìn)制形式表述的數(shù)據(jù)、圖形或文字信息。 模擬量: 現(xiàn)場的物理量通過傳感器件,轉(zhuǎn)換為大小與之對應(yīng)的電壓或電流信號。這些量呈連續(xù)變化的形態(tài),稱為模擬量

3、(Analog)。 開關(guān)量: 開關(guān)量是只有二種狀態(tài)(0,1)的量,如開關(guān)的接通(ON)與斷開(OFF),電機(jī)的啟停等 脈沖量: 計數(shù)脈沖、定時脈沖和控制脈沖 對于輸入設(shè)備,數(shù)據(jù)信號從外設(shè)送往CPU對于輸出設(shè)備,數(shù)據(jù)信號從CPU發(fā)往外部設(shè)備。,(2)狀態(tài)信號 狀態(tài)信號表明外部設(shè)備當(dāng)前的工作狀態(tài),用來協(xié)調(diào)CPU與外部設(shè)備之間的操作。 典型的狀態(tài)信號:READY, BUSY 有的設(shè)備有指示出錯狀態(tài)的信號,如打印機(jī)的紙盡(Paper Out),故障(Fault)。 不同的外設(shè)可以有不同的狀態(tài)信號。 狀態(tài)信號總是從外部設(shè)備發(fā)往CPU。,(3)控制信號 控制信號是CPU向外設(shè)發(fā)出的命令,它指定設(shè)備的工作方

4、式,啟動或停止設(shè)備 控制信號的格式因設(shè)備而異 控制信號從CPU發(fā)往外部設(shè)備 數(shù)據(jù)信號、狀態(tài)信號、控制信號都是以“數(shù)據(jù)”的形式,通過數(shù)據(jù)總線在CPU和外部設(shè)備之間進(jìn)行傳輸?shù)摹?5.1.2 I/O接口的功能 接口:計算機(jī)一個部件與另一個部件之間的連接界面。 功能: 1. 設(shè)備選擇功能 CPU通過地址代碼來標(biāo)識和選擇不同的外部設(shè)備 接口對系統(tǒng)總線上傳輸?shù)耐庠O(shè)地址進(jìn)行譯碼,在檢測到本設(shè)備地址代碼時,產(chǎn)生相應(yīng)的“選中”信號 2. 信息傳輸功能 設(shè)備被“選中”時: 從CPU/數(shù)據(jù)總線接收數(shù)據(jù)或控制信息 外部設(shè)備的數(shù)據(jù)或狀態(tài)信息發(fā)往數(shù)據(jù)總線/CPU,3. 數(shù)據(jù)格式轉(zhuǎn)換功能 外設(shè)使用的數(shù)據(jù)格式與CPU數(shù)據(jù)格式

5、不同時,接口要進(jìn)行二種數(shù)據(jù)格式之間的相互轉(zhuǎn)換。 聯(lián)絡(luò)功能 從系統(tǒng)總線或外設(shè)接收一個數(shù)據(jù)后,發(fā)出“數(shù)據(jù)到”聯(lián)絡(luò)信號,通知外設(shè)或CPU取走數(shù)據(jù) 數(shù)據(jù)傳輸完成,向?qū)Ψ桨l(fā)出信號,準(zhǔn)備進(jìn)行下次傳輸 5. 中斷管理功能 向CPU申請中斷; 向CPU發(fā)中斷類型號; 中斷優(yōu)先權(quán)的管理; 在以8086為CPU的系統(tǒng)中,這些功能大部份可以由專門的中斷控制器實(shí)現(xiàn)。,復(fù)位功能 接口在接收系統(tǒng)的復(fù)位信號后,將接口電路及其所連接的外部設(shè)備置成初始狀態(tài)。 7. 可編程功能 有些接口具有可編程特性,可以用指令來設(shè)定接口的工作方式、工作參數(shù)和信號的極性。,錯誤檢測功能 (1) 物理信道上的傳輸錯誤 信號在線路上傳輸時,如果遇到

6、干擾信號,可能發(fā)生傳輸錯誤。 檢測傳輸錯誤的常見方法是奇偶檢驗(yàn)。 (2) 數(shù)據(jù)傳輸中的覆蓋錯誤 輸入設(shè)備完成一次輸入操作后,把所獲得的數(shù)據(jù)暫存在接口內(nèi) 如果在該設(shè)備完成下一次輸入操作之后,CPU還沒有從接口取走數(shù)據(jù),那么,在新的數(shù)據(jù)送入接口后,上一次的數(shù)據(jù)被覆蓋,從而導(dǎo)致數(shù)據(jù)的丟失 輸出操作中也可能產(chǎn)生類似的錯誤 覆蓋錯誤導(dǎo)致數(shù)據(jù)的丟失,易發(fā)生在高速數(shù)據(jù)傳輸?shù)膱龊?5.1.3 I/O端口的編址方法 有兩種不同的I/O端口編址方式: 1. I/O端口與內(nèi)存統(tǒng)一編址 把內(nèi)存的一部分地址分配給I/O端口,一個8位端口占用一個內(nèi)存單元地址,也稱為存儲器映射編址方式 優(yōu)點(diǎn): 訪問內(nèi)存單元和I/O端口使用

7、相同的指令,使用方便 降低CPU電路的復(fù)雜性 缺點(diǎn): 減少了內(nèi)存可用范圍 難以區(qū)分訪問內(nèi)存和I/O的指令,降低了程序的可讀性和可維護(hù)性,I/O端口與內(nèi)存獨(dú)立編址 內(nèi)存儲器和I/O端口各自有自己獨(dú)立的地址空間 訪問I/O端口需要專門的I/O指令 8086/8088 CPU采用這種方式 訪問內(nèi)存儲器 使用20根地址線A0A19 使M/IO#=1 內(nèi)存地址范圍為000000FFFFFH共1MB 訪問I/O端口 使用低16根地址線A0A15 使M/IO#= 0 I/O端口地址范圍為00000FFFFH共64K,3 IBM PC 微型計算機(jī)I/O端口地址分配 在PC系列微機(jī)中,僅使用A0A9共10條地址

8、線定義I/O端口(設(shè)A11A15= 0),尋址范圍為03FFH 前256個端口地址供主板上尋址I/O接口芯片使用,后768個供擴(kuò)展槽接口卡使用 用戶設(shè)計I/O接口電路的時候,應(yīng)使用系統(tǒng)未占用的端口地址區(qū)域 為避免所選擇的地址與其他擴(kuò)展卡沖突,最好將其設(shè)計成地址可選的型式 IBM-PC微機(jī)系統(tǒng)板各I/O接口器件端口地址見表5-1。,5.1.4 簡單I/O接口的組成 端口 端口:接口內(nèi)的寄存器,用來暫存CPU和外設(shè)之間傳輸?shù)臄?shù)據(jù)、狀態(tài)和命令。 端口地址:每一個端口有一個獨(dú)立的地址。 外部設(shè)備地址:設(shè)備接口內(nèi)各端口的地址,一臺外部設(shè)備可以擁有幾個通常是相鄰的端口地址。 端口種類:數(shù)據(jù)端口、命令端口(

9、控制端口)和狀態(tài)端口。 如果外部設(shè)備的信息(數(shù)據(jù)/狀態(tài))已經(jīng)鎖存,端口也可以由三態(tài)緩沖電路組成。,地址譯碼電路 地址譯碼是接口的基本功能之一。 一個接口上的幾個端口地址通常是連續(xù)排列的,可以把16位地址碼分解為二個部分: 高位地址碼用作對接口的選擇; 低位地址碼用來選擇接口內(nèi)不同的端口。 例如:某接口占有地址330H333H: 高8位地址為11001100B時,本接口被選中; 低2位地址為00,01,10,11時,選擇接口內(nèi)的不同端口。,圖5-1 端口的地址譯碼電路和跳線器,為了避免地址沖突,許多接口電路允許用“跳線器(JUMPER)”改變端口地址。上頁圖3-1(b) 將異或門的輸出代替圖3-

10、1(a)中的A8,A9引腳: 二個跳線引腳均接地時,上面譯碼電路仍然產(chǎn)生330H333H的端口譯碼信號; 當(dāng)二個跳線引腳均接“1”時,上面譯碼電路會產(chǎn)生030H033H的端口譯碼信號 同理還可以產(chǎn)生130H133H,230H233H的譯碼信號。 8086工作于最大模式時,上面的M/IO#、WR#、RD#信號由8288總線控制器發(fā)出的IORC#、IOWC#代替。,由于讀、寫操作不會同時進(jìn)行,一個輸入端口和另一個輸出端口可以使用同一個地址編碼。 例如,可安排數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口使用同一個地址330H,命令端口和狀態(tài)端口共同使用地址331H。 需要注意的是,數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口雖然使用相

11、同的地址,但卻是二個各自獨(dú)立的不同的端口。,數(shù)據(jù)鎖存器與緩沖器 數(shù)據(jù)(狀態(tài))輸入端口: 必須通過三態(tài)緩沖器與系統(tǒng)總線相連,保證數(shù)據(jù)總線能夠正常地進(jìn)行數(shù)據(jù)傳送。 輸入設(shè)備在完成一次輸入操作后,在輸出數(shù)據(jù)的同時,產(chǎn)生數(shù)據(jù)選通信號,把數(shù)據(jù)打入八位鎖存器74LS273 鎖存器的輸出信號通過三態(tài)八位緩沖器74LS244連接到系統(tǒng)數(shù)據(jù)總線。 數(shù)據(jù)端口讀信號由地址譯碼電路產(chǎn)生。 高電平(無效):緩沖器輸出端呈高阻態(tài)。 低電平(有效,端口被選中 ):已鎖存的數(shù)據(jù)通過74LS244送往系統(tǒng)數(shù)據(jù)總線,被CPU所接收。,圖5-3 輸入設(shè)備接口的數(shù)據(jù)鎖存和緩沖電路,數(shù)據(jù)(命令)輸出端口: CPU送往外設(shè)的數(shù)據(jù)或命令,

12、應(yīng)由接口進(jìn)行鎖存,以便使外設(shè)有充分的時間接收和處理。 八位輸出鎖存電路例(圖5-4)。,圖5-4 輸出鎖存電路,簡單的輸入輸出接口(圖5-5) 把地址譯碼、數(shù)據(jù)鎖存與緩沖、狀態(tài)寄存器、命令寄存器各個電路組合起來,構(gòu)成簡單輸入輸出接口 接口連接的信號: 與系統(tǒng)總線連接: 地址總線A0A15 數(shù)據(jù)總線D0D7 控制總線M/IO#、RD# 、WR# (最小模式時)或IOWC#、IORC#(最大模式時)相連接 與外部設(shè)備相連:數(shù)據(jù)、狀態(tài)、命令。,圖5-5 簡單接口的組成,5.2 輸入輸出數(shù)據(jù)傳輸?shù)目刂品绞?5.2.1 程序方式 5.2.2 中斷方式 5.2.3 直接存儲器存取(DMA)方式,5.2.1

13、 程序方式 在程序控制下進(jìn)行信息傳送 分為無條件傳送和條件傳送二種 1 無條件傳送方式 對于簡單的外部設(shè)備的IO操作可以隨時進(jìn)行; 例如,開關(guān)、發(fā)光二極管 這些簡單設(shè)備的輸入信號一般不需要鎖存,可以通過三態(tài)緩沖器與系統(tǒng)數(shù)據(jù)總線直接相連。 簡單輸出設(shè)備的信號一般需要由鎖存器鎖存,圖5-6 無條件輸入輸出傳送接口,條件傳送方式 條件傳送也稱為查詢式傳送、異步傳送; 接口電路除了有傳送數(shù)據(jù)的端口以外,還應(yīng)有儲存和傳送狀態(tài)的端口。 對于輸入過程: 外設(shè)將數(shù)據(jù)準(zhǔn)備好, “準(zhǔn)備好(READY)”標(biāo)志位置1; CPU將數(shù)據(jù)取走,READY=0 對于輸出過程: 外設(shè)接收到數(shù)據(jù),將“忙(BUSY)”標(biāo)志位置1

14、數(shù)據(jù)輸出完成,將 “BUSY”清零。,一個數(shù)據(jù)的“條件傳送”過程: CPU從接口中讀取狀態(tài)字; CPU檢測狀態(tài)字的對應(yīng)位是否滿足“就緒”條件,如果不滿足,則回到前一步重新讀取狀態(tài)字; 如狀態(tài)字表明外設(shè)已處于“就緒”狀態(tài),則傳送數(shù)據(jù)。,圖5-9 查詢式輸入流程,查詢方式輸入接口電路(圖5-7) 接口內(nèi)有兩個端口: 數(shù)據(jù)端口(8位,輸入) 狀態(tài)端口(1位,輸入,連接在D7上,=1表示有數(shù)據(jù)) 選通信號有二個作用: 將外設(shè)的數(shù)據(jù)送到接口的鎖存器中; 使接口中的D觸發(fā)器置“l(fā)”(READY=1) 數(shù)據(jù)信息和狀態(tài)信息從不同端口經(jīng)過數(shù)據(jù)總線送到CPU。,圖5-7 查詢式輸入接口電路,匯編語言程序: AGA

15、IN: IN AL, STAT_PORT; 讀狀態(tài)端口,D7=1表示“數(shù)據(jù)就緒” TEST AL,80H; 測試“數(shù)據(jù)就緒”位 JZ AGAIN; 未就緒,繼續(xù)讀狀態(tài)端口 IN AL, DATA_PORT; 已就緒,從數(shù)據(jù)端口讀取數(shù)據(jù) C語言程序: do stat = inportb( stat_port ); while (stat /* 數(shù)據(jù)已準(zhǔn)備好則讀取數(shù)據(jù) */,查詢方式輸出接口電路(圖5-8) 接口內(nèi)有兩個端口: 數(shù)據(jù)端口(8位,輸出) 狀態(tài)端口(1位,輸入,連接在D7上,=1表示正在輸出,“BUSY”) CPU讀取接口中的狀態(tài): 外設(shè)忙( BUSY =1),CPU等待 外設(shè)空閑(

16、BUSY =0),向外設(shè)輸出數(shù)據(jù),圖5-8 查詢式輸出接口電路,“數(shù)據(jù)端口寫”信號作用: 把數(shù)據(jù)打入“鎖存器”; 將“狀態(tài)觸發(fā)器”置1 D觸發(fā)器的作用: 為外設(shè)提供一個聯(lián)絡(luò)信號STB,告訴外設(shè)現(xiàn)在接口中已有數(shù)據(jù)可供提??; 用作該設(shè)備的狀態(tài)標(biāo)志( “忙”,BUSY)。,匯編語言程序: ONE: IN AL, STATUS_PORT ; 讀狀態(tài)端口 TESTAL, 80H ; 測試“忙”位 JNZ ONE ; 忙,再讀狀態(tài)端口 MOV AL, DATA ; 不忙,取來數(shù)據(jù) OUT DATA_PORT, AL ; 送入數(shù)據(jù)端口 C語言程序: do stat = inportb( status_por

17、t ); while ( stat /*設(shè)備空閑:輸出數(shù)據(jù) */,查詢式輸入輸出的程序設(shè)計例 某字符輸入設(shè)備以查詢方式工作: 數(shù)據(jù)輸入端口: 0054H, 狀態(tài)端口: 0056H。 狀態(tài)寄存器:D0=1,數(shù)據(jù)準(zhǔn)備好,可以輸入; 狀態(tài)寄存器:D1=1,輸入設(shè)備發(fā)生故障 要求: 從該設(shè)備上輸入80個字符,配上水平和垂直校驗(yàn)碼(偶校驗(yàn)),向串行口輸出。 如果設(shè)備出錯,顯示錯誤信息后停止。,匯編語言程序: .data Buffer DB 81 dup( ? ) Message DB Device Fault !,0DH,0AH,$ .code Start:MOV AX,data ;對DS初始化 MOV

18、 DS,AX LEA SI, Buffer ;設(shè)置SI為緩沖區(qū)指針 MOV CX, 80;設(shè)置CX為計數(shù)器 MOVDL, 0 ;DL置垂直校驗(yàn)碼初值,Next:IN AL, 56H ;讀入狀態(tài) TEST AL,02H ;測狀態(tài)寄存器D1 JNZ ERROR ;設(shè)備故障,轉(zhuǎn)ERROR TEST AL, 01H ;測狀態(tài)寄存器D0 JZ Next;未準(zhǔn)備好,則等待,再測 IN AL,54H ;準(zhǔn)備好, 輸入字符 AND AL, 7FH ;清最高位,進(jìn)行校驗(yàn) JPE Store ;已經(jīng)是偶數(shù)個1,則轉(zhuǎn)Store ORAL,80H ;奇數(shù)個1,將最高位置為1 Store: XOR DL,AL ;產(chǎn)生垂

19、直校驗(yàn)碼 MOV SI, AL ;將字符送緩沖區(qū) INC SI ;修改地址指針 LOOP Next ;80個字符未輸入完成,繼續(xù),MOVSI, DL ; 輸入完成, 保存垂直校驗(yàn)碼 Tranfer:LEA SI,Buffer;準(zhǔn)備發(fā)送,SI中置字符串首址 MOV CX,81 ;發(fā)送字符數(shù) One:MOV AH,04H ;設(shè)置串口輸出功能號 MOV DL, SI ;取出一個字符 INT 21H;從串口輸出 INC SI;修改指針 LOOP One ;輸出下一個字符 JMP Done Error:MOV AH, 09H;設(shè)備故障,輸出出錯信息 LEA DX, Message INT 21H Don

20、e: MOV AH, 4CH INT 21H;返回DOS END Start,說明: 程序由二段循環(huán)程序組成: 第一段程序從設(shè)備輸入80個字符,同時產(chǎn)生它的水平/垂直校驗(yàn)碼存入緩沖區(qū); 第二段程序?qū)⒕彌_區(qū)內(nèi)容通過串口輸出。 測試狀態(tài)位要注意先后次序:由于設(shè)備故障將導(dǎo)致該設(shè)備不能正常輸入,使完成標(biāo)志(D0)恒為零。所以,在設(shè)備發(fā)生故障時先判是否完成可能導(dǎo)致程序死循環(huán)。 產(chǎn)生水平校驗(yàn)碼:從設(shè)備讀入數(shù)據(jù),清除最高位,根據(jù)剩余七位的奇偶特性決定最高位置1或不變(保持為0)。 產(chǎn)生垂直校驗(yàn)碼:將80個字節(jié)半加(異或)得到。,多個設(shè)備循環(huán)查詢方法舉例: 三個設(shè)備,它們狀態(tài)端口地址分別為STATl、STAT

21、2、STAT3,三個狀態(tài)端口均使用第5位作為準(zhǔn)備好標(biāo)志。 TREE: MOV FLAG,0 INPUT: IN AL,STAT l TEST AL,20H JZ DEV2 CALL PROC l,DEV2: IN AL,STAT2 TEST AL,20H JZ DEV3 CALL PROC2 DEV3; IN AL,STAT3 TEST AL,20H JZ NOINPUT CALL PROC3 NOINPUT:CMP FLAG,07H JNE INPUT ,說明: PROCl、PROC2、PROC3是三個設(shè)備輸入數(shù)據(jù)并進(jìn)行處理的子程序。 FLAG存放三個設(shè)備輸入完成的標(biāo)志,D0, D1, D2

22、分別代表一個設(shè)備的輸入完成情況(=0表示未完成,=1表示完成)。 上例僅適用于三個設(shè)備工作速度都比較慢的情況; 如果其中一個設(shè)備工作速度很快,而其他設(shè)備的輸入輸出處理程序運(yùn)行時間又較長,可能發(fā)生“覆蓋錯誤”。 在這種情況下,應(yīng)優(yōu)先執(zhí)行工作速度較快的外設(shè)的IO過程,然后再執(zhí)行其他設(shè)備的IO過程。,5.2.2 中斷方式 程序查詢方式的特點(diǎn): 程序查詢方式解決了CPU與外設(shè)工作的協(xié)調(diào)問題,但是卻大大降低了CPU的使用效率; 在程序查詢方式中,CPU處于主動地位,外設(shè)處于消極等待查詢的被動地位; 設(shè)備較多時,查詢方式的數(shù)據(jù)傳送很難使每一個外設(shè)都能工作在最佳狀態(tài)。,程序中斷方式特點(diǎn): 賦予系統(tǒng)中的外設(shè)某

23、種主動申請、配合CPU工作的“權(quán)利”。 外設(shè)把數(shù)據(jù)準(zhǔn)備好時,主動向CPU發(fā)出一個請求信號。 CPU接收到請求信號后,暫停當(dāng)前的工作,進(jìn)行該設(shè)備的數(shù)據(jù)傳送操作。 賦予外設(shè) “主動權(quán)”之后,CPU可以不必反復(fù)查詢該設(shè)備的狀態(tài),而是正常地處理系統(tǒng)任務(wù); CPU與外設(shè)處于某種“并行工作”的狀態(tài),從而提高CPU的工作效率。,中斷方式舉例: 某外設(shè)在1秒內(nèi)傳送100個字節(jié)。 若用程序查詢的方式傳送,則CPU為傳送100個字節(jié)所化費(fèi)的時間等于1秒。 用中斷控制方式傳送,CPU為執(zhí)行一個字節(jié)的傳送需要進(jìn)入一次中斷服務(wù)程序。 設(shè)CPU執(zhí)行一次中斷服務(wù)程序需要100s; 傳遞100個字節(jié)CPU所使用的時間為100

24、s100=10ms; CPU處理中斷開銷為1,99的時間可執(zhí)行其他任務(wù); 中斷方式的數(shù)據(jù)傳送仍在程序的控制下執(zhí)行,稱為程序中斷方式; 適應(yīng)于中、慢速的外部設(shè)備數(shù)據(jù)傳送。,3.2.3 直接存儲器存取(DMA)方式 程序中斷方式,程序查詢方式的缺點(diǎn): 中斷方式: 每傳送一次數(shù)據(jù),CPU必須執(zhí)行一次中斷服務(wù)程序; 對于高速數(shù)據(jù)傳輸,容易產(chǎn)生“覆蓋錯誤”。 程序查詢方式: 響應(yīng)速度比中斷方式要快一些,完成一次數(shù)據(jù)傳輸仍然需要執(zhí)行七、八條以上的指令。 CPU的工作速度不高時仍有可能跟不上外設(shè)數(shù)據(jù)傳輸?shù)男枰?直接存儲器傳送 (Direct Memory AccessDMA) 將外設(shè)的數(shù)據(jù)不經(jīng)過CPU直接

25、送入內(nèi)存儲器; 或者,從內(nèi)存儲器不經(jīng)過CPU直接送往外部設(shè)備; 一次DMA傳送只需要執(zhí)行一個DMA周期(相當(dāng)于一個總線讀寫周期); 能夠滿足高速外設(shè)數(shù)據(jù)傳輸?shù)男枰?需要一個專門的器件來協(xié)調(diào)外設(shè)接口和內(nèi)存儲器的數(shù)據(jù)傳輸,稱為DMA控制器(DMAC),圖5-10 DMA數(shù)據(jù)傳送示意圖,5.3 開關(guān)量輸入輸出接口,5.3.1 開關(guān)量輸入接口 5.3.2 開關(guān)量輸出接口,5.3.1 開關(guān)量輸入接口 1 基本的開關(guān)量輸入接口 開關(guān)形態(tài):單刀單擲開關(guān)/單刀雙擲開關(guān)/按鈕 開關(guān)量通過三態(tài)緩沖器與系統(tǒng)數(shù)據(jù)總線連接 常用的三態(tài)緩沖器: 74LS244(輸入輸出同相)/74LS240(輸入輸出反相) 一條輸入指

26、令可以同時讀入8位或16位開關(guān)量。,圖5-11 基本開關(guān)量輸入接口,2 矩陣式開關(guān)量輸入接口 開關(guān)數(shù)量多時,可以排列成矩陣,例如:圖5-12(鍵盤) 數(shù)據(jù)輸出端口連接8根“行線”(Row,R0R7); 數(shù)據(jù)輸入端口連接8根“列線”(Column, C0C7); 電路特點(diǎn): 沒有鍵按下時,列線端口輸入為全“1”; 行線端口輸出全“1”時,不論有無鍵按下,列線端口輸入仍然為全“1”; 某一行線輸出“0”時,如果該行上有一個鍵按下,則輸入端口輸入代碼為7個“1”,1個“0”,0的位置與被按下鍵的位置相對應(yīng)。,圖5-12 鍵盤(矩陣式開關(guān)量輸入)接口,鍵盤掃描與編碼: 對8根行線逐行掃描,識別按鍵的所

27、在行、列,從而獲得該鍵的代碼; 一個鍵的編碼可以用它的二字節(jié)“行列碼”表示。例如,(R3,C2)的二字節(jié)“行列碼”為F7FBH: F7H=11110111 :按鍵在R3行上; FBH=11111011 :按鍵在C2列上; 用“行列碼”查表,可以得到這個鍵的代碼。 鍵的編碼也可以用一字節(jié)“掃描碼”表示。上例中按鍵的一字節(jié)“掃描碼”為32H: 高4位0011:鍵所在的行; 低4位0010:鍵所在的列; 鍵剛按下時,會產(chǎn)生“抖動”。,鍵盤掃描程序: 沒有鍵被按下,返回1; 有鍵按下時返回按鍵的二字節(jié)“行列碼”(行碼為高8位,列碼為低8位); RPORT, CPORT 定義為行、列端口的地址。 uns

28、igned int kbinput( ) unsigned int row, row0, column, code, k=0; outportb( RPORT, 0); /*各行輸出全0,測試有無鍵按下*/ if (inportb(CPORT) /* 延時20ms,消除抖動 */,if (inportb(CPORT) /* 形成下一個行碼 */ ,if (column = = 0 xff ) return( 0 xffff ); /* 未找到按鍵所在行,返回全“1” */ code = (row0 ,5.3.2 開關(guān)量輸出接口 1 基本的開關(guān)量輸出接口 常見的開關(guān)量輸出: LED發(fā)光二極管 L

29、ED指示燈用于指示室內(nèi)儀表狀態(tài) 小功率LED可以由邏輯電路直接驅(qū)動: 輸出0:LED發(fā)光 輸出1:LED熄滅 執(zhí)行元件驅(qū)動線圈,表5-3 部分邏輯電路輸出端電流,大功率LED驅(qū)動或執(zhí)行元件驅(qū)動線圈的驅(qū)動: 普通邏輯電路輸出,外接功率放大三極管驅(qū)動; 集電極開路驅(qū)動器(OC驅(qū)動器),輸出端通過上拉 電阻接高壓。,2 LED七段數(shù)碼顯示管接口,圖5-15 多位LED數(shù)碼顯示接口,多位LED顯示器驅(qū)動: 設(shè)置位碼,熄滅所有數(shù)碼管; 將一個數(shù)碼管的字形代碼(段碼)送入段碼端口; 設(shè)置位碼,點(diǎn)亮一個數(shù)碼管 適當(dāng)延時后,重復(fù)以上過程 多位不同的數(shù)字同時顯示在不同的數(shù)碼管上。 送段碼之前熄滅所有數(shù)碼管可以消

30、除“段碼”和“位碼”不同步產(chǎn)生的閃爍。,多位LED數(shù)碼顯示程序: 需要輸出的數(shù)字分別是1,2,3,4,5,6,7,8 段碼和位碼的端口地址分別是segport 和 bitport,;數(shù)據(jù)段和堆棧段 data Segtabdb 40h, 4fh, 24h, 30h, 19h db 12h, 02h, 78h, 00h, 10h buffer db 1, 2, 3, 4, 5, 6, 7, 8 segcodedb? bitcodedb? stack100h,code leddisp proc far pushds; 保護(hù)各寄存器內(nèi)容 pushax pushbx pushcx pushsi mova

31、x, data;裝載ds movds, ax leabx, segtab;bx 置為七段碼表首址 movbitcode, 80h ; 位碼初始值為80H(從左邊開始) movsi, 0;si用作輸出緩沖區(qū)指針,初值0 movcx, 8;cx 用作循環(huán)計數(shù)器,初值8,one: moval, 0 out bitport, al; 送位碼0,熄滅各LED moval, buffersi ;取出一個待輸出數(shù)字 xlat; 轉(zhuǎn)換成七段碼 outsegport, al; 向段碼端口輸出 moval, bitcode outbitport, al; 輸出位碼,點(diǎn)亮一個LED rorbitcode, 1; 修

32、改位碼,得到下一個位碼 incsi; 修改輸出緩沖區(qū)指針 calldelay; 延時 loopone; 循環(huán),點(diǎn)亮下一個LED,popsi popcx;恢復(fù)各寄存器 popbx popax popds ret; 返回主程序 leddispendp end,習(xí)題5,1. 接口電路與外部設(shè)備之間傳送的信號有哪幾種?傳輸方向怎樣? 2. 接口電路有哪些功能?哪些功能是必需的? 3. I/O端口的編址有哪幾種方法?各有什么利弊?80X86系列CPU采用哪種方法? 4. 按照傳輸信號的種類,I/O端口有幾種?它們信號的傳輸方向怎樣? 5. I/O端口譯碼電路的作用是什么?在最小模式和最大模式下分別有哪些

33、輸入信號? 6. 外部設(shè)備數(shù)據(jù)傳送有哪幾種控制方式?從外部設(shè)備的角度,比較不同方式對外部設(shè)備的響應(yīng)速度。,7. 敘述一次查詢式輸出過程中,接口內(nèi)各電路、信號的狀態(tài)變化過程。 8. 比較程序中斷方式和查詢方式的區(qū)別,根據(jù)比較,指出中斷工作方式的優(yōu)缺點(diǎn)。 9. 比較DMA方式和程序中斷方式的區(qū)別,根據(jù)比較,指出DMA工作方式的優(yōu)缺點(diǎn)。 10. 某輸入設(shè)備數(shù)據(jù)端口、狀態(tài)端口、控制端口地址分別為70H, 71H, 72H。狀態(tài)端口D5=1表示輸入完成,控制端口D7=1表示啟動設(shè)備輸入(輸入完成后由設(shè)備清除該位)。從該設(shè)備輸入100個字節(jié)數(shù)據(jù),存入以BUFFER為首地址的緩沖區(qū)。如果啟動該設(shè)備1秒后仍未完成一次輸入,則視為超時錯,顯示出錯信息后返回。分別用8086匯編語言和C語言編寫完成上述功能的I/O程序。,11. 某輸出設(shè)備數(shù)據(jù)端口、狀態(tài)端口地址分別為220H, 221H。狀態(tài)端口D0=1表示輸出完成。將數(shù)據(jù)段中以STRING為首地址的20個字符(用七位ASCII代碼存儲)添加水平和垂直校驗(yàn)發(fā)送到該外部設(shè)備。用8086匯編語言編寫完成上述功能的I/O程序。 12. 試畫出矩陣式鍵盤查詢的程序流程圖。 13. 試畫出公用端口多位LED輸出的程序流程圖。,

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!