第5章微型計算機輸入輸出接口ppt課件_第1頁
第5章微型計算機輸入輸出接口ppt課件_第2頁
第5章微型計算機輸入輸出接口ppt課件_第3頁
第5章微型計算機輸入輸出接口ppt課件_第4頁
第5章微型計算機輸入輸出接口ppt課件_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5章章 微型計算機輸入輸出接口微型計算機輸入輸出接口 5.1 輸入輸出接口輸入輸出接口 5.2 輸入輸出數(shù)據(jù)傳輸?shù)目刂品绞捷斎胼敵鰯?shù)據(jù)傳輸?shù)目刂品绞?5.3 開關(guān)量輸入輸出接口開關(guān)量輸入輸出接口 5.1 輸入輸出接口輸入輸出接口 5.1.1 5.1.1 外部設(shè)備及其信號外部設(shè)備及其信號 5.1.2 I/O5.1.2 I/O接口的功能接口的功能5.1.3 I/O5.1.3 I/O端口的編址方法端口的編址方法 5.1.4 5.1.4 簡單簡單I/OI/O接口的組成接口的組成5.1.1 外部設(shè)備及其信號外部設(shè)備及其信號 外部設(shè)備外部設(shè)備Peripheral Device)按照與按照與CPU數(shù)據(jù)傳

2、輸?shù)姆较騽澐謹?shù)據(jù)傳輸?shù)姆较騽澐?(1輸入設(shè)備輸入設(shè)備鍵盤、鼠標、光筆鍵盤、鼠標、光筆輸入圖形信息的掃描儀、數(shù)碼相機輸入圖形信息的掃描儀、數(shù)碼相機檢測現(xiàn)場信息的數(shù)字化測試儀表檢測現(xiàn)場信息的數(shù)字化測試儀表模擬量采集和模擬量數(shù)字量轉(zhuǎn)換裝置等模擬量采集和模擬量數(shù)字量轉(zhuǎn)換裝置等(2輸出設(shè)備輸出設(shè)備顯示器、打印機顯示器、打印機繪圖儀繪圖儀現(xiàn)場控制的數(shù)字量模擬量轉(zhuǎn)換裝置和執(zhí)行元件現(xiàn)場控制的數(shù)字量模擬量轉(zhuǎn)換裝置和執(zhí)行元件(3復(fù)合輸入輸出設(shè)備復(fù)合輸入輸出設(shè)備外存儲設(shè)備是典型的復(fù)合輸入輸出設(shè)備外存儲設(shè)備是典型的復(fù)合輸入輸出設(shè)備:磁帶機磁帶機Tape Driver)軟磁盤驅(qū)動器軟磁盤驅(qū)動器Floppy Driver

3、)硬磁盤驅(qū)動器硬磁盤驅(qū)動器Hard Disk Driver)光盤驅(qū)動器光盤驅(qū)動器Compact Disk Driver)許多光盤只能讀出信息,稱為許多光盤只能讀出信息,稱為CDROM (Compact DiskRead Only Memory),只讀光盤只能用作),只讀光盤只能用作輸入設(shè)備。輸入設(shè)備。2. 外部設(shè)備的信號外部設(shè)備的信號(1數(shù)據(jù)信號數(shù)據(jù)信號按照信號的物理形態(tài),可分為以下幾種;按照信號的物理形態(tài),可分為以下幾種;數(shù)字量:數(shù)字量: 以二進制形式表述的數(shù)據(jù)、圖形或文字以二進制形式表述的數(shù)據(jù)、圖形或文字信息。信息。模擬量:模擬量: 現(xiàn)場的物理量通過傳感器件,轉(zhuǎn)換為大現(xiàn)場的物理量通過傳感器

4、件,轉(zhuǎn)換為大小與之對應(yīng)的電壓或電流信號。這些量呈連續(xù)小與之對應(yīng)的電壓或電流信號。這些量呈連續(xù)變化的形態(tài),稱為模擬量變化的形態(tài),稱為模擬量Analog)。)。開關(guān)量:開關(guān)量: 開關(guān)量是只有二種狀態(tài)開關(guān)量是只有二種狀態(tài)0,1的量,的量,如開關(guān)的接通如開關(guān)的接通ON與斷開與斷開OFF),電機),電機的啟停等的啟停等脈沖量:脈沖量: 計數(shù)脈沖、定時脈沖和控制脈沖計數(shù)脈沖、定時脈沖和控制脈沖對于輸入設(shè)備,數(shù)據(jù)信號從外設(shè)送往對于輸入設(shè)備,數(shù)據(jù)信號從外設(shè)送往CPU對于輸出設(shè)備,數(shù)據(jù)信號從對于輸出設(shè)備,數(shù)據(jù)信號從CPU發(fā)往外部設(shè)發(fā)往外部設(shè)備。備。(2狀態(tài)信號狀態(tài)信號 狀態(tài)信號表明外部設(shè)備當(dāng)前的工作狀態(tài),用狀態(tài)

5、信號表明外部設(shè)備當(dāng)前的工作狀態(tài),用來協(xié)調(diào)來協(xié)調(diào)CPU與外部設(shè)備之間的操作。與外部設(shè)備之間的操作。典型的狀態(tài)信號:典型的狀態(tài)信號:READY, BUSY有的設(shè)備有指示出錯狀態(tài)的信號,如打印機的有的設(shè)備有指示出錯狀態(tài)的信號,如打印機的紙盡紙盡Paper Out),缺點),缺點Fault)。)。不同的外設(shè)可以有不同的狀態(tài)信號。不同的外設(shè)可以有不同的狀態(tài)信號。狀態(tài)信號總是從外部設(shè)備發(fā)往狀態(tài)信號總是從外部設(shè)備發(fā)往CPU。(3控制信號控制信號 控制信號是控制信號是CPU向外設(shè)發(fā)出的命令,它指定設(shè)向外設(shè)發(fā)出的命令,它指定設(shè)備的工作方式,啟動或停止設(shè)備備的工作方式,啟動或停止設(shè)備控制信號的格式因設(shè)備而異控制信

6、號的格式因設(shè)備而異控制信號從控制信號從CPU發(fā)往外部設(shè)備發(fā)往外部設(shè)備 數(shù)據(jù)信號、狀態(tài)信號、控制信號都是以數(shù)據(jù)信號、狀態(tài)信號、控制信號都是以“數(shù)數(shù)據(jù)的形式,通過數(shù)據(jù)總線在據(jù)的形式,通過數(shù)據(jù)總線在CPU和外部和外部設(shè)備之間進行傳輸?shù)?。設(shè)備之間進行傳輸?shù)摹?.1.2 I/O接口的功能接口的功能接口:計算機一個部件與另一個部件之間的連接口:計算機一個部件與另一個部件之間的連接界面。接界面。功能:功能:1. 設(shè)備選擇功能設(shè)備選擇功能CPU通過地址代碼來標識和選擇不同的外部設(shè)通過地址代碼來標識和選擇不同的外部設(shè)備備接口對系統(tǒng)總線上傳輸?shù)耐庠O(shè)地址進行譯碼,接口對系統(tǒng)總線上傳輸?shù)耐庠O(shè)地址進行譯碼,在檢測到本設(shè)

7、備地址代碼時,產(chǎn)生相應(yīng)的在檢測到本設(shè)備地址代碼時,產(chǎn)生相應(yīng)的“選中信號選中信號2. 信息傳輸功能信息傳輸功能設(shè)備被設(shè)備被“選中時選中時:從從CPU/數(shù)據(jù)總線接收數(shù)據(jù)或控制信息數(shù)據(jù)總線接收數(shù)據(jù)或控制信息外部設(shè)備的數(shù)據(jù)或狀態(tài)信息發(fā)往數(shù)據(jù)總線外部設(shè)備的數(shù)據(jù)或狀態(tài)信息發(fā)往數(shù)據(jù)總線/CPU3. 數(shù)據(jù)格式轉(zhuǎn)換功能數(shù)據(jù)格式轉(zhuǎn)換功能外設(shè)使用的數(shù)據(jù)格式與外設(shè)使用的數(shù)據(jù)格式與CPU數(shù)據(jù)格式不同時,接數(shù)據(jù)格式不同時,接口要進行二種數(shù)據(jù)格式之間的相互轉(zhuǎn)換。口要進行二種數(shù)據(jù)格式之間的相互轉(zhuǎn)換。聯(lián)絡(luò)功能聯(lián)絡(luò)功能從系統(tǒng)總線或外設(shè)接收一個數(shù)據(jù)后,發(fā)出從系統(tǒng)總線或外設(shè)接收一個數(shù)據(jù)后,發(fā)出“數(shù)據(jù)到數(shù)據(jù)到聯(lián)絡(luò)信號,通知外設(shè)或聯(lián)絡(luò)信

8、號,通知外設(shè)或CPU取走數(shù)據(jù)取走數(shù)據(jù)數(shù)據(jù)傳輸完成,向?qū)Ψ桨l(fā)出信號,準備進行下次傳數(shù)據(jù)傳輸完成,向?qū)Ψ桨l(fā)出信號,準備進行下次傳輸輸5. 中斷管理功能中斷管理功能向向CPU申請中斷;申請中斷;向向CPU發(fā)中斷類型號;發(fā)中斷類型號;中斷優(yōu)先權(quán)的管理;中斷優(yōu)先權(quán)的管理;在以在以8086為為CPU的系統(tǒng)中,這些功能大部份可以由的系統(tǒng)中,這些功能大部份可以由專門的中斷控制器實現(xiàn)。專門的中斷控制器實現(xiàn)。復(fù)位功能復(fù)位功能 接口在接收系統(tǒng)的復(fù)位信號后,將接口電路及接口在接收系統(tǒng)的復(fù)位信號后,將接口電路及其所連接的外部設(shè)備置成初始狀態(tài)。其所連接的外部設(shè)備置成初始狀態(tài)。7. 可編程功能可編程功能 有些接口具有可編程

9、特性,可以用指令來設(shè)定有些接口具有可編程特性,可以用指令來設(shè)定接口的工作方式、工作參數(shù)和信號的極性。接口的工作方式、工作參數(shù)和信號的極性。 錯誤檢測功能錯誤檢測功能 (1) 物理信道上的傳輸錯誤物理信道上的傳輸錯誤信號在線路上傳輸時,如果遇到干擾信號,可能信號在線路上傳輸時,如果遇到干擾信號,可能發(fā)生傳輸錯誤。發(fā)生傳輸錯誤。檢測傳輸錯誤的常見方法是奇偶檢驗。檢測傳輸錯誤的常見方法是奇偶檢驗。(2) 數(shù)據(jù)傳輸中的覆蓋錯誤數(shù)據(jù)傳輸中的覆蓋錯誤輸入設(shè)備完成一次輸入操作后,把所獲得的數(shù)據(jù)輸入設(shè)備完成一次輸入操作后,把所獲得的數(shù)據(jù)暫存在接口內(nèi)暫存在接口內(nèi)如果在該設(shè)備完成下一次輸入操作之后,如果在該設(shè)備完

10、成下一次輸入操作之后,CPU還還沒有從接口取走數(shù)據(jù),那么,在新的數(shù)據(jù)送入接沒有從接口取走數(shù)據(jù),那么,在新的數(shù)據(jù)送入接口后,上一次的數(shù)據(jù)被覆蓋,從而導(dǎo)致數(shù)據(jù)的丟口后,上一次的數(shù)據(jù)被覆蓋,從而導(dǎo)致數(shù)據(jù)的丟失失輸出操作中也可能產(chǎn)生類似的錯誤輸出操作中也可能產(chǎn)生類似的錯誤覆蓋錯誤導(dǎo)致數(shù)據(jù)的丟失,易發(fā)生在高速數(shù)據(jù)傳覆蓋錯誤導(dǎo)致數(shù)據(jù)的丟失,易發(fā)生在高速數(shù)據(jù)傳輸?shù)膱龊陷數(shù)膱龊?.1.3 I/O端口的編址方法端口的編址方法有兩種不同的有兩種不同的I/O端口編址方式:端口編址方式:1. I/O端口與內(nèi)存統(tǒng)一編址端口與內(nèi)存統(tǒng)一編址把內(nèi)存的一部分地址分配給把內(nèi)存的一部分地址分配給I/O端口,一個端口,一個8位位端口

11、占用一個內(nèi)存單元地址,也稱為存儲端口占用一個內(nèi)存單元地址,也稱為存儲器映射編址方式器映射編址方式優(yōu)點:優(yōu)點:訪問內(nèi)存單元和訪問內(nèi)存單元和I/O端口使用相同的指令,使端口使用相同的指令,使用方便用方便降低降低CPU電路的復(fù)雜性電路的復(fù)雜性缺陷:缺陷:減少了內(nèi)存可用范圍減少了內(nèi)存可用范圍難以區(qū)分訪問內(nèi)存和難以區(qū)分訪問內(nèi)存和I/O的指令,降低了程序的指令,降低了程序的可讀性和可維護性的可讀性和可維護性I/O端口與內(nèi)存獨立編址端口與內(nèi)存獨立編址內(nèi)存儲器和內(nèi)存儲器和I/O端口各自有自己獨立的地址空端口各自有自己獨立的地址空間間訪問訪問I/O端口需要專門的端口需要專門的I/O指令指令8086/8088 C

12、PU采用這種方式采用這種方式訪問內(nèi)存儲器訪問內(nèi)存儲器使用使用20根地址線根地址線A0A19使使M/IO#=1內(nèi)存地址范圍為內(nèi)存地址范圍為000000FFFFFH共共1MB訪問訪問I/O端口端口使用低使用低16根地址線根地址線A0A15使使M/IO#= 0I/O端口地址范圍為端口地址范圍為00000FFFFH共共64K3 IBM PC 微型計算機微型計算機I/O端口地址分配端口地址分配在在PC系列微機中,僅使用系列微機中,僅使用A0A9共共10條地址線定條地址線定義義I/O端口設(shè)端口設(shè)A11A15= 0),尋址范圍為),尋址范圍為03FFH前前256個端口地址供主板上尋址個端口地址供主板上尋址I

13、/O接口芯片使用,接口芯片使用,后后768個供擴展槽接口卡使用個供擴展槽接口卡使用用戶設(shè)計用戶設(shè)計I/O接口電路的時候,應(yīng)使用系統(tǒng)未占用接口電路的時候,應(yīng)使用系統(tǒng)未占用的端口地址區(qū)域的端口地址區(qū)域為避免所選擇的地址與其他擴展卡沖突,最好將其為避免所選擇的地址與其他擴展卡沖突,最好將其設(shè)計成地址可選的型式設(shè)計成地址可選的型式IBM-PC微機系統(tǒng)板各微機系統(tǒng)板各I/O接口器件端口地址見表接口器件端口地址見表5-1。5.1.4 簡單簡單I/O接口的組成接口的組成 端口端口 端口:接口內(nèi)的寄存器,用來暫存端口:接口內(nèi)的寄存器,用來暫存CPU和外設(shè)和外設(shè)之間傳輸?shù)臄?shù)據(jù)、狀態(tài)和命令。之間傳輸?shù)臄?shù)據(jù)、狀態(tài)和

14、命令。端口地址:每一個端口有一個獨立的地址。端口地址:每一個端口有一個獨立的地址。外部設(shè)備地址:設(shè)備接口內(nèi)各端口的地址,一外部設(shè)備地址:設(shè)備接口內(nèi)各端口的地址,一臺外部設(shè)備可以擁有幾個通常是相鄰的端臺外部設(shè)備可以擁有幾個通常是相鄰的端口地址??诘刂贰6丝诜N類:數(shù)據(jù)端口、命令端口控制端口端口種類:數(shù)據(jù)端口、命令端口控制端口和狀態(tài)端口。和狀態(tài)端口。如果外部設(shè)備的信息數(shù)據(jù)如果外部設(shè)備的信息數(shù)據(jù)/形狀已經(jīng)鎖存,形狀已經(jīng)鎖存,端口也可以由三態(tài)緩沖電路組成。端口也可以由三態(tài)緩沖電路組成。 地址譯碼電路地址譯碼電路 地址譯碼是接口的基本功能之一。地址譯碼是接口的基本功能之一。一個接口上的幾個端口地址通常是連

15、續(xù)排列的,一個接口上的幾個端口地址通常是連續(xù)排列的,可以把可以把16位地址碼分解為二個部分:位地址碼分解為二個部分:高位地址碼用作對接口的選擇;高位地址碼用作對接口的選擇;低位地址碼用來選擇接口內(nèi)不同的端口。低位地址碼用來選擇接口內(nèi)不同的端口。例如:某接口占有地址例如:某接口占有地址330H333H:高高8位地址為位地址為11001100B時,本接口被選中;時,本接口被選中;低低2位地址為位地址為00,01,10,11時,選擇接口內(nèi)的不時,選擇接口內(nèi)的不同端口。同端口。圖圖5-1 端口的地址譯碼電路和跳線器端口的地址譯碼電路和跳線器為了避免地址沖突,許多接口電路允許用為了避免地址沖突,許多接口

16、電路允許用“跳線器跳線器JUMPER)”改變端口地址。上頁圖改變端口地址。上頁圖3-1b)將異或門的輸出代替圖將異或門的輸出代替圖3-1a中的中的A8,A9引腳:引腳:二個跳線引腳均接地時,上面譯碼電路仍然產(chǎn)生二個跳線引腳均接地時,上面譯碼電路仍然產(chǎn)生330H333H的端口譯碼信號;的端口譯碼信號;當(dāng)二個跳線引腳均接當(dāng)二個跳線引腳均接“1時,上面譯碼電路會產(chǎn)生時,上面譯碼電路會產(chǎn)生030H033H的端口譯碼信號的端口譯碼信號同理還可以產(chǎn)生同理還可以產(chǎn)生130H133H,230H233H的譯碼信號。的譯碼信號。8086工作于最大模式時,上面的工作于最大模式時,上面的M/IO#、WR#、RD#信信

17、號由號由8288總線控制器發(fā)出的總線控制器發(fā)出的IORC#、IOWC#替代。替代。由于讀、寫操作不會同時進行,一個輸入端口和另一個輸由于讀、寫操作不會同時進行,一個輸入端口和另一個輸出端口可以使用同一個地址編碼。出端口可以使用同一個地址編碼。例如,可安排數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口使用同一個地例如,可安排數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口使用同一個地址址330H,命令端口和狀態(tài)端口共同使用地址,命令端口和狀態(tài)端口共同使用地址331H。需要注意的是,數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口雖然使用相需要注意的是,數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口雖然使用相同的地址,但卻是二個各自獨立的不同的端口。同的地址,但卻是二個各自獨立的

18、不同的端口。數(shù)據(jù)鎖存器與緩沖器數(shù)據(jù)鎖存器與緩沖器數(shù)據(jù)數(shù)據(jù)(形狀形狀)輸入端口:輸入端口:必須通過三態(tài)緩沖器與系統(tǒng)總線相連,保必須通過三態(tài)緩沖器與系統(tǒng)總線相連,保證數(shù)據(jù)總線能夠正常地進行數(shù)據(jù)傳送。證數(shù)據(jù)總線能夠正常地進行數(shù)據(jù)傳送。輸入設(shè)備在完成一次輸入操作后,在輸出輸入設(shè)備在完成一次輸入操作后,在輸出數(shù)據(jù)的同時,產(chǎn)生數(shù)據(jù)選通信號,把數(shù)據(jù)數(shù)據(jù)的同時,產(chǎn)生數(shù)據(jù)選通信號,把數(shù)據(jù)打入八位鎖存器打入八位鎖存器74LS273鎖存器的輸出信號通過三態(tài)八位緩沖器鎖存器的輸出信號通過三態(tài)八位緩沖器74LS244連接到系統(tǒng)數(shù)據(jù)總線。連接到系統(tǒng)數(shù)據(jù)總線。數(shù)據(jù)端口讀信號由地址譯碼電路產(chǎn)生。數(shù)據(jù)端口讀信號由地址譯碼電路產(chǎn)

19、生。高電平無效):緩沖器輸出端呈高阻態(tài)。高電平無效):緩沖器輸出端呈高阻態(tài)。低電平有效,端口被選中低電平有效,端口被選中 ):已鎖存的):已鎖存的數(shù)據(jù)通過數(shù)據(jù)通過74LS244送往系統(tǒng)數(shù)據(jù)總線,被送往系統(tǒng)數(shù)據(jù)總線,被CPU所接收。所接收。圖圖5-3 輸入設(shè)備接口的數(shù)據(jù)鎖存和緩沖電路輸入設(shè)備接口的數(shù)據(jù)鎖存和緩沖電路數(shù)據(jù)命令輸出端口:數(shù)據(jù)命令輸出端口:CPU送往外設(shè)的數(shù)據(jù)或命令,應(yīng)由接口進行鎖送往外設(shè)的數(shù)據(jù)或命令,應(yīng)由接口進行鎖存,以便使外設(shè)有充分的時間接收和處理。存,以便使外設(shè)有充分的時間接收和處理。八位輸出鎖存電路例圖八位輸出鎖存電路例圖5-4)。)。圖圖5-4 輸出鎖存電路輸出鎖存電路簡單的

20、輸入輸出接口圖簡單的輸入輸出接口圖5-5)把地址譯碼、數(shù)據(jù)鎖存與緩沖、狀態(tài)寄存器、把地址譯碼、數(shù)據(jù)鎖存與緩沖、狀態(tài)寄存器、命令寄存器各個電路組合起來,構(gòu)成簡單命令寄存器各個電路組合起來,構(gòu)成簡單輸入輸出接口輸入輸出接口接口連接的信號:接口連接的信號:與系統(tǒng)總線連接:與系統(tǒng)總線連接:地址總線地址總線A0A15數(shù)據(jù)總線數(shù)據(jù)總線D0D7控制總線控制總線M/IO#、RD# 、WR# (最小模式時(最小模式時或或IOWC#、IORC#(最大模式時相連接(最大模式時相連接與外部設(shè)備相連:數(shù)據(jù)、形狀、命令。與外部設(shè)備相連:數(shù)據(jù)、形狀、命令。圖圖5-5 簡單接口的組成簡單接口的組成5.2 輸入輸出數(shù)據(jù)傳輸?shù)目?/p>

21、制方式輸入輸出數(shù)據(jù)傳輸?shù)目刂品绞?5.2.1 5.2.1 程序方式程序方式 5.2.2 5.2.2 中斷方式中斷方式5.2.3 5.2.3 直接存儲器存取直接存儲器存取(DMA)(DMA)方式方式5.2.1 程序方式程序方式 在程序控制下進行信息傳送在程序控制下進行信息傳送分為無條件傳送和條件傳送二種分為無條件傳送和條件傳送二種1 無條件傳送方式無條件傳送方式對于簡單的外部設(shè)備的對于簡單的外部設(shè)備的IO操作可以隨操作可以隨時進行;時進行;例如,開關(guān)、發(fā)光二極管例如,開關(guān)、發(fā)光二極管這些簡單設(shè)備的輸入信號一般不需要鎖這些簡單設(shè)備的輸入信號一般不需要鎖存,可以通過三態(tài)緩沖器與系統(tǒng)數(shù)據(jù)存,可以通過三

22、態(tài)緩沖器與系統(tǒng)數(shù)據(jù)總線直接相連??偩€直接相連。簡單輸出設(shè)備的信號一般需要由鎖存器簡單輸出設(shè)備的信號一般需要由鎖存器鎖存鎖存圖圖5-6 無條件輸入輸出傳送接口無條件輸入輸出傳送接口條件傳送方式條件傳送方式條件傳送也稱為查詢式傳送、異步傳送;條件傳送也稱為查詢式傳送、異步傳送;接口電路除了有傳送數(shù)據(jù)的端口以外,還應(yīng)有接口電路除了有傳送數(shù)據(jù)的端口以外,還應(yīng)有儲存和傳送狀態(tài)的端口。儲存和傳送狀態(tài)的端口。對于輸入過程:對于輸入過程:外設(shè)將數(shù)據(jù)準備好,外設(shè)將數(shù)據(jù)準備好, “準備好準備好READY)”標志位置標志位置1;CPU將數(shù)據(jù)取走,將數(shù)據(jù)取走,READY=0對于輸出過程對于輸出過程:外設(shè)接收到數(shù)據(jù),將

23、外設(shè)接收到數(shù)據(jù),將“忙忙BUSY)”標志位標志位置置1數(shù)據(jù)輸出完成,將數(shù)據(jù)輸出完成,將 “BUSY清零。清零。一個數(shù)據(jù)的一個數(shù)據(jù)的“條件傳送過程:條件傳送過程:CPU從接口中讀取狀態(tài)字;從接口中讀取狀態(tài)字;CPU檢測狀態(tài)字的對應(yīng)位是否滿足檢測狀態(tài)字的對應(yīng)位是否滿足“就緒條就緒條件,如果不滿足,則回到前一步重新讀取件,如果不滿足,則回到前一步重新讀取狀態(tài)字;狀態(tài)字;如狀態(tài)字表明外設(shè)已處于如狀態(tài)字表明外設(shè)已處于“就緒形狀,則傳就緒形狀,則傳送數(shù)據(jù)。送數(shù)據(jù)。 圖圖5-9 查詢式輸入流程查詢式輸入流程查詢方式輸入接口電路圖查詢方式輸入接口電路圖5-75-7)接口內(nèi)有兩個端口:接口內(nèi)有兩個端口:數(shù)據(jù)端口

24、數(shù)據(jù)端口8 8位,輸入)位,輸入)狀態(tài)端口狀態(tài)端口1 1位,輸入,連接在位,輸入,連接在D7D7上,上,=1=1表示表示有數(shù)據(jù))有數(shù)據(jù))選通信號有二個作用:選通信號有二個作用:將外設(shè)的數(shù)據(jù)送到接口的鎖存器中;將外設(shè)的數(shù)據(jù)送到接口的鎖存器中;使接口中的使接口中的D D觸發(fā)器置觸發(fā)器置“l(fā)”“l(fā)”(READY=1READY=1)數(shù)據(jù)信息和狀態(tài)信息從不同端口經(jīng)過數(shù)據(jù)總線數(shù)據(jù)信息和狀態(tài)信息從不同端口經(jīng)過數(shù)據(jù)總線送到送到CPUCPU。圖圖5-7 5-7 查詢式輸入接口電路查詢式輸入接口電路匯編語言程序:匯編語言程序: AGAIN: IN AL, STAT_PORT; 讀狀態(tài)端口,讀狀態(tài)端口,D7=1表示

25、表示“數(shù)據(jù)就緒數(shù)據(jù)就緒” TEST AL,80H; 測試測試“數(shù)據(jù)就緒位數(shù)據(jù)就緒位 JZ AGAIN; 未就緒,繼續(xù)讀狀態(tài)端口未就緒,繼續(xù)讀狀態(tài)端口 IN AL, DATA_PORT; 已就緒,從數(shù)據(jù)端已就緒,從數(shù)據(jù)端口讀取數(shù)據(jù)口讀取數(shù)據(jù) C語言程序:語言程序:do stat = inportb( stat_port ); while (stat & 0 x80 = = 0); /* 數(shù)據(jù)未準備好反數(shù)據(jù)未準備好反復(fù)讀狀態(tài)復(fù)讀狀態(tài) */data = inportb( data_port ); /* 數(shù)據(jù)已準備好數(shù)據(jù)已準備好則讀取數(shù)據(jù)則讀取數(shù)據(jù) */查詢方式輸出接口電路查詢方式輸出接口電路

26、( (圖圖5-85-8)接口內(nèi)有兩個端口:接口內(nèi)有兩個端口:數(shù)據(jù)端口數(shù)據(jù)端口8 8位,輸出)位,輸出)狀態(tài)端口狀態(tài)端口1 1位,輸入,連接在位,輸入,連接在D7D7上,上,=1=1表示正表示正在輸出,在輸出,“BUSY”“BUSY”)CPUCPU讀取接口中的狀態(tài):讀取接口中的狀態(tài):外設(shè)忙(外設(shè)忙( BUSY =1 BUSY =1),),CPUCPU等待等待 外設(shè)空閑(外設(shè)空閑( BUSY =0 BUSY =0),向外設(shè)輸出數(shù)據(jù)),向外設(shè)輸出數(shù)據(jù)圖圖5-8 5-8 查詢式輸出接口電路查詢式輸出接口電路“數(shù)據(jù)端口寫數(shù)據(jù)端口寫信號作用:信號作用:把數(shù)據(jù)打入把數(shù)據(jù)打入“鎖存器鎖存器”;將將“狀態(tài)觸發(fā)器

27、狀態(tài)觸發(fā)器置置1D觸發(fā)器的作用:觸發(fā)器的作用:為外設(shè)提供一個聯(lián)絡(luò)信號為外設(shè)提供一個聯(lián)絡(luò)信號STB,告訴外設(shè)現(xiàn)在接,告訴外設(shè)現(xiàn)在接口中已有數(shù)據(jù)可供提取;口中已有數(shù)據(jù)可供提??;用作該設(shè)備的狀態(tài)標志(用作該設(shè)備的狀態(tài)標志( “忙忙”,BUSY)。)。匯編語言程序:匯編語言程序:ONE: IN AL, STATUS_PORT ; 讀狀態(tài)端口讀狀態(tài)端口TESTAL, 80H ; 測試測試“忙位忙位 JNZ ONE ; 忙,再讀狀態(tài)端口忙,再讀狀態(tài)端口 MOV AL, DATA ; 不忙,取來數(shù)不忙,取來數(shù)據(jù)據(jù)OUT DATA_PORT, AL ; 送入數(shù)據(jù)端口送入數(shù)據(jù)端口C語言程序:語言程序:do st

28、at = inportb( status_port ); while ( stat & 0 x80 = = 0 x80 ); /*設(shè)備設(shè)備“忙忙”:反復(fù)反復(fù)讀狀態(tài)讀狀態(tài)*/outportb( data_port, data ); /*設(shè)備空閑設(shè)備空閑:輸出數(shù)據(jù)輸出數(shù)據(jù) */查詢式輸入輸出的程序設(shè)計例查詢式輸入輸出的程序設(shè)計例某字符輸入設(shè)備以查詢方式工作:某字符輸入設(shè)備以查詢方式工作:數(shù)據(jù)輸入端口:數(shù)據(jù)輸入端口: 0054H,狀態(tài)端口:狀態(tài)端口: 0056H。狀態(tài)寄存器:狀態(tài)寄存器:D0=1,數(shù)據(jù)準備好,可以輸入;,數(shù)據(jù)準備好,可以輸入;狀態(tài)寄存器:狀態(tài)寄存器:D1=1,輸入設(shè)備發(fā)生故障

29、,輸入設(shè)備發(fā)生故障要求:要求:從該設(shè)備上輸入從該設(shè)備上輸入80個字符,配上水平和垂直校驗個字符,配上水平和垂直校驗碼偶校驗),向串行口輸出。碼偶校驗),向串行口輸出。如果設(shè)備出錯,顯示錯誤信息后停止。如果設(shè)備出錯,顯示錯誤信息后停止。匯編語言程序:匯編語言程序: .dataBuffer DB 81 dup( ? ) Message DB Device Fault !,0DH,0AH,$ .codeStart:MOV AX,data ;對;對DS初始化初始化 MOV DS,AX LEA SI, Buffer ;設(shè)置;設(shè)置SI為緩沖區(qū)指針為緩沖區(qū)指針 MOV CX, 80;設(shè)置;設(shè)置CX為計數(shù)為計

30、數(shù)器器 MOVDL, 0 ;DL置垂直校驗碼初值置垂直校驗碼初值 Next:IN AL, 56H ;讀入狀態(tài);讀入狀態(tài) TEST AL,02H ;測狀態(tài)寄存器;測狀態(tài)寄存器D1 JNZ ERROR ;設(shè)備故障,轉(zhuǎn);設(shè)備故障,轉(zhuǎn)ERROR TEST AL, 01H ;測狀態(tài)寄存器;測狀態(tài)寄存器D0JZ Next;未準備好,則等待,再測;未準備好,則等待,再測 IN AL,54H ;準備好;準備好, 輸入字符輸入字符AND AL, 7FH ;清最高位,進行校驗;清最高位,進行校驗JPE Store ;已經(jīng)是偶數(shù)個;已經(jīng)是偶數(shù)個1,則轉(zhuǎn),則轉(zhuǎn)Store ORAL,80H ;奇數(shù)個;奇數(shù)個1,將最高位

31、置為,將最高位置為1Store: XOR DL,AL ;產(chǎn)生垂直校驗碼;產(chǎn)生垂直校驗碼MOV SI, AL ;將字符送緩沖區(qū);將字符送緩沖區(qū) INC SI ;修改地址指針;修改地址指針LOOP Next ;80個字符未輸入完成,繼續(xù)個字符未輸入完成,繼續(xù)MOV SI, DL ; 輸入完成輸入完成, 保存垂直校驗碼保存垂直校驗碼Tranfer:LEA SI,Buffer;準備發(fā)送;準備發(fā)送,SI中置字符串首址中置字符串首址 MOV CX,81 ;發(fā)送字符數(shù);發(fā)送字符數(shù)One:MOV AH,04H ;設(shè)置串口輸出功能號;設(shè)置串口輸出功能號MOV DL, SI ;取出一個字符;取出一個字符INT 2

32、1H;從串口輸出;從串口輸出 INC SI;修改指針;修改指針 LOOP One ;輸出下一個字符;輸出下一個字符JMP Done Error: MOV AH, 09H;設(shè)備故障,輸出出錯信息;設(shè)備故障,輸出出錯信息LEA DX, Message INT 21HDone: MOV AH, 4CHINT 21H;返回;返回DOSEND Start闡明:闡明:程序由二段循環(huán)程序組成:程序由二段循環(huán)程序組成:第一段程序從設(shè)備輸入第一段程序從設(shè)備輸入80個字符,同時產(chǎn)生它的水個字符,同時產(chǎn)生它的水平平/垂直校驗碼存入緩沖區(qū);垂直校驗碼存入緩沖區(qū);第二段程序?qū)⒕彌_區(qū)內(nèi)容通過串口輸出。第二段程序?qū)⒕彌_區(qū)內(nèi)

33、容通過串口輸出。測試狀態(tài)位要注意先后次序:測試狀態(tài)位要注意先后次序:由于設(shè)備故障將導(dǎo)致該設(shè)備不能正常輸入,使完由于設(shè)備故障將導(dǎo)致該設(shè)備不能正常輸入,使完成標志成標志D0恒為零。所以,在設(shè)備發(fā)生故障時恒為零。所以,在設(shè)備發(fā)生故障時先判是否完成可能導(dǎo)致程序死循環(huán)。先判是否完成可能導(dǎo)致程序死循環(huán)。產(chǎn)生水平校驗碼:從設(shè)備讀入數(shù)據(jù),清除最高位,產(chǎn)生水平校驗碼:從設(shè)備讀入數(shù)據(jù),清除最高位,根據(jù)剩余七位的奇偶特性決定最高位置根據(jù)剩余七位的奇偶特性決定最高位置1或不變或不變保持為保持為0)。)。產(chǎn)生垂直校驗碼:將產(chǎn)生垂直校驗碼:將80個字節(jié)半加異或得到。個字節(jié)半加異或得到。 多個設(shè)備循環(huán)查詢方法舉例:多個設(shè)備

34、循環(huán)查詢方法舉例: 三個設(shè)備,它們狀態(tài)端口地址分別為三個設(shè)備,它們狀態(tài)端口地址分別為STATl、STAT2、STAT3,三個狀態(tài)端口均使用第,三個狀態(tài)端口均使用第5位位作為準備好標志。作為準備好標志。 TREE: MOV FLAG,0INPUT: IN AL,STAT l TEST AL,20H JZ DEV2 CALL PROC lDEV2: IN AL,STAT2 TEST AL,20H JZ DEV3 CALL PROC2DEV3; IN AL,STAT3 TEST AL,20H JZ NOINPUT CALL PROC3NOINPUT:CMP FLAG,07H JNE INPUT闡明:

35、闡明:PROCl、PROC2、PROC3是三個設(shè)備輸入是三個設(shè)備輸入數(shù)據(jù)并進行處理的子程序。數(shù)據(jù)并進行處理的子程序。FLAG存放三個設(shè)備輸入完成的標志,存放三個設(shè)備輸入完成的標志,D0, D1, D2分別代表一個設(shè)備的輸入完成情分別代表一個設(shè)備的輸入完成情況(況(=0表示未完成,表示未完成,=1表示完成)。表示完成)。上例僅適用于三個設(shè)備工作速度都比較慢的上例僅適用于三個設(shè)備工作速度都比較慢的情況;情況;如果其中一個設(shè)備工作速度很快,而其他設(shè)如果其中一個設(shè)備工作速度很快,而其他設(shè)備的輸入輸出處理程序運行時間又較長,備的輸入輸出處理程序運行時間又較長,可能發(fā)生可能發(fā)生“覆蓋錯誤覆蓋錯誤”。在這種

36、情況下,應(yīng)優(yōu)先執(zhí)行工作速度較快的在這種情況下,應(yīng)優(yōu)先執(zhí)行工作速度較快的外設(shè)的外設(shè)的IO過程,然后再執(zhí)行其他設(shè)備過程,然后再執(zhí)行其他設(shè)備的的IO過程。過程。5.2.2 中斷方式中斷方式程序查詢方式的特點:程序查詢方式的特點:程序查詢方式解決了程序查詢方式解決了CPU與外設(shè)工作的與外設(shè)工作的協(xié)調(diào)問題,但是卻大大降低了協(xié)調(diào)問題,但是卻大大降低了CPU的的使用效率;使用效率;在程序查詢方式中,在程序查詢方式中,CPU處于主動地位,處于主動地位,外設(shè)處于消極等待查詢的被動地位;外設(shè)處于消極等待查詢的被動地位;設(shè)備較多時,查詢方式的數(shù)據(jù)傳送很難設(shè)備較多時,查詢方式的數(shù)據(jù)傳送很難使每一個外設(shè)都能工作在最佳狀

37、態(tài)。使每一個外設(shè)都能工作在最佳狀態(tài)。程序中斷方式特點:程序中斷方式特點:賦予系統(tǒng)中的外設(shè)某種主動申請、配合賦予系統(tǒng)中的外設(shè)某種主動申請、配合CPU工作的工作的“權(quán)益權(quán)益”。外設(shè)把數(shù)據(jù)準備好時,主動向外設(shè)把數(shù)據(jù)準備好時,主動向CPU發(fā)出一發(fā)出一個請求信號。個請求信號。CPU接收到請求信號后,暫停當(dāng)前的工作,接收到請求信號后,暫停當(dāng)前的工作,進行該設(shè)備的數(shù)據(jù)傳送操作。進行該設(shè)備的數(shù)據(jù)傳送操作。賦予外設(shè)賦予外設(shè) “主動權(quán)之后,主動權(quán)之后,CPU可以不必可以不必反復(fù)查詢該設(shè)備的狀態(tài),而是正常地處反復(fù)查詢該設(shè)備的狀態(tài),而是正常地處理系統(tǒng)任務(wù);理系統(tǒng)任務(wù);CPU與外設(shè)處于某種與外設(shè)處于某種“并行工作的狀態(tài)

38、,并行工作的狀態(tài),從而提高從而提高CPU的工作效率。的工作效率。中斷方式舉例:中斷方式舉例:某外設(shè)在某外設(shè)在1秒內(nèi)傳送秒內(nèi)傳送100個字節(jié)。個字節(jié)。若用程序查詢的方式傳送,則若用程序查詢的方式傳送,則CPU為傳送為傳送100個字節(jié)所化費的時間等于個字節(jié)所化費的時間等于1秒。秒。用中斷控制方式傳送,用中斷控制方式傳送,CPU為執(zhí)行一個字節(jié)為執(zhí)行一個字節(jié)的傳送需要進入一次中斷服務(wù)程序。的傳送需要進入一次中斷服務(wù)程序。設(shè)設(shè)CPU執(zhí)行一次中斷服務(wù)程序需要執(zhí)行一次中斷服務(wù)程序需要100s;傳遞傳遞100個字節(jié)個字節(jié)CPU所使用的時間為所使用的時間為100s100=10ms;CPU處理中斷開銷為處理中斷開

39、銷為1,99的時間可執(zhí)的時間可執(zhí)行其他任務(wù);行其他任務(wù);中斷方式的數(shù)據(jù)傳送仍在程序的控制下執(zhí)行,中斷方式的數(shù)據(jù)傳送仍在程序的控制下執(zhí)行,稱為程序中斷方式;稱為程序中斷方式;適應(yīng)于中、慢速的外部設(shè)備數(shù)據(jù)傳送。適應(yīng)于中、慢速的外部設(shè)備數(shù)據(jù)傳送。 3.2.3 直接存儲器存取直接存儲器存取(DMA)方式方式程序中斷方式,程序查詢方式的缺點:程序中斷方式,程序查詢方式的缺點:中斷方式:中斷方式:每傳送一次數(shù)據(jù),每傳送一次數(shù)據(jù),CPU必須執(zhí)行一次中必須執(zhí)行一次中斷服務(wù)程序;斷服務(wù)程序;對于高速數(shù)據(jù)傳輸,容易產(chǎn)生對于高速數(shù)據(jù)傳輸,容易產(chǎn)生“覆蓋錯覆蓋錯誤誤”。程序查詢方式:程序查詢方式:響應(yīng)速度比中斷方式要

40、快一些,完成一響應(yīng)速度比中斷方式要快一些,完成一次數(shù)據(jù)傳輸仍然需要執(zhí)行七、八條以次數(shù)據(jù)傳輸仍然需要執(zhí)行七、八條以上的指令。上的指令。CPU的工作速度不高時仍有可能跟不上的工作速度不高時仍有可能跟不上外設(shè)數(shù)據(jù)傳輸?shù)男枰M庠O(shè)數(shù)據(jù)傳輸?shù)男枰?直接存儲器傳送直接存儲器傳送(Direct Memory AccessDMA)將外設(shè)的數(shù)據(jù)不經(jīng)過將外設(shè)的數(shù)據(jù)不經(jīng)過CPU直接送入內(nèi)存儲器;直接送入內(nèi)存儲器;或者,從內(nèi)存儲器不經(jīng)過或者,從內(nèi)存儲器不經(jīng)過CPU直接送往外部直接送往外部設(shè)備;設(shè)備;一次一次DMA傳送只需要執(zhí)行一個傳送只需要執(zhí)行一個DMA周期周期相當(dāng)于一個總線讀寫周期);相當(dāng)于一個總線讀寫周期);能

41、夠滿足高速外設(shè)數(shù)據(jù)傳輸?shù)男枰?;能夠滿足高速外設(shè)數(shù)據(jù)傳輸?shù)男枰?;需要一個專門的器件來協(xié)調(diào)外設(shè)接口和內(nèi)存需要一個專門的器件來協(xié)調(diào)外設(shè)接口和內(nèi)存儲器的數(shù)據(jù)傳輸,稱為儲器的數(shù)據(jù)傳輸,稱為DMA控制器控制器DMAC)圖圖5-10 DMA數(shù)據(jù)傳送示意圖數(shù)據(jù)傳送示意圖5.3 開關(guān)量輸入輸出接口開關(guān)量輸入輸出接口 5.3.1 5.3.1 開關(guān)量輸入接口開關(guān)量輸入接口 5.3.2 5.3.2 開關(guān)量輸出接口開關(guān)量輸出接口 5.3.1 開關(guān)量輸入接口開關(guān)量輸入接口 1 基本的開關(guān)量輸入接口基本的開關(guān)量輸入接口開關(guān)形態(tài):單刀單擲開關(guān)開關(guān)形態(tài):單刀單擲開關(guān)/單刀雙擲開單刀雙擲開關(guān)關(guān)/按鈕按鈕開關(guān)量通過三態(tài)緩沖器與系統(tǒng)

42、數(shù)據(jù)總線開關(guān)量通過三態(tài)緩沖器與系統(tǒng)數(shù)據(jù)總線連接連接常用的三態(tài)緩沖器:常用的三態(tài)緩沖器: 74LS244輸入輸出同相)輸入輸出同相)/74LS240輸入輸出反相)輸入輸出反相)一條輸入指令可以同時讀入一條輸入指令可以同時讀入8位或位或16位位開關(guān)量。開關(guān)量。圖圖5-11 基本開關(guān)量輸入接口基本開關(guān)量輸入接口2 矩陣式開關(guān)量輸入接口矩陣式開關(guān)量輸入接口開關(guān)數(shù)量多時,可以排列成矩陣,例如:圖開關(guān)數(shù)量多時,可以排列成矩陣,例如:圖5-12鍵盤)鍵盤)數(shù)據(jù)輸出端口連接數(shù)據(jù)輸出端口連接8根根“行線行線”(Row,R0R7);數(shù)據(jù)輸入端口連接數(shù)據(jù)輸入端口連接8根根“列線列線”(Column, C0C7);電

43、路特點:電路特點:沒有鍵按下時,列線端口輸入為全沒有鍵按下時,列線端口輸入為全“1”;行線端口輸出全行線端口輸出全“1時,不論有無鍵按下,列時,不論有無鍵按下,列線端口輸入仍然為全線端口輸入仍然為全“1”;某一行線輸出某一行線輸出“0時,如果該行上有一個鍵按時,如果該行上有一個鍵按下,則輸入端口輸入代碼為下,則輸入端口輸入代碼為7個個“1”,1個個“0”,0的位置與被按下鍵的位置相對應(yīng)。的位置與被按下鍵的位置相對應(yīng)。圖圖5-12 鍵盤鍵盤(矩陣式開關(guān)量輸入矩陣式開關(guān)量輸入)接口接口鍵盤掃描與編碼:鍵盤掃描與編碼:對對8根行線逐行掃描,識別按鍵的所在行、列,根行線逐行掃描,識別按鍵的所在行、列,

44、從而獲得該鍵的代碼從而獲得該鍵的代碼;一個鍵的編碼可以用它的二字節(jié)一個鍵的編碼可以用它的二字節(jié)“行列碼表示。行列碼表示。例如,(例如,(R3,C2的二字節(jié)的二字節(jié)“行列碼為行列碼為F7FBH:F7H=11110111 :按鍵在:按鍵在R3行上;行上;FBH=11111011 :按鍵在:按鍵在C2列上;列上;用用“行列碼查表,可以得到這個鍵的代碼。行列碼查表,可以得到這個鍵的代碼。鍵的編碼也可以用一字節(jié)鍵的編碼也可以用一字節(jié)“掃描碼表示。上例掃描碼表示。上例中按鍵的一字節(jié)中按鍵的一字節(jié)“掃描碼為掃描碼為32H:高高4位位0011:鍵所在的行;:鍵所在的行;低低4位位0010:鍵所在的列;:鍵所在

45、的列;鍵剛按下時,會產(chǎn)生鍵剛按下時,會產(chǎn)生“抖動抖動”。鍵盤掃描程序:鍵盤掃描程序:沒有鍵被按下,前往沒有鍵被按下,前往1 1;有鍵按下時返回按鍵的二字節(jié)有鍵按下時返回按鍵的二字節(jié)“行列碼行列碼”(行(行碼為高碼為高8 8位,列碼為低位,列碼為低8 8位);位);RPORT, CPORT RPORT, CPORT 定義為行、列端口的地址。定義為行、列端口的地址。 unsigned int kbinput( )unsigned int kbinput( ) unsigned int row, row0, column, code, unsigned int row, row0, column,

46、code, k=0;k=0; outportb( RPORT, 0); / outportb( RPORT, 0); /* *各行輸出全各行輸出全0,0,測試有無鍵按下測試有無鍵按下* */ / if (inportb(CPORT) & 0 xff = = 0 xff ) if (inportb(CPORT) & 0 xff = = 0 xff ) return( 0 xffff ); return( 0 xffff ); / /* * 沒有鍵按下,返回全沒有鍵按下,返回全“1” “1” * */ / delay(20); delay(20); / /* * 延時延時20ms2

47、0ms,消除抖動消除抖動 * */ / if (inportb(CPORT) & 0 xff = =0 xff ) return( 0 xffff ); /* 再次測試,確認有鍵被按下再次測試,確認有鍵被按下 */ row0 = row = 0 xff7f; column = 0 xff; k=0; /* 置行碼初值置行碼初值:從最高位對應(yīng)行開始逐行掃描從最高位對應(yīng)行開始逐行掃描 */ while( k 1) ; k+; /* 形成下一個行碼形成下一個行碼 */ if (column = = 0 xff ) return( 0 xffff ); /* 未找到按鍵所在行,返回全未找到按鍵

48、所在行,返回全“1” */ code = (row0 & 0 xff)* 0 x100 + column; /* 由行碼、列碼組合得到由行碼、列碼組合得到“行列碼行列碼” */ return (code );5.3.2 開關(guān)量輸出接口開關(guān)量輸出接口1 基本的開關(guān)量輸出接口基本的開關(guān)量輸出接口常見的開關(guān)量輸出:常見的開關(guān)量輸出:LED發(fā)光二極管發(fā)光二極管LED指示燈用于指示室內(nèi)儀表狀態(tài)指示燈用于指示室內(nèi)儀表狀態(tài)小功率小功率LED可以由邏輯電路直接驅(qū)動:可以由邏輯電路直接驅(qū)動:輸出輸出0:LED發(fā)光發(fā)光輸出輸出1:LED熄滅熄滅執(zhí)行元件驅(qū)動線圈執(zhí)行元件驅(qū)動線圈器件型號器件型號高電平輸出電流

49、高電平輸出電流 低電平吸收電流低電平吸收電流74LS00,04,10,20,30(邏輯門)400A8mA74LS01,03,05,12,22(OC門)100A8mA7407(OC驅(qū)動器)250A40mA(Voh=30V)74LS244(總線驅(qū)動器)15mA24mA74LS273(D觸發(fā)器)400A8mA74LS373(三態(tài)輸出鎖存器)2.6mA24mA表表5-3 部分邏輯電路輸出端電流部分邏輯電路輸出端電流Di+5V+12V+5VDiDi(a)小功率LED用邏輯門驅(qū)動 (b)外接功率放大三極管驅(qū)動+15VDiDi+15V(c)用集電極開路驅(qū)動器(OC門)驅(qū)動大功率大功率LEDLED驅(qū)動或執(zhí)行元

50、件驅(qū)動線圈的驅(qū)動驅(qū)動或執(zhí)行元件驅(qū)動線圈的驅(qū)動: : 普通邏輯電路輸出,外接功率放大三極管驅(qū)動;普通邏輯電路輸出,外接功率放大三極管驅(qū)動; 集電極開路驅(qū)動器集電極開路驅(qū)動器OCOC驅(qū)動器),輸出端通過上拉驅(qū)動器),輸出端通過上拉 電阻接高壓。電阻接高壓。2 LED七段數(shù)碼顯示管接口七段數(shù)碼顯示管接口abcdefgdp(a) LED顯示管外顯示管外形與二極管編碼形與二極管編碼abcdefgdp(b) 共陽極LED顯示管共陽極LED顯示管abcdefgdp(c) 共陰極LED顯示管共陰極LED顯示管74LS24474LS27374LS273位碼端口寫段碼端口寫D7D074078G圖圖5-15 多位多

51、位LED數(shù)碼顯示接口數(shù)碼顯示接口多位多位LEDLED顯示器驅(qū)動:顯示器驅(qū)動: 設(shè)置位碼,熄滅所有數(shù)碼管;設(shè)置位碼,熄滅所有數(shù)碼管;將一個數(shù)碼管的字形代碼段碼送入段碼端將一個數(shù)碼管的字形代碼段碼送入段碼端口口; ;設(shè)置位碼,點亮一個數(shù)碼管設(shè)置位碼,點亮一個數(shù)碼管適當(dāng)延時后,重復(fù)以上過程適當(dāng)延時后,重復(fù)以上過程多位不同的數(shù)字同時顯示在不同的數(shù)碼管上。多位不同的數(shù)字同時顯示在不同的數(shù)碼管上。送段碼之前熄滅所有數(shù)碼管可以消除送段碼之前熄滅所有數(shù)碼管可以消除“段碼段碼和和“位碼不同步產(chǎn)生的閃爍。位碼不同步產(chǎn)生的閃爍。多位多位LEDLED數(shù)碼顯示程序:數(shù)碼顯示程序:需要輸出的數(shù)字分別是需要輸出的數(shù)字分別是

52、1,2,3,4,5,6,7,81,2,3,4,5,6,7,8段碼和位碼的端口地址分別是段碼和位碼的端口地址分別是segport segport 和和 bitport bitport ;數(shù)據(jù)段和堆棧段;數(shù)據(jù)段和堆棧段dataSegtabdb 40h, 4fh, 24h, 30h, 19h db 12h, 02h, 78h, 00h, 10hbuffer db 1, 2, 3, 4, 5, 6, 7, 8 segcodedb?bitcodedb?stack100hcodeleddisp proc farpushds; 保護各寄存器內(nèi)容保護各寄存器內(nèi)容pushaxpushbxpushcxpushsimovax, data;裝載;裝載dsmovds, a

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論