第五章 輸入輸出及接口芯片的應(yīng)用_第1頁
第五章 輸入輸出及接口芯片的應(yīng)用_第2頁
第五章 輸入輸出及接口芯片的應(yīng)用_第3頁
第五章 輸入輸出及接口芯片的應(yīng)用_第4頁
第五章 輸入輸出及接口芯片的應(yīng)用_第5頁
已閱讀5頁,還剩108頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、5.1 5.1 總線技術(shù)總線技術(shù)5.2 I/O5.2 I/O接口概述接口概述5.3 5.3 中斷系統(tǒng)中斷系統(tǒng)5.4 5.4 定時(shí)與計(jì)數(shù)定時(shí)與計(jì)數(shù)5.5 5.5 并行接口并行接口5.6 5.6 串行接口串行接口PC機(jī)從其誕生以來就采用了總線結(jié)構(gòu)方式。自1970年美國DEC公司在PDP11/22小型計(jì)算機(jī)上采用Unibus總線以來,隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,各大公司相繼推出了各種標(biāo)準(zhǔn)的、非標(biāo)準(zhǔn)的總線,總線速度是總線速度是制約計(jì)算機(jī)整體性能的最大因素。當(dāng)前總線結(jié)構(gòu)方制約計(jì)算機(jī)整體性能的最大因素。當(dāng)前總線結(jié)構(gòu)方式已經(jīng)成為微機(jī)性能的重要指標(biāo)之一。式已經(jīng)成為微機(jī)性能的重要指標(biāo)之一。 1 1、總線的概念、總

2、線的概念計(jì)算機(jī)系統(tǒng)中各模塊之間互連的鏈路叫做總線,計(jì)算機(jī)系統(tǒng)中各模塊之間互連的鏈路叫做總線,它支持模塊之間的信息傳送??偩€就是各種信號線的集合,是計(jì)算機(jī)各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通路。從物理結(jié)構(gòu)來看,它是由一組導(dǎo)線和相關(guān)的控制、驅(qū)動電路組成。在微型計(jì)算機(jī)系統(tǒng)中有各式各樣的總線,總線常被作為一個(gè)獨(dú)立部件看待。1)1)地址總線地址總線 A0A19A0A19:用來對系統(tǒng)存儲器或 I/O接口進(jìn)行尋址。2)2)數(shù)據(jù)總線數(shù)據(jù)總線 D0D7D0D7:雙向,數(shù)據(jù)總線,用來在微處理器、存儲器和 I/O接口之間傳送數(shù)據(jù)、控制命令或信息。 3)3)控制線(控制線(2121根)根) ALE ALE :輸

3、出,地址鎖存允許信號。該信號由8288總線控制器提供,用來鎖存 CPU送出的地址信息,供其它的芯片或外設(shè)讀取。在I/O通道中它與 AEN配合作為 CPU地址有效的指示。ANE:地址允許信號地址允許信號。該信號用來切斷 CPU對總線的控制。允許在I/O通道中(即在 I/O擴(kuò)展總線中)進(jìn)行 DMA傳送。當(dāng)AEN為高電平(有效電平)時(shí),由 DMA控制器控制地址總線和數(shù)據(jù)總線,并提供讀寫命令。MEMRMEMR* *,MEMWMEMW* *:輸出,:輸出, 內(nèi)存讀取、寫入信號內(nèi)存讀取、寫入信號。此信號在 CPU啟動存儲器訪問總線周期時(shí),由總線控制器所驅(qū)動。 IORIOR* *,IOWIOW* *:輸出,

4、:輸出,I/OI/O讀、寫信號讀、寫信號。當(dāng) CPU需要向 I/O接口讀取或?qū)懭霐?shù)據(jù)時(shí),相應(yīng)信號會變成低電平。 IRQ7IRQ2 IRQ7IRQ2 :輸入,:輸入, 第第2 2級至第級至第7 7級硬件中斷請求級硬件中斷請求輸入信號。輸入信號。這些信號是 I/O接口向CPU發(fā)出的請求服務(wù)信號,其中 IRQ2優(yōu)先級最高, IRQ7優(yōu)先級最低。中斷請求信號由IRQ信號的上升沿(由低至高的跳變)產(chǎn)生,它應(yīng)一直保持高電平,直到 CPU響應(yīng)為止。 DRQ3DRQlDRQ3DRQl: DMADMA請求輸入信號請求輸入信號。此信號用來表示外部設(shè)備要求進(jìn)入DMA周期。若某一外設(shè)或 I/O接口具有高速傳輸能力且有

5、大量數(shù)據(jù)要傳輸,希望與內(nèi)存直接進(jìn)行數(shù)據(jù)傳輸(即 DMA),而不希望通過CPU時(shí),可啟動此號信。此信號直接進(jìn)入主板上的 DMA控制器,由 DMA控制器按優(yōu)先順序,決定讓哪個(gè)I/O接口傳輸數(shù)據(jù)。 DACK0DACK3 DACK0DACK3 :DMA通道03的 DMA響應(yīng)信號。此信號由 DMA控制器發(fā)出,表示對應(yīng)的 DRQ信號(DMA請求 DRQ1DRQ3)已被接受。4)4)狀態(tài)線(狀態(tài)線(2 2根)根)5)5)輔助線(輔助線(1111根)根)1)1)時(shí)鐘周期:時(shí)鐘周期:時(shí)鐘信號CLK的周期,是微處理器處理操作的最基本的時(shí)間單位 (CPU的主頻) 。2)2)指令周期:指令周期:取出并執(zhí)行一條指令的時(shí)

6、間。一般由若干個(gè)機(jī)器周期組成。機(jī)器周期:通常用內(nèi)存中讀取一個(gè)指令字的最短時(shí)間周期。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個(gè)或者兩個(gè)以上的機(jī)器周期。3)3)總線周期總線周期由于存儲器和I/O端口是掛接在總線上的,CPU對存儲器和I/O接口的訪問,是通過總線實(shí)現(xiàn)的。通常把CPU通過總線對微處理器外部(存儲器或I/O接口)進(jìn)行一次訪問所需時(shí)間稱為一個(gè)總線周期。一個(gè)總線周期一般包含4個(gè)時(shí)鐘周期,T1狀態(tài)、T2狀態(tài)、T3狀態(tài)和T4狀態(tài),必要時(shí),可在T

7、3、T4間插入一個(gè)至數(shù)個(gè)Tw。 T1狀態(tài) 輸出存儲器地址或I/O地址。 T2狀態(tài) 輸出控制信號。 T3和Tw狀態(tài) 總線操作持續(xù),并檢測READY以決定是否延長時(shí)序。 T4狀態(tài) 完成數(shù)據(jù)傳送 1 1、總線標(biāo)準(zhǔn)與性能指標(biāo)、總線標(biāo)準(zhǔn)與性能指標(biāo) 所謂總線標(biāo)準(zhǔn),可視為系統(tǒng)與各模塊、模塊與模塊之間一個(gè)互連的標(biāo)準(zhǔn)界面。這個(gè)界面對兩端的模塊都是透明的,即界面的任一方只需根據(jù)總線標(biāo)準(zhǔn)的要求完成自身一面接口的功能要求,而無需了解對方接口與總線的連接要求。因此,按總線標(biāo)準(zhǔn)設(shè)計(jì)的接口可視為通用接口。(1 1)ISAISA(Industrial Standard ArchitectureIndustrial Stand

8、ard Architecture)總線,又稱AT總線,它采用獨(dú)立于CPU的總線時(shí)鐘,因此CPU可采用比總線頻率更高的時(shí)鐘,有利于CPU性能的提高。但I(xiàn)SA總線沒有支持總線仲裁的硬件邏輯,因此不支持多臺主設(shè)備系統(tǒng),且ISA上的所有數(shù)據(jù)的傳送必須通過CPU或DMA接口來管理,因此使CPU花費(fèi)了大量時(shí)間來控制與外部設(shè)備交換數(shù)據(jù)。ISA總線時(shí)鐘頻率為8MHz,最大傳輸率為16MB/s。 2 2)EISA(Extended EISA(Extended Industrial Standard Industrial Standard Architecture)Architecture)總線總線,是一種在IS

9、A基礎(chǔ)上擴(kuò)充開放的總線標(biāo)準(zhǔn),它與ISA完全兼容,它從CPU中分離出了總線控制權(quán),是一種智能化的總線,能支持多總線主控和突發(fā)方式的傳輸。 EISA總線的時(shí)鐘頻率為8MHz, 最大傳輸率可達(dá)33MB/s,數(shù)據(jù)總線為32位,地址總線為32位,擴(kuò)充DMA訪問。 3)PCI(Peripheral Component Interconnect3)PCI(Peripheral Component Interconnect外外部設(shè)備互連總線部設(shè)備互連總線) )是由Intel公司提供的總線標(biāo)準(zhǔn)。具體特點(diǎn):具體特點(diǎn): 32位總線,擴(kuò)展支持64位總線,包括數(shù)據(jù)總線和地址總線; 33M總線時(shí)鐘,增強(qiáng)方式66M總線時(shí)鐘

10、; 支持多總線結(jié)構(gòu),在一條總線上,可多個(gè)CPU同時(shí)工作,共享總線資源; 5V、3.3V兩種信號電壓標(biāo)準(zhǔn)。 1)1)總線寬度總線寬度 總線寬度又稱為總線位寬指的是總線中數(shù)據(jù)總線的數(shù)量,用bit(位)表示,總線的位寬指的總線的位寬指的是總線能同時(shí)傳送的數(shù)據(jù)位數(shù),即我們常說的是總線能同時(shí)傳送的數(shù)據(jù)位數(shù),即我們常說的1616位、位、3232位、位、6464位等總線寬度的概念位等總線寬度的概念。在工作頻率固定的條件下,總線的位寬越寬則總線每秒數(shù)據(jù)傳輸率越大,也即總線帶寬越寬。 2)2)總線時(shí)鐘頻率總線時(shí)鐘頻率 總線時(shí)鐘是總線中各種信號的定時(shí)標(biāo)準(zhǔn),也稱為總線的工作頻率,以MHz為單位。它是指用于它是指用于

11、協(xié)調(diào)總線上的各種操作規(guī)程的時(shí)鐘信號的頻率。協(xié)調(diào)總線上的各種操作規(guī)程的時(shí)鐘信號的頻率。工作頻率越高則總線工作速度越快,也即總線帶寬越寬。 一般來說,總線時(shí)鐘頻率越高,其單位時(shí)間內(nèi)數(shù)據(jù)傳輸量越大,但不完全成正比例關(guān)系。 3)3)最大數(shù)據(jù)傳輸速率(帶寬最大數(shù)據(jù)傳輸速率(帶寬bandwidthbandwidth)。最大數(shù)據(jù)傳輸速率指的是在總線中每秒鐘傳輸?shù)脑诳偩€中每秒鐘傳輸?shù)淖畲笞止?jié)量,最大字節(jié)量,有時(shí)也被稱為帶寬帶寬(bandwidth),用MB/s表示,即每秒多少兆字節(jié)??偩€數(shù)據(jù)傳輸速率總線寬度總線數(shù)據(jù)傳輸速率總線寬度* *總線頻率總線頻率/8/8在現(xiàn)代微機(jī)中,一般可做到一個(gè)總線時(shí)鐘周期完成一次數(shù)

12、據(jù)傳輸,因此,總線的最大數(shù)據(jù)傳輸速率為總線寬度除以8(每次傳輸?shù)淖止?jié)數(shù))再乘以總線時(shí)鐘頻率。例如,PCI總線的寬度為64位,總線時(shí)鐘頻率為33.3MHz,則最大數(shù)據(jù)傳輸速率為64833.3266MB/s。但有些總線采用了一些新技術(shù)(如在時(shí)鐘脈沖的上升沿和下降沿都選通等),使最大數(shù)據(jù)傳輸速率比上面的計(jì)算結(jié)果高。總線是用來傳輸數(shù)據(jù)的,所采取的各項(xiàng)提高性能的措施,最終都要反映在傳輸速率上,所以在諸多指標(biāo)中最大數(shù)據(jù)傳輸速率是最重要的??偩€帶寬、總線位寬、總線工作時(shí)鐘頻率的關(guān)系舉個(gè)例子就很容易明白了。高速公路上的車流量取決于公路車道的數(shù)目和車輛行駛速度,車道越多、車速越快則車流量越大;總線帶寬總線帶寬就

13、象是高速公路的車流量車流量,總線位寬總線位寬仿佛高速公路上的車車道數(shù)道數(shù),總線時(shí)鐘工作頻率總線時(shí)鐘工作頻率相當(dāng)于車速車速,總線位寬越寬、總線工作時(shí)鐘頻率越高則總線帶寬越大。 當(dāng)然,單方面提高總線的位寬或工作時(shí)鐘頻率都只能部分提高總線的帶寬,并容易達(dá)到各自的極限。只有兩者配合才能使總線的帶寬得到更大的提升。1 1)按照總線傳遞的內(nèi)容分類:地址總線)按照總線傳遞的內(nèi)容分類:地址總線ABAB、數(shù)據(jù)、數(shù)據(jù)總線總線DBDB、控制總線、控制總線CBCB。2 2)按總線所處的位置可分為:)按總線所處的位置可分為: 片內(nèi)總線:片內(nèi)總線:在CPU內(nèi)部,寄存器之間和算術(shù)邏輯部件ALU與控制部件之間傳輸數(shù)據(jù)所用的總

14、線稱為片內(nèi)總線。 (即芯片內(nèi)部的總線)又稱為內(nèi)部總線或內(nèi)總線。(Internal Bus)片外總線:片外總線:CPU與內(nèi)存RAM、ROM和輸入/輸出設(shè)備接口之間進(jìn)行通訊的通路。 把片外總線又稱為外部總線或外總線 (External Bus)。 CPU通過總線實(shí)現(xiàn)程序取指令、內(nèi)存與外設(shè)的數(shù)據(jù)交換。3 3)按照總線的結(jié)構(gòu)分類)按照總線的結(jié)構(gòu)分類單總線結(jié)構(gòu):單總線結(jié)構(gòu):在這種結(jié)構(gòu)中,將CPU、主存和I/O設(shè)備都掛到一組總線上, 形成單總線結(jié)構(gòu)的計(jì)算機(jī)。這種結(jié)構(gòu)最明顯的特點(diǎn)就是最明顯的特點(diǎn)就是,當(dāng)I/O與主存交換信息時(shí),原則上不影響CPU的工作,CPU仍可繼續(xù)處理不訪問主存或I/O的操作,這就使CPU

15、工作效率有所提高。但是,因?yàn)橹挥幸唤M總線,當(dāng)某一時(shí)刻各部件都要占用時(shí),就會出現(xiàn)爭用現(xiàn)象。雙總線結(jié)構(gòu):雙總線結(jié)構(gòu):在單總線基礎(chǔ)上,又單獨(dú)開辟一條CPU與主存之間的通路,叫存儲總線。這組總線速度高,只供主存與CPU之間傳輸信息。這樣既提高了傳輸效率,又減輕了系統(tǒng)總線的負(fù)擔(dān),還保留了I/O與存儲器交換信息時(shí)不經(jīng)過CPU的特點(diǎn)。5.2.15.2.1 接口的概念與接口的概念與I/OI/O接口接口 計(jì)算機(jī)兩部件之間的界面稱之為接口接口。 接口的主要功能接口的主要功能是:(1)數(shù)據(jù)緩沖及輸入、輸出(2)尋址功能(3)命令譯碼(4)同步、聯(lián)絡(luò)和控制功能1)I/OI/O接口與接口與I/OI/O設(shè)備之間交換的信號

16、通常有四種設(shè)備之間交換的信號通常有四種:數(shù)字量、模擬量、開關(guān)量、脈沖量。數(shù)字量、模擬量、開關(guān)量、脈沖量。2 2)I/OI/O接口與接口與CPUCPU之間交換的信息通常有三種:之間交換的信息通常有三種:數(shù)數(shù)據(jù)信息、狀態(tài)信息、控制信息。據(jù)信息、狀態(tài)信息、控制信息。內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)數(shù)據(jù)寄存器數(shù)據(jù)寄存器:存放外設(shè)與主機(jī)之間傳送的信息存放外設(shè)與主機(jī)之間傳送的信息,在緩沖區(qū)可存放一批數(shù)據(jù)。狀態(tài)寄存器:狀態(tài)寄存器:存放外設(shè)或接口的狀態(tài)。存放外設(shè)或接口的狀態(tài)??刂疲睿┘拇嫫鳎嚎刂疲睿┘拇嫫鳎捍娣趴刂仆庠O(shè)的信號或命令。存放控制外設(shè)的信號或命令。注:同樣的二進(jìn)制代碼,在不同的寄存器中將有注:同樣的二進(jìn)制代

17、碼,在不同的寄存器中將有不同的作用。不同的作用。外部特性外部特性接口電路的外部特性由其引出信號來體現(xiàn):(1)面向處理器一側(cè)的信號(與CPU的連接):類似處理器總線或系統(tǒng)總線,主要處理地址譯碼。(2)面向外設(shè)一側(cè)的信號(與外設(shè)連接):與外設(shè)有關(guān),但可以籠統(tǒng)地分成外設(shè)的數(shù)據(jù)信號、狀態(tài)信號和控制信號主要功能主要功能(1 1)數(shù)據(jù)緩沖:)數(shù)據(jù)緩沖:匹配快速的處理器與相對慢速的外設(shè)的數(shù)據(jù)交換(2 2)信號變換)信號變換:把信號相互轉(zhuǎn)換為適合對方的形式CPU通過接口對外設(shè)進(jìn)行控制的方式有以下幾種: 1 1)程序控制方式)程序控制方式 這種方式下,CPU通過I/O指令詢問指定外設(shè)當(dāng)前的狀態(tài),如果外設(shè)準(zhǔn)備就緒

18、,則進(jìn)行數(shù)據(jù)的輸入或輸出,否則CPU等待,循環(huán)查詢。 這種方式的優(yōu)點(diǎn)是結(jié)構(gòu)簡單,只需要少量的硬件電路即可,缺點(diǎn)是由于CPU的速度遠(yuǎn)遠(yuǎn)高于外設(shè),因此通常處于等待狀態(tài),工作效率很低。 2 2)中斷處理方式)中斷處理方式 在這種方式下,CPU不再被動等待,而是可以執(zhí)行其他程序,一旦外設(shè)為數(shù)據(jù)交換準(zhǔn)備就緒,可以向CPU提出服務(wù)請求,CPU如果響應(yīng)該請求,便暫時(shí)停止當(dāng)前程序的執(zhí)行,轉(zhuǎn)去執(zhí)行與該請求對應(yīng)的服務(wù)程序,完成后,再繼續(xù)執(zhí)行原來被中斷的程序。 中斷處理方式的優(yōu)點(diǎn):中斷處理方式的優(yōu)點(diǎn):為CPU省去了查詢外設(shè)狀態(tài)和等待外設(shè)就緒所花費(fèi)的時(shí)間;提高了CPU的工作效率,還滿足了外設(shè)的實(shí)時(shí)要求。 中斷處理方式

19、的缺點(diǎn):中斷處理方式的缺點(diǎn):需要為每個(gè)IO設(shè)備分配一個(gè)中斷請求號和相應(yīng)的中斷服務(wù)程序;每傳送一個(gè)字符都要進(jìn)行中斷,啟動中斷控制器,還要保留和恢復(fù)現(xiàn)場以便能繼續(xù)原程序的執(zhí)行。3 3)DMADMA(直接存儲器存?。﹤魉头绞剑ㄖ苯哟鎯ζ鞔嫒。﹤魉头绞?DMADMA最明顯的一個(gè)特點(diǎn)最明顯的一個(gè)特點(diǎn)是它不是用軟件而是采采用一個(gè)專門的控制器來控制內(nèi)存與外設(shè)之間的數(shù)據(jù)用一個(gè)專門的控制器來控制內(nèi)存與外設(shè)之間的數(shù)據(jù)交流,無須交流,無須CPUCPU介入介入,大大提高CPU的工作效率。 在進(jìn)行DMA數(shù)據(jù)傳送之前,DMA控制器會向CPU申請總線控制權(quán)。5.3.1 5.3.1 中斷概述中斷概述5.3.2 8086/80

20、885.3.2 8086/8088的中斷系統(tǒng)的中斷系統(tǒng)5.3.3 8259A5.3.3 8259A可編程控制器可編程控制器5.3.4 82595.3.4 8259的應(yīng)用的應(yīng)用中斷響應(yīng)的條件中斷響應(yīng)的條件: CPU應(yīng)工作在中斷方式(CPU開中斷,IF=1) 申請中斷的事件優(yōu)先級別到位 CPU執(zhí)行完當(dāng)前一條完整的指令以后作用作用: 提高CPU的工作效率 提高實(shí)時(shí)數(shù)據(jù)的處理時(shí)效 可以實(shí)現(xiàn)多任務(wù)多用戶管理5.3.1 中斷概述中斷概述中斷中斷源:源:引起中斷的原因或來源。中斷源可分為兩大類:一類是來自CPU內(nèi)部,稱之為內(nèi)部中斷源;另一類來自于CPU外部。稱之為外部中斷源。中斷處理流程:保護(hù)斷點(diǎn);轉(zhuǎn)入中斷

21、服務(wù)程序;返回?cái)帱c(diǎn)。1. 1. 中斷中斷分類分類中斷中斷特點(diǎn)特點(diǎn): 矢量型中斷,有矢量型中斷,有256256個(gè)中斷矢量號個(gè)中斷矢量號( (設(shè)備號設(shè)備號) (0) (0255)255)軟件中斷軟件中斷硬件中斷硬件中斷中斷矢量:中斷矢量:是中斷處理子程序的入口地址,每個(gè)中斷類型對應(yīng)一個(gè)中斷矢量中斷矢量表:中斷矢量表:在內(nèi)存中,開辟一個(gè)區(qū)域存放中斷服務(wù)程序的入口地址的表。對于8086,這個(gè)區(qū)域的首地址00000H00000H(固定)(固定)問題:問題:已知中斷矢量號代碼,怎樣找到中斷服務(wù)程序的入口地址?(例入口地址?(例5-45-4)例: 鍵盤中斷的矢量號為09H,它的中斷服務(wù)程序入口地址為0BA9

22、H:0125H,求它在中斷矢量表中的地址及相應(yīng)單元內(nèi)容解:鍵盤中斷對應(yīng)的中斷矢量表位于0000:0024H (09H4=24H)開始的4單元 這4個(gè)單元的內(nèi)容見表:1 1、8259A8259A的內(nèi)部結(jié)構(gòu)及管腳分配的內(nèi)部結(jié)構(gòu)及管腳分配特點(diǎn):可編程、八級向量優(yōu)先中斷、級連、優(yōu)先權(quán)動態(tài)地改變。1)1)中斷請求寄存器中斷請求寄存器(IRR)(IRR)中斷請求IR7IR0,當(dāng)某個(gè)為高電平時(shí),IRR相應(yīng)位置“1”。2)2)中斷服務(wù)寄存器中斷服務(wù)寄存器(ISR)(ISR)任何一級中斷被響應(yīng),執(zhí)行其中斷服務(wù)程序,ISR相應(yīng)位置“1” 。多重中斷情況下,ISR中多位被同時(shí)置“1”。3)3)優(yōu)先權(quán)判別器優(yōu)先權(quán)判別

23、器(PR)(PR)當(dāng)IR7 IR0中有多個(gè)中斷請求信號同時(shí)產(chǎn)生時(shí),PR判定哪個(gè)中斷請求具有最高優(yōu)先權(quán),并把它置入ISR的相應(yīng)位。4)4)中斷屏蔽寄存器中斷屏蔽寄存器(IMR)(IMR)通過IMR可實(shí)現(xiàn)對各級中斷的有選擇的屏蔽。2 2、8259A8259A的中斷處理順序的中斷處理順序當(dāng)有一條或若干條中斷請求輸入線(IR0IR7)上的中斷請求信號有效則IRR的相應(yīng)位置1。若中斷請求線中至少有一條是中斷未被屏蔽的,則8259A由INT引腳向CPU發(fā)出中斷請求信號INTR。若CPU是處于開中斷狀態(tài),則在當(dāng)前指令執(zhí)行完以后。CPU用INTA信號作為對INTR的響應(yīng)。8259A在接收到CPU發(fā)出的第一個(gè)I

24、NTA脈沖后,使最高優(yōu)先權(quán)的ISR位置并使相應(yīng)的IRR位復(fù)位。在第二個(gè)中斷響應(yīng)總線周期中,CPU再輸出一個(gè)INTA脈沖,這時(shí)8259 A就把剛才選定的中斷源所對應(yīng)的8位中斷類型碼放到數(shù)據(jù)總線上。CPU讀取該中斷類型碼并乘以4,就可以從中斷向量表中取出中斷服務(wù)程序的人口地址并轉(zhuǎn)去執(zhí)行。若8259A工作在自動中斷結(jié)束AEOI方式。在第二個(gè)INTA脈沖結(jié)束時(shí),就會使中斷源所對應(yīng)的ISR中的相應(yīng)位復(fù)位。對于非自動中斷結(jié)束方式則由CPU在中斷服務(wù)程序結(jié)束時(shí)向8259A寫入EOI命令,才能使ISR中的相應(yīng)位復(fù)位。3 3、8259A8259A與總線的連接與總線的連接4 4、8 8259A259A編程編程82

25、59A8259A接收來自接收來自CPUCPU的兩類命令字:初始化命令字的兩類命令字:初始化命令字ICWICW、操作命令字、操作命令字OCWOCW。 8259A8259A屬于屬于I/OI/O接口芯片,接口芯片,向向8259A8259A寫入用寫入用OUTOUT,讀取其狀態(tài)用,讀取其狀態(tài)用ININ。(1 1)8259A8259A的初始化的初始化初始化初始化: :第一部分稱預(yù)置命令字第一部分稱預(yù)置命令字ICW1ICW1ICW4ICW4。預(yù)置命。預(yù)置命令字是要令字是要按規(guī)定順序按規(guī)定順序?qū)懭雽懭?259A8259A中的。中的。預(yù)置命令字功能:預(yù)置命令字功能: ICW1ICW1:8259A:8259A是單

26、一式還是主從式;是單一式還是主從式; ICW2ICW2: :設(shè)置中斷類型碼的初始化命令字,必須寫到設(shè)置中斷類型碼的初始化命令字,必須寫到8259A8259A的奇地址端口中;的奇地址端口中; ICW3ICW3: :只有在系統(tǒng)中包含只有在系統(tǒng)中包含有多片有多片8259A8259A時(shí),時(shí),ICW3ICW3才才有效。而系統(tǒng)中是否有多有效。而系統(tǒng)中是否有多片片8259A8259A由由ICW1ICW1指示。指示。 ICW3ICW3是標(biāo)志主片是標(biāo)志主片/ /從片的從片的初始化命令字,必須寫到初始化命令字,必須寫到8259A8259A的奇地址端口中;的奇地址端口中; ICW4ICW4: :完成中斷管理方式完成

27、中斷管理方式的設(shè)定。的設(shè)定。不是任何情況下都需要不是任何情況下都需要設(shè)置設(shè)置4 4個(gè)預(yù)命令,可根個(gè)預(yù)命令,可根據(jù)據(jù)8259A8259A的使用情況而的使用情況而定。定。芯片初始化命令字芯片初始化命令字 標(biāo)記:標(biāo)記:A A0 0=0=0,D D4 4=1=1D7D6D5D4D3D2D1D01LTIM0SNGLIC4習(xí)慣上填習(xí)慣上填01-中斷請求電平觸發(fā)中斷請求電平觸發(fā)0-中斷請求邊沿觸發(fā)中斷請求邊沿觸發(fā)對對8086系統(tǒng)總為系統(tǒng)總為01-單片,單片,0-級聯(lián)級聯(lián)1-設(shè)置設(shè)置ICW40-不設(shè)置不設(shè)置A00設(shè)置中斷類型碼初始化命令字,緊跟在設(shè)置中斷類型碼初始化命令字,緊跟在ICWICW1 1之后,定義之

28、后,定義中斷類型碼的高中斷類型碼的高5 5位,低位,低3 3位由位由IRIRi i確定確定 。 標(biāo)記:標(biāo)記:A A0 0=1=1D7D6D5D4D3T7T6T5D2D1D0T4T3A10A9A8A01與用戶選擇類型碼有關(guān),與用戶選擇類型碼有關(guān),選擇系統(tǒng)沒有占用的選擇系統(tǒng)沒有占用的0 0 0 IR00 0 1 IR10 1 0 IR20 1 1 IR31 0 0 IR41 0 1 IR51 1 0 IR61 1 1 IR7注注:中斷類型碼一定是連續(xù)的?。褐袛囝愋痛a一定是連續(xù)的! 級聯(lián)方式初始化字,緊跟在級聯(lián)方式初始化字,緊跟在ICWICW2 2之后,之后, 標(biāo)記:標(biāo)記:A A0 0=1=1 自學(xué)

29、自學(xué)(4 4)ICW4 對于8086/8088系統(tǒng)是必須設(shè)置的預(yù)置命令字 方式控制初始化命令字,寫ICW4的標(biāo)記為A0=1P218例5-5:例:若例:若8259A8259A以兩片級聯(lián)方式管理以兩片級聯(lián)方式管理1515級中斷級中斷, ,從片從片INTINT接到主片的接到主片的IR2IR2上上, ,主、從片的中斷請求采用邊緣觸發(fā)方式,選用完全嵌套、主、從片的中斷請求采用邊緣觸發(fā)方式,選用完全嵌套、非緩沖方式。主片的中斷類型碼為非緩沖方式。主片的中斷類型碼為8 80FH0FH,從片的中斷類型碼為,從片的中斷類型碼為70H70H77H77H,設(shè)主片的地址為,設(shè)主片的地址為20H20H,21H21H;從

30、片的地址為;從片的地址為22H22H,23H23H。請初始化請初始化8259A8259A。;初始化主片;初始化主片MOV AL,11HOUT 20H,ALMOV AL,08HOUT 21H,ALMOV AL,04HOUT 21H,ALMOV AL,01HOUT 21H,AL;初始化從片;初始化從片MOV AL,11HOUT 22H,ALMOV AL,70HOUT 23H,ALMOV AL,02HOUT 23H,ALMOV AL,01HOUT 23H,AL5.4.1 定時(shí)與計(jì)數(shù)概述5.4.2 8253/8254可編程間隔定時(shí)器58軟件方法:用一段程序?qū)崿F(xiàn)延時(shí)軟件方法:用一段程序?qū)崿F(xiàn)延時(shí)利用程序循

31、環(huán)延遲指定的時(shí)間利用程序循環(huán)延遲指定的時(shí)間缺點(diǎn):缺點(diǎn):CPUCPU占用率?延時(shí)精度?兼容?占用率?延時(shí)精度?兼容?硬件方法:定時(shí)硬件方法:定時(shí)/ /計(jì)數(shù)器電路計(jì)數(shù)器電路利用脈沖計(jì)數(shù)在設(shè)定的時(shí)間輸出定時(shí)信號,靈利用脈沖計(jì)數(shù)在設(shè)定的時(shí)間輸出定時(shí)信號,靈活性較差?活性較差?采用可編程定時(shí)器計(jì)數(shù)器采用可編程定時(shí)器計(jì)數(shù)器定時(shí)時(shí)間與計(jì)數(shù)值可由軟件來確定和改變,設(shè)定時(shí)時(shí)間與計(jì)數(shù)值可由軟件來確定和改變,設(shè)定后與定后與CPUCPU并行工作,不占用并行工作,不占用CPUCPU的時(shí)間的時(shí)間。5.4.1 定時(shí)與計(jì)數(shù)概述定時(shí)與計(jì)數(shù)概述5982538253是一種可編程的計(jì)數(shù)器是一種可編程的計(jì)數(shù)器/ /定時(shí)器接口芯片。內(nèi)部

32、定時(shí)器接口芯片。內(nèi)部有有三個(gè)獨(dú)立的計(jì)數(shù)器三個(gè)獨(dú)立的計(jì)數(shù)器,通過設(shè)置控制字,各計(jì)數(shù)器,通過設(shè)置控制字,各計(jì)數(shù)器可以工作于不同方式。該芯片的可以工作于不同方式。該芯片的最高計(jì)數(shù)頻率為最高計(jì)數(shù)頻率為2MHz2MHz,可用于產(chǎn)生各種定時(shí)波形,也可用于對外部,可用于產(chǎn)生各種定時(shí)波形,也可用于對外部事件計(jì)數(shù)。事件計(jì)數(shù)??梢詫?shí)現(xiàn)定時(shí)與計(jì)數(shù)兩個(gè)功能,可用于: 系統(tǒng)時(shí)鐘 DRAM刷新定時(shí) 定時(shí)采樣 實(shí)時(shí)控制 脈沖的計(jì)數(shù)5.4.2 8253/8254可編程間隔定時(shí)器可編程間隔定時(shí)器60數(shù)據(jù)線:寫控制數(shù)據(jù)線:寫控制字,讀寫計(jì)數(shù)器字,讀寫計(jì)數(shù)器的計(jì)數(shù)值的計(jì)數(shù)值計(jì)數(shù)器計(jì)數(shù)器0的時(shí)鐘輸?shù)臅r(shí)鐘輸入端入端計(jì)數(shù)器計(jì)數(shù)器0的輸出

33、端的輸出端為低電平的時(shí)候,為低電平的時(shí)候,CPU將計(jì)數(shù)值寫入計(jì)數(shù)器或?qū)⒂?jì)數(shù)值寫入計(jì)數(shù)器或?qū)⒖刂谱謱懭肟刂谱旨拇嫫骺刂谱謱懭肟刂谱旨拇嫫鳛榈碗娖降臅r(shí)候,為低電平的時(shí)候,CPU讀取所選計(jì)數(shù)器的內(nèi)容讀取所選計(jì)數(shù)器的內(nèi)容 A1 A0選中端口選中端口0 0計(jì)數(shù)器計(jì)數(shù)器00 1計(jì)數(shù)器計(jì)數(shù)器11 0計(jì)數(shù)器計(jì)數(shù)器21 1控制字寄存器控制字寄存器計(jì)數(shù)器計(jì)數(shù)器0的門控信的門控信號脈沖輸入端,控號脈沖輸入端,控制計(jì)數(shù)制計(jì)數(shù)(1)8253的外部引腳的外部引腳61編址部件編址部件0編址部件編址部件1編址部件編址部件2編址部件編址部件362計(jì)數(shù)器計(jì)數(shù)器(3(3個(gè)個(gè))每個(gè)包括每個(gè)包括控制寄存器控制寄存器 存放控制命令字(

34、只寫)存放控制命令字(只寫)占用占用4 4個(gè)地址個(gè)地址 3 3個(gè)計(jì)數(shù)器,個(gè)計(jì)數(shù)器,1 1個(gè)控制寄存器個(gè)控制寄存器計(jì)數(shù)(初值)寄存器計(jì)數(shù)(初值)寄存器16位計(jì)數(shù)工作單元位計(jì)數(shù)工作單元輸出鎖存器輸出鎖存器(減法)(減法)(兩個(gè)(兩個(gè)8位)位)(兩個(gè)(兩個(gè)8位)位)63設(shè)置設(shè)置82538253的工作方式:的工作方式:此時(shí),全部控制邏輯電路復(fù)位,輸出此時(shí),全部控制邏輯電路復(fù)位,輸出OUTOUT為初始為初始狀態(tài)(高電平或低電平);狀態(tài)(高電平或低電平);設(shè)置計(jì)數(shù)初值到計(jì)數(shù)(初值)寄存器設(shè)置計(jì)數(shù)初值到計(jì)數(shù)(初值)寄存器第一個(gè)第一個(gè)CLKCLK信號使初值寄存器的內(nèi)容置入計(jì)數(shù)工作單信號使初值寄存器的內(nèi)容置入計(jì)

35、數(shù)工作單元元以后每來一個(gè)以后每來一個(gè)CLKCLK信號信號在在CLKCLK的上升沿時(shí),計(jì)數(shù)器對門控信號的上升沿時(shí),計(jì)數(shù)器對門控信號GATEGATE進(jìn)行進(jìn)行采樣,來決定工作狀態(tài)(計(jì)數(shù)、觸發(fā)、停止、重采樣,來決定工作狀態(tài)(計(jì)數(shù)、觸發(fā)、停止、重新置初值);新置初值);在在CLKCLK的下降沿時(shí),計(jì)數(shù)器執(zhí)行部件從初值開始的下降沿時(shí),計(jì)數(shù)器執(zhí)行部件從初值開始作減作減1 1計(jì)數(shù);其中計(jì)數(shù);其中0 0是最大初值,是最大初值,1 1是最小初值;是最小初值;若以二進(jìn)制數(shù)制計(jì)數(shù),則若以二進(jìn)制數(shù)制計(jì)數(shù),則0 0相當(dāng)于相當(dāng)于2 21616=65536=65536;若;若以以BCDBCD碼數(shù)制計(jì)數(shù)時(shí),則碼數(shù)制計(jì)數(shù)時(shí),則0

36、 0相當(dāng)于相當(dāng)于10104 4=10000.=10000.減到減到0 0時(shí),時(shí),OUTOUT端輸出一特殊波形的信號端輸出一特殊波形的信號(3)8253的工作原理的工作原理64CLKGATEOUTD0D7WRRDA1A0CSDBIOWIORA1A0譯碼器高位地址A15-A28253共三組2、8253與總線的連接與總線的連接65 SC1 SC0 RW1 RW0 M2 M1 M0 BCD1-計(jì)數(shù)值為計(jì)數(shù)值為BCD碼格式碼格式0-計(jì)數(shù)值為二進(jìn)制格式計(jì)數(shù)值為二進(jìn)制格式M2 M1 M0 模式選擇模式選擇 0 0 0 模式模式0 0 0 1 模式模式1 / 1 0 模式模式2 / 1 1 模式模式3 1 0

37、 0 模式模式4 1 0 1 模式模式50 0-對計(jì)數(shù)器進(jìn)行鎖存對計(jì)數(shù)器進(jìn)行鎖存0 1-只讀只讀/寫低寫低8位字節(jié)位字節(jié) 1 0-只讀只讀/寫高寫高8位字節(jié)位字節(jié)1 1-只讀只讀/寫低寫低8位字節(jié)位字節(jié), 再讀再讀/寫高寫高8位字節(jié)位字節(jié).0 0-選計(jì)數(shù)器選計(jì)數(shù)器00 1-選計(jì)數(shù)器選計(jì)數(shù)器11 0-選計(jì)數(shù)器選計(jì)數(shù)器21 1-無意義無意義3、8253的編程的編程設(shè)置設(shè)置8253的某一計(jì)數(shù)工作方式的編程只需兩個(gè)的某一計(jì)數(shù)工作方式的編程只需兩個(gè)步驟:步驟:1)寫入控制字;)寫入控制字;2)寫入計(jì)數(shù)初值。)寫入計(jì)數(shù)初值。例1:設(shè)地址總線上A7A2=100101B時(shí),某8253的CS*有效,8253的A

38、1和A0分別與地址總線的A1和A0相連。1)試確定該8253各端口的地址;2)如果控制字為00110110B,試確定該8253的設(shè)置。(1)設(shè)置計(jì)數(shù)器的工作方式例2:某8253的端口地址范圍為94H97H,三個(gè)CLK端均輸入1MHz的時(shí)鐘脈沖,試分析下面的程序,確定計(jì)數(shù)器0和計(jì)數(shù)器1的工作方式及OUT端輸出的波形。MOV AL,00010100BOUT 97H,ALMOV AL,0OUT 94H,ALMOV AL,01010001BOUT 97H,ALMOV AL,0OUT 95H,AL有三種途徑可以讀取計(jì)數(shù)器當(dāng)前值:1)使用端口讀指令 IN AL,XXXXXX01B2)使用鎖存命令D7D6選

39、擇計(jì)數(shù)器,D5D4=00B。3)使用讀回命令(8254增加)(1)方式)方式0:計(jì)數(shù)結(jié)束中斷:計(jì)數(shù)結(jié)束中斷(2)方式)方式1:可由硬件重復(fù)觸發(fā)的單脈沖:可由硬件重復(fù)觸發(fā)的單脈沖(3)方式)方式2:序列脈沖發(fā)生器:序列脈沖發(fā)生器(4)方式)方式3:方波發(fā)生器:方波發(fā)生器(5)方式)方式4:軟件觸發(fā)選通脈沖:軟件觸發(fā)選通脈沖(6)方式)方式5:硬件觸發(fā)選通脈沖:硬件觸發(fā)選通脈沖70在在GATE=1時(shí)時(shí)寫入控制字,寫入控制字,OUT端輸出低電平為起始電平,裝入計(jì)數(shù)初值端輸出低電平為起始電平,裝入計(jì)數(shù)初值n,開始,開始計(jì)數(shù)。計(jì)數(shù)。寫信號后沿(寫信號后沿( )經(jīng)一個(gè))經(jīng)一個(gè)CLK( )將)將n值裝入計(jì)數(shù)

40、器。值裝入計(jì)數(shù)器。每經(jīng)過一個(gè)每經(jīng)過一個(gè)CLK,在,在CLK下降沿,計(jì)數(shù)器減下降沿,計(jì)數(shù)器減1。n=0時(shí),計(jì)數(shù)結(jié)束,時(shí),計(jì)數(shù)結(jié)束,OUT由低電平變?yōu)楦唠娖剑衫迷撾娖阶兓蛴傻碗娖阶優(yōu)楦唠娖剑衫迷撾娖阶兓駽PU發(fā)出中斷請求),并保持,發(fā)出中斷請求),并保持,不開始重新計(jì)數(shù)不開始重新計(jì)數(shù)。只有寫入另一個(gè)計(jì)。只有寫入另一個(gè)計(jì)數(shù)值時(shí),開始新的計(jì)數(shù)。數(shù)值時(shí),開始新的計(jì)數(shù)。在在GATE=0時(shí)時(shí) 停止計(jì)數(shù),直至停止計(jì)數(shù),直至GATE恢復(fù)高電平,再繼續(xù)計(jì)數(shù)恢復(fù)高電平,再繼續(xù)計(jì)數(shù)71軟件啟動,不自動重復(fù)計(jì)數(shù)。軟件啟動,不自動重復(fù)計(jì)數(shù)。裝入初值后裝入初值后OUTOUT端變低電平,計(jì)數(shù)結(jié)束端變低電平,計(jì)數(shù)結(jié)

41、束OUTOUT輸出高電輸出高電平。平。計(jì)數(shù)過程中,計(jì)數(shù)過程中,GATEGATE端應(yīng)保持高電平。端應(yīng)保持高電平。每寫入一次初值計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每寫入一次初值計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。OUTOUT端輸出是一個(gè)約端輸出是一個(gè)約(n+1) (n+1) * *CLKCLK寬度的負(fù)脈沖。寬度的負(fù)脈沖。計(jì)數(shù)過程中可隨時(shí)修改初值重新開始計(jì)數(shù)。計(jì)數(shù)過程中可隨時(shí)修改初值重新開始計(jì)數(shù)。7273在計(jì)數(shù)過程中,若再次產(chǎn)生在計(jì)數(shù)過程中,若再次產(chǎn)生GATE的上升沿觸發(fā)的上升沿觸發(fā),則要,則要重新重新裝入裝入n值,值,在再觸發(fā)脈沖上升沿之后的一個(gè)在再觸發(fā)脈沖上升沿之后的一個(gè)CLK脈沖的下降脈沖的下降沿,計(jì)數(shù)器重

42、新開始計(jì)數(shù)??梢酝ㄟ^該方法沿,計(jì)數(shù)器重新開始計(jì)數(shù)??梢酝ㄟ^該方法改變脈沖的寬度改變脈沖的寬度。74硬件啟動,不自動重復(fù)計(jì)數(shù)。硬件啟動,不自動重復(fù)計(jì)數(shù)。裝入初值后裝入初值后OUTOUT端變高電平,計(jì)數(shù)開始端變高電平,計(jì)數(shù)開始OUTOUT端變?yōu)槎俗優(yōu)榈碗娖?,?jì)數(shù)結(jié)束后又變高。低電平,計(jì)數(shù)結(jié)束后又變高。門控信號門控信號GATEGATE端的跳變觸發(fā)計(jì)數(shù),可重復(fù)觸發(fā)。端的跳變觸發(fā)計(jì)數(shù),可重復(fù)觸發(fā)。若下一次若下一次GATEGATE上升沿提前到達(dá),則上升沿提前到達(dá),則OUTOUT端負(fù)脈端負(fù)脈沖拉寬為兩次計(jì)數(shù)過程之和。沖拉寬為兩次計(jì)數(shù)過程之和。計(jì)數(shù)過程中寫入新初值不影響本次計(jì)數(shù)。計(jì)數(shù)過程中寫入新初值不影響本次

43、計(jì)數(shù)。75寫入控制字,寫入控制字,OUT端輸出高電平為起始電平,裝入計(jì)數(shù)初值端輸出高電平為起始電平,裝入計(jì)數(shù)初值n,開始計(jì)數(shù)。開始計(jì)數(shù)。每一個(gè)計(jì)數(shù)脈沖下降沿每一個(gè)計(jì)數(shù)脈沖下降沿n減減1,當(dāng),當(dāng)n減至減至1時(shí),時(shí),OUT變低,變低,n減減為為0時(shí),時(shí),OUT變高,產(chǎn)生一個(gè)周期一樣寬的負(fù)脈沖。變高,產(chǎn)生一個(gè)周期一樣寬的負(fù)脈沖。接著接著自動裝入自動裝入n連續(xù)計(jì)數(shù)連續(xù)計(jì)數(shù),輸出頻率為與時(shí)鐘脈沖:,輸出頻率為與時(shí)鐘脈沖:fclk/n。計(jì)數(shù)過程中,允許重新裝入新的計(jì)數(shù)過程中,允許重新裝入新的n值,下一個(gè)計(jì)數(shù)周期按新的值,下一個(gè)計(jì)數(shù)周期按新的n值計(jì)數(shù)。值計(jì)數(shù)。在在GATE=1時(shí)時(shí):76計(jì)數(shù)過程中,若計(jì)數(shù)過程

44、中,若GATE0,停止計(jì)數(shù),并強(qiáng)迫,停止計(jì)數(shù),并強(qiáng)迫OUT輸出高電平,在輸出高電平,在GATE變?yōu)楦唠娖胶螅優(yōu)楦唠娖胶螅匦轮匦卵b入裝入n值值,開始計(jì)數(shù)。,開始計(jì)數(shù)。77軟、硬件啟動,軟、硬件啟動,自動重復(fù)計(jì)數(shù)自動重復(fù)計(jì)數(shù)。裝入初值后裝入初值后OUTOUT端變高電平,端變高電平,計(jì)數(shù)到最后一個(gè)計(jì)數(shù)到最后一個(gè)CLKCLK時(shí)時(shí)OUTOUT輸出負(fù)脈沖,輸出負(fù)脈沖,并連續(xù)重復(fù)此過程。并連續(xù)重復(fù)此過程。GATEGATE為計(jì)數(shù)的控制信號為計(jì)數(shù)的控制信號:GATEGATE變低計(jì)數(shù)停止,再變變低計(jì)數(shù)停止,再變高時(shí)的下一個(gè)高時(shí)的下一個(gè)CLKCLK下降沿,從初值開始重新計(jì)數(shù)。下降沿,從初值開始重新計(jì)數(shù)。每個(gè)計(jì)數(shù)

45、周期結(jié)束時(shí)(減到每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到1 1時(shí)),時(shí)),OUTOUT端輸出一端輸出一個(gè)個(gè)CLKCLK寬度的負(fù)脈沖。寬度的負(fù)脈沖。計(jì)數(shù)過程自動重復(fù)進(jìn)行。計(jì)數(shù)過程自動重復(fù)進(jìn)行。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。78(5)(4)(4)(5)輸出頻率為:輸出頻率為:fclk/n的方波。的方波。寫入控制字后,寫入控制字后,OUT端輸出低電平作為起始電平,裝入計(jì)數(shù)值端輸出低電平作為起始電平,裝入計(jì)數(shù)值n后,變?yōu)楹螅優(yōu)楦唠娖健8唠娖?。n為偶數(shù),每個(gè)時(shí)鐘脈沖下降沿為偶數(shù),每個(gè)時(shí)鐘脈沖下降沿n值減值減1,至,至n/2后,電平變?yōu)榈碗娖?,并后,電平變?yōu)榈碗娖?,并繼續(xù)減繼

46、續(xù)減1計(jì)數(shù)至計(jì)數(shù)至0,然后改變,然后改變OUT電平,電平,重新裝入重新裝入n,開始計(jì)數(shù)。,開始計(jì)數(shù)。n為奇數(shù),輸出高電平寬度為為奇數(shù),輸出高電平寬度為(n+1)/2,低電平寬度為低電平寬度為(n-1)/2的方波。的方波。GATE=0 停止計(jì)數(shù),并強(qiáng)迫停止計(jì)數(shù),并強(qiáng)迫OUT輸出高電平,在輸出高電平,在GATE變高后,變高后,重新將重新將n裝入裝入,開始計(jì)數(shù)。開始計(jì)數(shù)。注:注:GATE功能同方式功能同方式2GATE=179軟、硬件啟動,軟、硬件啟動,自動重復(fù)計(jì)數(shù)。自動重復(fù)計(jì)數(shù)。裝入初值后裝入初值后OUTOUT端變高電平,然后端變高電平,然后OUTOUT連續(xù)輸出連續(xù)輸出對稱方波:對稱方波:前前 N/

47、2N/2或(或(N+1N+1)/2 /2 個(gè)個(gè)CLKCLK,OUTOUT為高為高后后N/2N/2或(或(N-1N-1)/2 /2 個(gè)個(gè)CLKCLK, OUTOUT為低。為低。計(jì)數(shù)過程中修改初值不影響本半輪計(jì)數(shù)過程計(jì)數(shù)過程中修改初值不影響本半輪計(jì)數(shù)過程其余的與方式其余的與方式2 2 類似。類似。80寫入控制字后,寫入控制字后,OUT端變?yōu)楦唠娖?,寫入初始值后,?jì)數(shù)器端變?yōu)楦唠娖?,寫入初始值后,?jì)數(shù)器作減作減1計(jì)數(shù),計(jì)數(shù),OUT電平保持不變。電平保持不變。計(jì)數(shù)器減至計(jì)數(shù)器減至0時(shí),時(shí),OUT端輸出一個(gè)脈沖周期的負(fù)脈沖,然后端輸出一個(gè)脈沖周期的負(fù)脈沖,然后停止計(jì)數(shù),停止計(jì)數(shù),只有輸入新的計(jì)數(shù)值后只有

48、輸入新的計(jì)數(shù)值后,才能開始新的計(jì)數(shù)。,才能開始新的計(jì)數(shù)。計(jì)數(shù)過程中,若計(jì)數(shù)過程中,若GATE變低電平,停止計(jì)數(shù),在其變高后,變低電平,停止計(jì)數(shù),在其變高后,重新將重新將n裝入裝入,開始計(jì)數(shù)。,開始計(jì)數(shù)。81軟件啟動,不自動重復(fù)計(jì)數(shù)。軟件啟動,不自動重復(fù)計(jì)數(shù)。裝入初值后輸出端變高電平,計(jì)數(shù)結(jié)束輸出一個(gè)裝入初值后輸出端變高電平,計(jì)數(shù)結(jié)束輸出一個(gè)CLKCLK寬度的負(fù)脈沖寬度的負(fù)脈沖計(jì)數(shù)過程中,計(jì)數(shù)過程中,GATEGATE端應(yīng)保持高電平。端應(yīng)保持高電平。每寫入一次初值,計(jì)數(shù)一個(gè)周期,然后停止計(jì)每寫入一次初值,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0 0時(shí)),時(shí)

49、),OUTOUT端輸出端輸出一個(gè)一個(gè)TCLKTCLK寬度的負(fù)脈沖。寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。82寫入控制字后,寫入控制字后,OUT端變?yōu)楦唠娖?,寫入初始值端變?yōu)楦唠娖?,寫入初始值n后,必后,必須等待須等待GATE的上升沿的上升沿觸發(fā)才轉(zhuǎn)入計(jì)數(shù)。觸發(fā)才轉(zhuǎn)入計(jì)數(shù)。計(jì)數(shù)器減至計(jì)數(shù)器減至0時(shí),時(shí),OUT端輸出一個(gè)脈沖周期的負(fù)脈沖。然端輸出一個(gè)脈沖周期的負(fù)脈沖。然后后n值自動裝入計(jì)數(shù)器,但要等值自動裝入計(jì)數(shù)器,但要等GATE的上升沿來后才再次的上升沿來后才再次開始計(jì)數(shù)。開始計(jì)數(shù)。計(jì)數(shù)過程中,若計(jì)數(shù)過程中,若GATE變低電平,變低電平,不影響

50、計(jì)數(shù)不影響計(jì)數(shù),但其上升,但其上升沿將使得沿將使得n重新裝入計(jì)數(shù)器重新裝入計(jì)數(shù)器,開始計(jì)數(shù)。,開始計(jì)數(shù)。83硬件啟動,不自動重復(fù)計(jì)數(shù)。硬件啟動,不自動重復(fù)計(jì)數(shù)。OUTOUT端波形與方式端波形與方式4 4相同相同寫入初值時(shí),寫入初值時(shí),GATEGATE端應(yīng)保持低電平。端應(yīng)保持低電平。GATEGATE每出現(xiàn)一次正脈沖,計(jì)數(shù)一個(gè)周期,然后每出現(xiàn)一次正脈沖,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到結(jié)束時(shí)(減到0 0時(shí)),時(shí)),OUTOUT端輸出端輸出一個(gè)一個(gè)CLKCLK寬度的負(fù)脈沖。寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過

51、程。84在使用在使用82538253芯片時(shí),首先要對其進(jìn)行初始化編芯片時(shí),首先要對其進(jìn)行初始化編程。程。初始化編程包括寫入控制字和寫入計(jì)數(shù)值初始化編程包括寫入控制字和寫入計(jì)數(shù)值兩個(gè)步驟。兩個(gè)步驟。第一步,寫入控制字。第一步,寫入控制字。任一計(jì)數(shù)任一計(jì)數(shù)器的控制字都要從器的控制字都要從8253的控制口的控制口地址寫入,控制哪個(gè)計(jì)數(shù)器由控地址寫入,控制哪個(gè)計(jì)數(shù)器由控制字的制字的D7D6位來決定。位來決定。第二步,寫入計(jì)數(shù)初始值。第二步,寫入計(jì)數(shù)初始值。計(jì)數(shù)初始值經(jīng)由各計(jì)數(shù)器的端口地計(jì)數(shù)初始值經(jīng)由各計(jì)數(shù)器的端口地址寫入。址寫入。若是若是16位計(jì)數(shù)值,則分兩次寫入,先寫入低位計(jì)數(shù)值,則分兩次寫入,先寫

52、入低8位,再寫入高八位,再寫入高八位。位。寫入順序: 可按計(jì)數(shù)器分別寫入控制字和初值。 也可先寫所有計(jì)數(shù)器控制字,再寫入它們的初值5、8253/8254的應(yīng)用的應(yīng)用書本P242例5-8:MOV DX, 26BHMOV AL, 00110000BOUT DX, ALMOV DX, 268HMOV AL, 00HOUT DX, ALMOV AL, 40HOUT DX, AL2008.1-39;2007-38;2010-3886包含包含3 3個(gè)個(gè)1616位計(jì)數(shù)器通道位計(jì)數(shù)器通道4 4個(gè)編址部件:計(jì)數(shù)器個(gè)編址部件:計(jì)數(shù)器0/1/20/1/2和控制寄存器和控制寄存器每個(gè)計(jì)數(shù)器通道工作前必須初始化:每個(gè)計(jì)

53、數(shù)器通道工作前必須初始化:控制字和計(jì)數(shù)初值6 6種工作方式種工作方式每種工作方式:啟動方式、輸出波形、是否可重每種工作方式:啟動方式、輸出波形、是否可重復(fù)計(jì)數(shù)等各不相同復(fù)計(jì)數(shù)等各不相同1、8255A的 外部引腳和 內(nèi)部結(jié)構(gòu)1)引腳 數(shù)據(jù)線:與CPU交換數(shù)據(jù)PC口PB口PA口地址選擇A1A000端口A01端口B10端口C11控制字寄存器2 2、8255A8255A與總線的連接與總線的連接3 3、8255A8255A的編程的編程(1 1)設(shè)置工作方式和端口讀)設(shè)置工作方式和端口讀/ /寫寫(2 2)置位復(fù)位端口)置位復(fù)位端口C C應(yīng)用注意應(yīng)用注意 :PCPC口控制字雖然是對端口口控制字雖然是對端口C C操作,但操作,但應(yīng)寫入到控制口地址,而不是寫入到應(yīng)寫入到控制口地址,而不是寫入到PCPC數(shù)據(jù)口。數(shù)據(jù)口。4 4、8255A8255A的工作方式的工作方式(1 1)方式)方式0 0:基本輸入:基本輸入/ /輸出。輸出。在方式在方式0 0下,下,A A、B B、C C三個(gè)端口均用作輸入三個(gè)端口均用作輸入/ /輸出,輸出,這種輸入這種輸入/ /輸出只是簡單的輸入輸出只是簡單的輸入/ /輸出,無聯(lián)絡(luò)信輸出,無聯(lián)絡(luò)信號。號。(2)方式)方式1:帶選通的輸入:帶選通的輸入/輸出輸出1)方式)方式1的輸入的輸入2)方式)方式1的輸出

溫馨提示

  • 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

提交評論