第三節(jié)可編程計數(shù)_第1頁
第三節(jié)可編程計數(shù)_第2頁
第三節(jié)可編程計數(shù)_第3頁
第三節(jié)可編程計數(shù)_第4頁
第三節(jié)可編程計數(shù)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三節(jié)可編程計數(shù)定時控制器82538253具有3個獨立的計數(shù)通道,采用減1計數(shù)方式。在門控信號有效時,每輸入1個計數(shù)脈沖,通道作1次計數(shù)操作。當計數(shù)脈沖是已知周期的時鐘信號時,計數(shù)就成為定時。一、8253內(nèi)部結(jié)構(gòu)8253芯片有24條引腳,封裝在雙列直插式陶瓷管殼內(nèi)。1.數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。2.讀寫控制讀寫控制分別連接系統(tǒng)的IOR#和IOW#, 由CPU控制著訪問8253的內(nèi)部通道。接收CPU送入的讀寫控制信號, 并完成對芯片內(nèi)部

2、各功能部件的控制功能, 因此, 它實際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號,由CPU輸入。8253內(nèi)部有3個獨立的通道和一個控制字寄存器, 它們構(gòu)成8253芯片的4個端口,CPU可對3個通道進行讀寫操作3對控制字寄存器進行寫操作。 這4個端口地址由最低2位地址碼A1A0來選擇。如表所示。3.通道選擇(1) CS#片選信號,由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。(2) RD#、WR#讀寫控制命令,由CPU輸入, 低電平有效。RD#效時,CPU讀取由A1A0所選定的通道內(nèi)計數(shù)器的內(nèi)容。WR#有效時,CPU將計數(shù)值寫入各個通道的計數(shù)器中, 或者是將方式控制字寫入

3、控制字寄存器中。CPU對8253的讀寫操作如表所示。4.計數(shù)通道02每個計數(shù)通道內(nèi)含1個16位的初值寄存器、減1計數(shù)器和1個16位的(輸出)鎖存器。8253內(nèi)部包含3個功能完全相同的通道,每個通道內(nèi)部設有一個16位計數(shù)器,可進行二進制或十進制(BCD碼)計數(shù)。采用二進制計數(shù)時, 最大計數(shù)值是FFFFH, 采用BCD碼計數(shù)時。 最大計數(shù)值是9999。與此計數(shù)器相對應, 每個通道內(nèi)設有一個16位計數(shù)值鎖存器。必要時可用來鎖存計數(shù)值。當某通道用作計數(shù)器時,應將要求計數(shù)的次數(shù)預置到該通道的計數(shù)器中、被計數(shù)的事件應以脈沖方式從CLK端輸入, 每輸入一個計數(shù)脈沖,計數(shù)器內(nèi)容減“1”,待計數(shù)值計到“0”。

4、OUT端將有輸出。表示計數(shù)次數(shù)到。當某個通道用作定時器時。 由CLK輸入一定頻率的時鐘脈沖。根據(jù)要求定時的時間長短確定所需的計數(shù)值。并預置到計數(shù)器中,每輸入一個時鐘脈沖,計數(shù)器內(nèi)容減“1”, 待計數(shù)值計到“0”。OUT將有輸出,表示定時時間到。允許從CLK輸入的時鐘頻在12MHz范圍內(nèi)。因此,任一通道作計數(shù)器用或作定時器用,其內(nèi)部操作完全相同,區(qū)別僅在于前者是由計數(shù)脈沖進行減“1”計數(shù)。 而后者是內(nèi)時鐘脈沖進行減“1”計數(shù)。作計數(shù)器時, 要求計數(shù)的次數(shù)可直接作為計數(shù)器的初值預置到減“1”計數(shù)器中。作定時器時, 計數(shù)器的初值即定時系數(shù)應根據(jù)要求定時的時間進行如下運算才能得到:定時系數(shù)需要定時的時

5、間時鐘脈沖周期設置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設置的通道及工作方式;計數(shù)/定時:向通道寫入計數(shù)值,啟動計數(shù)操作;讀取當前的計數(shù)值:向指定通道讀取當前計數(shù)器值時,8253將計數(shù)器值存入鎖存器,從鎖存器向外提供當前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。計數(shù)到:當計數(shù)器減1為0時,通過引腳OUTi向外輸出“到”的脈沖信號。計數(shù)初值輸入存放在初值寄存器中,計數(shù)開始或重裝入時被復制到計數(shù)器中。 鎖存器在非鎖存狀態(tài),其值隨計數(shù)器的變化而變化;一旦鎖存了計數(shù)器的當前值,直到鎖存器值被讀取后才能解除鎖存狀態(tài)。5.方式選擇控制字二、8253的通道工作方式8253中各通道可有6種可供選

6、擇的工作方式, 以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。8253的各種工作方式如下:1.方式0:計數(shù)結(jié)束則中斷工作方式0被稱為計數(shù)結(jié)束中斷方式,它的定時波形如圖所示。當任一通道被定義為工作方式0時, OUTi輸出為低電平;若門控信號GATE為高電平,當CPU利用輸出指令向該通道寫入計數(shù)值WR#有效時,OUTi仍保持低電平,然后計數(shù)器開始減“1”計數(shù), 直到計數(shù)值為“0”,此刻OUTi將輸出由低電平向高電平跳變,可用它向CPU發(fā)出中斷請求,OUTi端輸出的高電平一直維持到下次再寫入計數(shù)值為止。在工作方式0情況下,門控信號GATE用來控制減“1”計數(shù)操作是否進行。當GATE=1時,允許減“1”計數(shù)

7、;GATE=0時,禁止減“1”計數(shù); 計數(shù)值將保持GATE有效時的數(shù)值不變, 待GATE重新有效后,減“1”計數(shù)繼續(xù)進行。顯然,利用工作方式0既可完成計數(shù)功能, 也可完成定時功能。當用作計數(shù)器時,應將要求計數(shù)的次數(shù)預置到計數(shù)器中,將要求計數(shù)的事件以脈沖方式從CLKi端輸入, 由它對計數(shù)器進行減“1”計數(shù),直到計數(shù)值為0,此刻OUTi輸出正跳變, 表示計數(shù)次數(shù)到。當用作定時器時,應把根據(jù)要求定時的時間和CLKi的周期計算出定時系數(shù),預置到計數(shù)器中。從CLKi,輸入的應是一定頻率的時鐘脈沖,由它對計數(shù)器進行減“1”計數(shù), 定時時間從寫入計數(shù)值開始,到計數(shù)值計到“0”為止,這時OUTi輸出正跳變,表

8、示定時時間到。有一點需要說明,任一通道工作在方式0情況下, 計數(shù)器初值一次有效,經(jīng)過一次計數(shù)或定時后如果需要繼續(xù)完成計數(shù)或定時功能,必須重新寫入計數(shù)器的初值。2.方式1:單脈沖發(fā)生器工作方式1被稱作可編程單脈沖發(fā)生器,其定義波形如圖。進入這種工作方式, CPU裝入計數(shù)值n后OUTi輸出高電平, 不管此時的GATE輸入是高電平還是低電平, 都不開始減“1”計數(shù),必須等到GATE由低電平向高電平跳變形成一個上升沿后,計數(shù)過程才會開始。與此同時,OUTi輸出由高電平向低電平跳變,形成了輸出單脈沖的前沿,待計數(shù)值計到“0”, OUTi輸出由低電平向高電平跳變,形成輸出單脈沖的后沿, 因此,由方式l所能

9、輸出單脈沖的寬度為CLKi周期的n倍。如果在減“1”計數(shù)過程中, GATE由高電平跳變?yōu)榈碗姾?,這并不影響計數(shù)過程,仍繼續(xù)計數(shù);但若重新遇到GATE的上升沿,則從初值開始重新計數(shù), 其效果會使輸出的單脈沖加寬,如教材圖9-22(b)中的第2個單脈沖。這種工作方式下,計數(shù)值也是一次有效,每輸入一次計數(shù)值,只產(chǎn)生一個負極性單脈沖。3.方式2:速率波發(fā)生器工作方式2被稱作速率波發(fā)生器,其定時波形如圖所示。進入這種工作方式, OUTi輸出高電平,裝入計數(shù)值n后如果GATE為高電平,則立即開始計數(shù),OUTi保持為高電平不變; 待計數(shù)值減到“1”和“0”之間, OUTi將輸出寬度為一個CLKi周期的負脈沖

10、,計數(shù)值為“0”時,自動重新裝入計數(shù)初值n,實現(xiàn)循環(huán)計數(shù),OUTi將輸出一定頻率的負脈沖序列, 其脈沖寬度固定為一個CLKi周期, 重復周期為CLKi周期的n倍。如果在減“1”計數(shù)過程中,GATE變?yōu)闊o效(輸入0電平),則暫停減“1”計數(shù),待GATE恢復有效后,從初值n開始重新計數(shù)。這樣會改變輸出脈沖的速率。如果在操作過程中要求改變輸出脈沖的速率,CPU可在任何時候,重新寫人新的計數(shù)值, 它不會影響正在進行的減“1”計數(shù)過程,而是從下一個計數(shù)操作用期開始按新的計數(shù)值改變輸出脈沖的速率。4.方式3:方波發(fā)生器工作方式3被稱作方波發(fā)生器,其定時波型如圖所示。任一通道工作在方式3, 只在計數(shù)值n為偶

11、數(shù),則可輸出重復周期為n、占空比為1:1的方波。進入工作方式3,OUTi輸出低電平, 裝入計數(shù)值后,OUTi立即跳變?yōu)楦唠娖?。如果當GATE為高電平, 則立即開始減“1”計數(shù),OUTi保持為高電平,若n為偶數(shù),則當計數(shù)值減到n/2時,OUTi跳變?yōu)榈碗娖?,一直保持到計?shù)值為“0”,系統(tǒng)才自動重新置入計數(shù)值n,實現(xiàn)循環(huán)計數(shù)。這時OUTi端輸出的周期為n×CLKi周期,占空比為1:1的方波序列; 若n為奇數(shù), 則OUTi端輸出周期為n×CLKi周期,占空比為(n+1)/2)/(n-1)/2)的近似方波序列。如果在操作過程中, GATE變?yōu)闊o效,則暫停減“1”計數(shù)過程,直到GAT

12、E再次有效,重新從初值n開始減“l(fā)”計數(shù)。如果要求改變輸出方波的速率, 則CPU可在任何時候重新裝入新的計數(shù)初值n,并從下一個計數(shù)操作周期開始改變輸出方波的速率。5.方式4:軟件觸發(fā)方式計數(shù)工作方式4被稱作軟件觸發(fā)方式,其定時波形如圖所示。進入工作方式4,OUTi輸出高電平。 裝入計數(shù)值n后, 如果GATE為高電平,則立即開始減“1”計數(shù),直到計數(shù)值減到“0”為止,OUTi輸出寬度為一個CLKi周期的負脈沖。由軟件裝入的計數(shù)值只有一次有效,如果要繼續(xù)操作, 必須重新置入計數(shù)初值n。如果在操作的過程中,GATE變?yōu)闊o效,則停止減“1”計數(shù), 到GATE再次有效時,重新從初值開始減“1”計數(shù)。顯然

13、,利用這種工作方式可以完成定時功能,定時時間從裝入計數(shù)值n開始,則OUTi輸出負脈沖(表示定時時間到),其定時時間n×CLK周期。 這種工作方式也可完成計數(shù)功能,它要求計數(shù)的事件以脈沖的方式從CLKi輸入,將計數(shù)次數(shù)作為計數(shù)初值裝入后,由CLKi端輸入的計數(shù)脈沖進行減“1”計數(shù),直到計數(shù)值為“0”,由OUTt端輸出負脈沖(表示計數(shù)次數(shù)到)。 當然也可利用OUTj向CFU發(fā)出中斷請求。 因此工作方式4與工作方式0很相似,只是方式0在OUTi端輸出正階躍信號、方式4在OUTi端輸出負脈沖信號。6.方式5:硬件觸發(fā)方式計數(shù)工作方式5被稱為硬件觸發(fā)方式,其定時波形如圖所示。進入工作方式5,

14、OUTi輸出高電平, 硬件觸發(fā)信號由GATE端引入。 因此,開始時GATE應輸入為0, 裝入計數(shù)初值n后,減“1”計數(shù)并不工作,一定要等到硬件觸發(fā)信號由GATE端引入一個正階躍信號,減“1”計數(shù)才會開始,待計數(shù)值計到“0”, OUTi將輸出負脈沖,其寬度固定為一個CLKi周期,表示定時時間到或計數(shù)次數(shù)到。這種工作方式下,當計數(shù)值計到“0”后, 系統(tǒng)將自動重新裝入計數(shù)值n,但并不開始計數(shù), 一定要等到由GATE端引入的正跳沿,才會開始進行減“1”計數(shù), 因此這是一種完全由GATE端引入的觸發(fā)信號控制下的計數(shù)或定時功能。如果由CLKi輸入的是一定頻率的時鐘脈沖,那么可完成定時功能,定時時間從GAT

15、E上升沿開始,到OUTi端輸出負脈沖結(jié)束。如果從CLKi端輸入的是要求計數(shù)的事件,則可完成計數(shù)功能,計數(shù)過程從GATE上升沿開始,到OUTi輸出負脈沖結(jié)束。GATE可由外部電路或控制現(xiàn)場產(chǎn)生,故硬件觸發(fā)方式由此而得名。如果需要改變計數(shù)初值, CPU可在任何時候用輸出指令裝入新的計數(shù)初值m,它將不影響正在進行的操作過程, 而是到下一個計數(shù)操作周期才會按新的計數(shù)值進行操作。從上述各工作方式可看出,GATE作為各通道的門控信號,對于各種不同的工作方式,它所起的作用各不相同。在8253的應用中,必須正確使用GATE信號,才能保證各通道的正常操作。7.讀取計數(shù)器的當前值直接讀計數(shù)器:輸出鎖存器在非鎖存狀

16、態(tài)會跟隨計數(shù)器計數(shù)的變化而變化,直接讀計數(shù)器是從鎖存器得到計數(shù)器的當前值。但由于計數(shù)器處于工作狀態(tài),讀出值不一定能穩(wěn)定。先鎖存再讀?。和ㄟ^方式選擇控制字對指定通道(SC1、SC0)的計數(shù)值鎖入鎖存器(RL1RL0=00), 鎖存器一旦鎖存了當前計數(shù)值,就不再隨計數(shù)器變化直到被讀取。讀計數(shù)器通道(有鎖存器)。三、8253應有舉例例1:設fCLK=1MHz,端口地址40H46H,40H為0通道,42H為1通道,用0通道產(chǎn)生500Hz的方波。計數(shù)初值N=fCLK/fOUT=1000000/500=2000=7D0H初始化編程:選二進制計數(shù)、方式3、先寫低后寫高,方式控制字為:00110110B;初始化編程:MOVAL,00110110B OUT46H,ALMOVAL,0D0HOUT40H,ALMOVAL,07HOUT40H,AL例2:設fCLK=1MHz,端口地址40H46H,40H為0通道,42H為2通道,用2通道產(chǎn)生周期1秒的負脈沖信號。計數(shù)初值N=fCLK/fOUT=1000000/1>65536,因此需用2個通道。用0通對fCLK進行分頻產(chǎn)生低頻方波信號(設產(chǎn)生500Hz=1F4H), 作為2通道的時鐘。初始化編程:MOVAL,00110110B;設置0通道為方波發(fā)生器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論