《《微機原理》PPT課件》由會員分享,可在線閱讀,更多相關《《微機原理》PPT課件(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、7.1概述7.2CPU與外設數(shù)據(jù)傳送的方式7.3可編程計數(shù)器/定時器82537.4串行通訊和串行接口7.5 并行接口 7.6 DMA控制器82377.7 D/A和A/D轉換技術第七章 輸入/輸出接口 7.1 概述一、接口電路的分類和功能外設必須通過接口電路與CPU相連接數(shù)據(jù)總線控制總線地址總線接口電路外部設備數(shù)據(jù)線控制線狀態(tài)線 一、接口電路的分類和功能接口電路按通用性分為兩類:通用接口和專用接口通用接口:可供多種外部設備使用的標準接口,目的是使微機正常 工作通用接口通常制造成集成電路芯片,稱為接口芯片。最初的IBM-PC使用了6塊接口芯片:8284、8288、8255、8259、8237、82
2、53后來的微機將這些芯片集成為大規(guī)模集成電路芯片,稱為芯片組。如82430TX芯片組,由兩片芯片組成:北橋:82439TX南橋:82371AB 一、接口電路的分類和功能 一、接口電路的分類和功能專用接口:為某種用途或某類外設而專門設計的接口電路,目的 在于擴充微機系統(tǒng)的功能。專用接口通常制造成接口卡,插在主板總線插槽上使用。通用接口和專用接口的界限并不嚴格。按照可編程性,接口芯片分成硬步線邏輯接口芯片和可編程接口芯片。可編程接口芯片的功能可以由指令來控制。 一、接口電路的分類和功能接口電路的功能:1)緩沖鎖存數(shù)據(jù)2)地址譯碼3)傳遞命令4)碼制轉換5)電平轉換P. 228 二、接口電路的基本結
3、構接口電路通常包含一組能夠與處理器交換信息的寄存器,稱為I/O端口寄存器,簡稱為I/O端口1)數(shù)據(jù)端口存放數(shù)據(jù)信息2)狀態(tài)端口存放狀態(tài)信息,即反映外設當前工作狀態(tài)的信息3)控制端口存放控制信息狀態(tài)信息與控制信息可以廣義地看作數(shù)據(jù)信息,因此可以通過數(shù)據(jù)總線傳送P. 196 三、I/O端口的編址方式I/O端口與存儲單元統(tǒng)一編址I/O端口獨立編址PC系列機采用I/O端口獨立編址方式Port 65535Port 255Port 3Port 2 Port 1Port 0 Port 0(16位)Port 1(16位) Port 0 (32位) 三、I/O端口的編址方式端口地址是一種重要資源 三、I/O端口
4、的編址方式端口的尋址把端口地址放在DX寄存器中,對該端口進行讀寫IN AL, DXOUT DX, AL P. 83可尋址的端口號為065535(FFFFH)端口地址小于或等于FFH(255),可以用立即數(shù)表示端口地址IN AL, 42HOUT 43H, AL 7.2 CPU與外設數(shù)據(jù)傳送的方式程序傳送方式中斷傳送方式DMA傳送方式無條件傳送程序查詢傳送(條件傳送) 一、程序傳送方式(一)無條件傳送CPU與外設間的數(shù)據(jù)交換在程序控制下進行不查詢外設狀態(tài),認為外設已經(jīng)準備就緒,直接與外設傳送數(shù)據(jù)外設準備就緒:對于輸入設備,已經(jīng)把數(shù)據(jù)放入接口電路的數(shù)據(jù)輸入寄存器,CPU可以讀取;對于輸出設備,已經(jīng)準
5、備好接收數(shù)據(jù)(接口電路的數(shù)據(jù)輸出寄存器已空),CPU可以向它輸出數(shù)據(jù)由于不查詢外設狀態(tài),接口電路不需要狀態(tài)寄存器 一、程序傳送方式輸入緩存輸出鎖存無條件程序傳送的原理,P. 197 一、程序傳送方式(二)程序查詢傳送在執(zhí)行輸入輸出前,要先查詢接口中狀態(tài)寄存器的狀態(tài)。輸入時,狀態(tài)寄存器的狀態(tài)指示要輸入的數(shù)據(jù)是否已經(jīng)準備就緒輸出時,狀態(tài)寄存器的狀態(tài)指示輸出設備是否空閑P. 199 二、中斷傳送方式使用查詢方式,CPU必須檢測接口電路的狀態(tài)寄存器,如果設備未準備好,CPU就要不斷地查詢,降低了CPU的運行效率中斷方式:當外設作好傳送準備后,主動向CPU請求中斷,CPU響應中斷后在中斷處理程序中與外設
6、交換數(shù)據(jù)。若外設未準備好,CPU可以執(zhí)行其他程序,提高了CPU的利用率每條指令完成后,CPU均可響應中斷,因此當設備準備好時,可及時與CPU交換數(shù)據(jù),提高了實時性 三、DMA傳送方式對于高速外設(如磁盤、高速A/D),中斷方式不能滿足數(shù)據(jù)傳輸速度的要求。DMA=Direct Memory Access直接存儲器訪問DMA方式是一種由專門的硬件電路執(zhí)行I/O的數(shù)據(jù)傳送方式,它可以讓外設接口直接與內(nèi)存進行高速的數(shù)據(jù)傳送,而不必經(jīng)過CPU。這種專門的硬件電路稱為DMA控制器,簡稱DMAC 7.3 可編程計時器/計數(shù)器8253一、計數(shù)/定時的工作原理計數(shù)/定時的功能對外部事件發(fā)生次數(shù)進行計數(shù)計算機系統(tǒng)
7、經(jīng)常用到定時信號,如DRAM刷新定時計數(shù)和計時本質(zhì)上是相同的,它們都是對一個輸入脈沖進行計數(shù),如果輸入脈沖的頻率一定,那么記錄脈沖的個數(shù)與所需的時間是一一對應的關系。例如輸入脈沖頻率為2MHz,那么計數(shù)210 6 計時1秒因此,使用同一個芯片,既能計數(shù),又能計時計時器/計數(shù)器 一、計數(shù)/定時的工作原理控制寄存器初始值寄存器計數(shù)器計數(shù)輸出寄存器狀態(tài)寄存器CLKGATEOUT組成:控制寄存器決定工作模式狀態(tài)寄存器反應工作狀態(tài)初值寄存器計數(shù)的初值計數(shù)輸出寄存器CPU從中讀當前計數(shù)值計數(shù)器執(zhí)行計數(shù)操作,CPU不能訪問 一、計數(shù)/定時的工作原理工作原理:對CLK信號進行減1計數(shù)首先,CPU把控制字寫入控
8、制寄存器,計數(shù)初始值寫入初值寄存器計數(shù)從初值開始,每當CLK信號出現(xiàn)一次,計數(shù)值減1當計數(shù)值減到0,從OUT端輸出規(guī)定的信號CLK信號出現(xiàn)時,計數(shù)器是否減1,由門控信號GATE控制 一、計數(shù)/定時的工作原理CLK是計數(shù)輸入信號,計數(shù)器對CLK端出現(xiàn)的脈沖個數(shù)進行計數(shù)CLK端可以輸入外部事件CLK端可以接入固定頻率的時鐘信號,從而實現(xiàn)計時OUT信號在計數(shù)結束時發(fā)生變化可將OUT作為外部設備的控制信號可將OUT作為向CPU申請中斷的信號CPU可以從計數(shù)輸出寄存器讀出當前計數(shù)值。讀前,應向控制寄存器發(fā)送鎖存命令 二、8253的編程結構1片8253內(nèi)部有三個計數(shù)器,結構完全相同8253的引腳、內(nèi)部結構
9、、尋址方式P. 229每個計數(shù)器內(nèi)部都有一個8位控制寄存器,三個控制寄存器使用相同的端口,在編程結構圖中畫為一個8253沒有狀態(tài)寄存器 二、8253的編程結構8253控制字的格式P. 230每個計數(shù)器的初值寄存器(CR)、輸出鎖存器(OL)都是16位的,但它們對應相同的一個8位端口地址,所以16位的CR、OL作為兩個8位寄存器讀寫,由控制寄存器控制讀寫高8位/低8位 三、8253的編程命令初始化1)寫入控制字2)按控制字要求寫入計數(shù)初值計數(shù)器初值計算:N=fCLK/fOUT例:設三個計數(shù)器的CR/OL端口地址為70H、71H、72H,控制寄存器端口地址73H。計數(shù)器0,工作模式2,CR/OL僅
10、使用低8位,初值為100,計數(shù)值使用二進制MOV AL, 14HOUT 73H, ALMOV AL, 100 OUT 70H, AL 三、8253的編程命令例:設三個計數(shù)器的CR/OL端口地址為70H、71H、72H,控制寄存器端口地址73H。計數(shù)器1,工作模式1,CR/OL使用16位,初值為1234,計數(shù)值使用BCDMOV AL, 73HOUT 73H, ALMOV AX, 1234HOUT 71H, ALMOV AL, AHOUT 71H, AL 三、8253的編程命令讀出命令1)發(fā)出鎖存命令,使當前計數(shù)值鎖存在OL中2)讀OL,獲得當前計數(shù)值例:設三個計數(shù)器的CR/OL端口地址為70H、
11、71H、72H,控制寄存器端口地址73H。讀出計數(shù)器0的當前計數(shù)值,放在BX中MOV AL, 0HOUT 73H, ALIN AL, 70HMOV BL, AL IN AL, 70HMOV BH, AL 四、8253的工作模式工作模式?jīng)Q定以下內(nèi)容:1)門控信號的影響高電平允許,當GATE=0,即使出現(xiàn)CLK,也不計數(shù)模式0,2,3,4上升沿允許(上升沿觸發(fā))模式1,52)OUT信號的狀態(tài)寫入控制字后, OUT的狀態(tài)計數(shù)過程中, OUT的狀態(tài)計數(shù)終了, OUT的狀態(tài)3)計數(shù)操作可否重復不可重復模式0,4自動重復模式2,3 條件重復模式1,5 四、8253的工作模式六種工作模式P. 230計數(shù)初值
12、寫入初值寄存器后,要經(jīng)過一個CLK輸入后才開始計數(shù)(或,經(jīng)過一個CLK后,計數(shù)初值才到達計數(shù)執(zhí)行部件)計數(shù)器在CLK的下降沿使計數(shù)值減1 四、8253的工作模式方式0:計數(shù)初值寫入CR后,OUT由0到1跳變出現(xiàn)在n+1個時鐘脈沖之后延遲時間TD=(n+1)TCLK方式1:單脈沖寬度T=n TCLK方式2:對輸入端n個時鐘脈沖,在輸出端僅出現(xiàn)一個時鐘脈沖N分頻計數(shù)器 四、8253的工作模式方式3:例:計數(shù)器工作模式3,計數(shù)器初值15,時鐘脈沖頻率為2MHz,確定OUT端輸出方波的特性。解:TCLK=1/2MHz=500ns計數(shù)器初值15為奇數(shù),輸出分頻波高電平寬度 TCLK(N+1)/2=4s輸
13、出分頻波低電平寬度 T CLK(N-1)/2=3.5s方式4、5:觸發(fā)后n+1個時鐘脈沖之后輸出端產(chǎn)生選通脈沖信號 四、8253的工作模式例:計數(shù)器0工作模式4,初始化計數(shù)器,使裝入計數(shù)器10 s后產(chǎn)生選通信號(設時鐘頻率2MHz,8253端口地址為50H53H)。解:n+1=T/ TCLK=10/0.5=20 n=19=13HMOV AL, 18HOUT 53H, ALMOV AL, 13HOUT 50H, AL 五、8253的應用1. PC機中8253的應用計數(shù)器0:向系統(tǒng)日歷時鐘提供定時中斷模式3,控制字36H,計數(shù)器初始值0計數(shù)器1:動態(tài)RAM刷新模式2,控制字54H,計數(shù)器初始值18
14、(12H)計數(shù)器2:控制揚聲器發(fā)聲模式3,控制字B6H,計數(shù)器初始值1331(533H)PC機中,8253的端口地址為40H43H 五、8253的應用2. 揚聲器控制設計一個程序,使揚聲器發(fā)出600Hz頻率的聲音,按下任意鍵聲音停止PC機的發(fā)聲系統(tǒng)以計數(shù)器2為核心。CLK2的輸入頻率1.19MHz,改變計數(shù)器初值可以由OUT2得到不同頻率的方波輸出對于600Hz,計數(shù)初值1.19MHz/600Hz=1938發(fā)聲系統(tǒng)受8255芯片B口的兩個輸出端線PB0、PB1的控制PB0為1,使GATE2為1,計數(shù)器2能正常計數(shù)PB1為1,打開輸出控制門 五、8253的應用2. 揚聲器控制CODE SEGME
15、NT ASSUME CS:CODESTART: IN AL, 61H OR AL, 03H OUT 61H, AL MOVAX, 1983 OUT 42H, AL MOVAL, AH OUT 42, AL MOVAH, 01H INT 21H IN Al, 61H AND AL, 0FCH OUT 61H, AL MOVAH, 4CH INT 21HCODE ENDS END START 五、8253的應用3. 以2MHz輸入8253,實現(xiàn)每5秒定時中斷(設8253端口地址40H43H)分析:8253最大初值65536,CLK=2MHz可實現(xiàn)最大時間間隔65536/(2106)=32.769m
16、s所以需要兩個計數(shù)器串聯(lián),一個計數(shù)器的輸出作為另一個計數(shù)器的輸入 五、8253的應用計數(shù)器1:模式2,OUT1每5ms輸出一個脈沖初值(2106)/(1/0.005)=10000計數(shù)器0:模式2,OUT0每5s輸出一個脈沖初值(1/0.005)/(1/5)=1000 OUT0GATE0CLK0OUT1 GATE1CLK1 +5V+5V2MHz每5秒產(chǎn)生一個脈沖 五、8253的應用程序:MOV AL, 74HOUT 43H, ALMOV AX, 10000OUT 41H, ALMOV AL, AHOUT 41H, ALMOV AL, 74H MOV AL, 34HOUT 43H, ALMOV A
17、X, 1000OUT 40H, ALMOV AL, AH OUT 40H, AL 作業(yè)1.試述CPU與外設交換數(shù)據(jù)的方式及其特點2.設8253三個計數(shù)器的CR/OL端口地址為70H、71H、72H,控制寄存器端口地址73H。編寫程序片段,使:計數(shù)器0,工作模式1,使用16位,初值為1234,BCD計數(shù)計數(shù)器1,工作模式4,使用低8位,初值為100,二進制計數(shù)計數(shù)器2,工作模式2,使用16位,初值為65536,二進制計數(shù)3.設8253的端口地址同2,編寫程序片段,讀出計數(shù)器2的內(nèi)容,并把讀出的數(shù)據(jù)裝入寄存器AX.4.設計數(shù)器的時鐘輸入頻率為1.91MHz,為產(chǎn)生25KHZ的 方波輸出信號,應向計數(shù)器裝入的計數(shù)初值為多少?5.音符1、2、3、4、5、6、7的頻率分別為350、393、441、467、525、589、661,編寫一個程序,使用戶按下17鍵時揚聲器發(fā)出相應的音符,按下其他鍵退出程序。