




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE 第九章 計數器和定時器概述在計算機系統中經常要用到定時信號,可用硬件和軟件兩種方法來獲得。延時子程序是常用的軟件方法,當延長數比較大時,常常將延時子程序設計為循環程序。軟件延時優點是節省硬件,缺點是CPU一直被占用降低效率。如用硬件延時可用555等定時器芯片,可編程則用定時器計數器82538254等。方法是根據需要的定時時間,用指令對定時器設定定時常數,并用指令啟動定時器,于是開始計數,定時到產生輸出,突出的優點是不占用CPU的時間.9.1可編程計數器定時器的工作原理計數器與定時器的主要差別:作為計數器,減”1”到0后,輸出一個信號便結束;作為定時器時,則不斷產生信號.具體說,C/T
2、有如下用處:多任務分時系統中用來作為中斷信號實現程序的切換.可以往IO設備輸出精確的定時信號.作為一個可編程的波特率發生器.實現時間延遲.圖9.0是典型的計數器定時器原理圖大方框中有:4個寄存器(初始值寄存器,計數輸出寄存器,控制寄存器和狀態寄存器),它們都可被CPU訪問.輸入信號中有一個時鐘(CLK),它決定了計數速率.還有一個門脈沖(GATE),它是由設備送來的,作為對時鐘的控制信號.計數到達”0”時,輸出端OUT有信號,可作中斷請求信號,也有用來啟動一個外設的輸入輸出操作.任何時候都可將計數器的值傳輸到計數輸出寄存器中而被讀出,讀出過程不會干擾計數,因而計數輸出寄存器起到了一個緩沖作用.
3、計數到達”0”時,一方面會在輸出引腿OUT上輸出一個信號,另一方面還會在狀態寄存器的對應位上反映出來.既可請求中斷,也可供軟件查詢.控制寄存器可用來控制工作模式,即門脈沖和時鐘脈沖怎樣配合產生輸出模式:門脈沖控制時鐘輸入,門脈沖到來時,時鐘有效.門脈沖結束時,時鐘無效.用門脈沖來重新啟動計數.用門脈沖停止計數,原來在計數,門脈沖一來,停止計數,OUT為高電平.單一計數,與門脈沖沒有關系(但須有效電平),計數到0,輸出停止.循環計數,計數到0,輸出信號,又從初值寄存器獲得初值,開始新的計數過程. 計數初值時鐘頻率TT為時間片的長度.9.2可編程計數器定時器82538253的結構和工作原理編程結構
4、Intel8253是NMOS工藝制成的可編程計數器定時器,最高計數速率為2.6MHz, 圖9.1是8253的編程結構圖8253內部有3個計數器,分別為計數器0,1,2,相互獨立工作。每個計數器內有一個計數初值寄存器CR、計數執行部件CE、輸出鎖存OL它們都是16位寄存器,但也可作為8位寄存器用。CPU可以通過輸入輸出指令訪問8253內部寄存器。8253的工作原理圖9.3是8253的工作原理圖圖9.4給出了8253的引腿圖計數器0,計數器1,計數器2每個計數器包含一個16位的初值寄存器,計數執行部件和一個鎖存器。各計數器的外部輸入輸出信號如下:計數器0:CLK0計數器0的時鐘輸入。 GATE0計
5、數器0的門脈沖控制輸入。 OUT0計數器0的輸出。計數器1、計數器2(略)總線數據緩沖器(3方面功能)。(通過它)往計數器設置計數初值。從計數器讀取計數值。往控制寄存器設置控制字讀寫邏輯電路A1、A0用來對3個計數器以及控制寄存器進行尋址RD、WR、CS含義明了。控制寄存器A1A011時,選中控制寄存器,可寫入控制字。表9.5 8253輸入信號與各功能的對應關系上表兩點說明:除了表中7種信號組合外,其它組合下,數據總線為高阻狀態。A1A0=11時,第一次寫入的一定是控制字,此后寫入的作為鎖存命令。2. 8253控制寄存器的格式圖 8253的控制寄存器的格式BCD位:1計數值為BCD碼格式,0為
6、二進制格式M2、M1、M0為模式選擇,共6中模式(05)RW1、RW0:讀寫指示位00對計數器進行鎖存操作,以便讀出。01只讀寫低8位字節10只讀寫高8位字節11先讀寫低8位字節,再讀寫高8位字節SC1、SC0:用來選擇計數器00計數器0 01計數器1 10計數器2 11無意義3. 8253的編程命令因為8253的控制寄存器和3個計數器分別具有獨立的編程地址,并且控制器本身的內容又確定了所控制的寄存器序號,所以編程沒有太多嚴格的順序規定。遵守下列兩條即可:對計數器設置初值前必須先寫控制字初值設置時,要符合控制字中的格式規定(即只寫高位還是只寫低位等)。編程命令有兩類,讀出命令和寫入命令:讀出命
7、令讀出命令用來讀取計數器當前的值。寫入命令(有3個)設置控制命令字:用來選擇計數器設定工作模式和計數格式.設置初始值:用來給出計數初值(8位或16位),16位要用兩條輸出指令.鎖存命令: 配合讀出命令,讀計數值時,先要將計數值在輸出鎖存器中鎖住.4. 8253的工作模式(共6種),共同原則如下:控制字寫入計數器時,所有控制邏輯電路立即復位,輸出端OUT進入初始態初始值寫入后,要經過一個時鐘上升沿和一個下降沿,執行部件開始計數通常門控信號在時鐘CLK的上升沿被采樣,門控信號觸發方式有邊沿和電平觸發兩種。模式0、4電平觸發;模式1、5上升沿觸發,2、3均可。 表7.2是經過歸納的各工作模式下受門控
8、信號影響的情況CLK的下降沿計數器作減1計數。0是計數器能容納的最大初始值。6種模式逐一介紹如下:模式0計數結束產生中斷8253作計數器用時一般工作在模式0,特點如下:控制字寫入后OUT起始電平為低電平,保持到計數達0,轉高電平直到寫入新計數值控制字和計數初值寫入后必須等下一個CLK,初值才送執行部件門控GATE=1并獲計數初值開始計數,此時GATE0則停止計數,但門控不影響OUT電平,所以計數時如有一段時間GATE=0, OUT低電平相應延長.計數過程中又有新計數值輸入,下一個CLK起按新計數值計數.2字節初值如在GATE=0時寫入初值,當GATE=1時計數開始,N個CLK后轉高電平圖9.4
9、模式0的時序圖模式1可重復觸發的單穩態觸發器寫入控制字后OUT起始低電平,GATE上升沿到來時下一CLK起OUT變低,直到計數到0計數到0,OUT轉高,直到下一次觸發后第1個CLK來前。如果計數初值為N,輸出OUT產生持續N個CLK的負脈沖。模式1可以重復觸發,一個負脈沖結束后,又來一個門控上升沿,重復上述過程如在輸出脈沖期間又來一個門控上升沿,則從下一CLK起又從初值減1延長如在輸出脈沖期間又寫入新計數值,當前輸出不受影響,除非又來一個門控信號,觸發后按新計數初值減1計數.圖9.5模式1的時序圖模式2分頻器控制寫入OUT高起始,計數值入下一CLK減1計數,減到”1”,OUT變低電平完成一次計
10、數后輸出OUT又為高電平,開始一個新的計數過程,周而復始對于初值N,輸出周期為N的信號,N-1高電平,1低電平門控GATE=1 時計數進行,=0停止計數.如在輸出脈沖期間GATE0,OUT仍將高電平,但下一CLK重新計數用門控信號來硬件同步.在計數器寫入控制字和初值后,如果GATE一直高電平下一CLK開始計數經過N-1個CLK,OUT變低,這種通過寫入初值同步為軟件同步.如計數期間寫入新計數值,GATE一直處于高電平,OUT不受影響,但下一輸出周期中按新計數值計數在計數到1之前,如寫入新計數值,GATE又出現上升沿,下一CLK按新計數圖9.6模式2分頻器的時序圖模式3方波發生器模式3和模式2類
11、似,但輸出為方波或者基本對稱的矩形波控制字輸入后OUT高起始電平,寫入計數值下一CLK開始計數,計到一半,OUT變低,直到計數終值又變高,產生周期N的輸出信號N為偶數,對稱方波,N為奇數時,高電平(N+1)/2,低電平(N1)/2GATE=1計數進行,0計數停止.OUT低時GATE變低OUT立即變高計數停止.在GATE又變高后,下一CLK開始重新計數.硬件同步.如果門控GATE一直高電平,寫入控制和計數值后下一CLK軟件同步正在計數時寫入新計數值不影響當前周期,但若又受門控上升沿下一CLK按新值計數.圖9.7是模式3的時序圖模式4軟件觸發的選通信號發生器控制字寫入后OUT高起始,計數值寫入后一
12、個CLK開始計數,減到0時OUT變低,維持1個CLK后,又變恒高,此負脈沖可作選通信號.計數初值到計數初值寄存器后,下一CLK開始計數,N個CLK后出1個負脈沖GATE=1進行計數,=0停止計數,輸出維持當時電平,只有減為0時才有負脈沖如計數時又寫入新計數值,下一CLK(雙字節從第2字節后)軟件同步模式4時主要靠寫入初值,來觸發計數器,產生負脈沖軟件觸發選通信號圖9.8模式4軟件觸發選通脈沖發生器模式5硬件觸發的選通信號發生器控制字寫入后OUT高起始,計數值寫入后必須有門控上升沿到來,才在下一CLK開始計數,計數到0時,輸出寬度為1個CLK的負脈沖:硬件觸發選通脈沖如計數初值為N,遇到門控上升
13、沿再過1個CLK,計數到N后輸出負脈沖.如果計數過程中,GATE又來上升沿,再過1個CLK,重獲計數初值減到0止如在計數中寫入新值,但無觸發脈沖,當前輸出周期不受影響,再受觸發時,按新初值計數.如在計數過程中寫入新值,本周期結束前又受觸發,則下一CLK圖9.9是模式5的時序圖可見模式5和模式4很相似,4用軟件觸發,5用硬件觸發。各工況兩點注意:時鐘周期和輸出周期的區別,輸出周期是OUT的輸出波形.8253的輸出波形都是在時鐘周期下降沿時產生電平的變化盡管8253有6種工作模式,從輸出端看,仍不外乎計數器 定時器.8253應用舉例例子,用8253級聯定時圖9.10 8253級聯定時應用要求825
14、3的OUT1發光二極管,亮1秒,熄滅1秒; OUT2發光二極管,亮2秒,熄滅2秒8253各通道地址為:FFE9HFFEFH,試編程。計數器0的CLK0來自2MHz經D觸發器轉化為T觸發器2分頻,OUT0作為計數器1、2的時鐘,CLK1、CLK2初始化程序段:通道0的控制字為:00 11 010 1B=35H通道1的控制字為:01 11 011 1B=77H通道2的控制字為:10 11 011 1B=0B7H地址分別為:0FFE9H0FFEFH各通道計數初值分別為:通道0計數初值(BCD碼):2000通道1計數初值(BCD碼):1000通道2計數初值(BCD碼):2000 程序段如下:MOV D
15、X,0FFEFHMOV AL,35HOUT DX,AL ;寫通道0的控制字MOV AL,77HOUT DX,AL ;寫通道1的控制字MOV AL,0B7HOUT DX,AL ;寫通道2的控制字MOV DX,0FFE9HMOV AL,00OUT DX,AL ;寫通道0的計數初值低8位MOV AL,20HOUT DX,AL ;寫通道0的計數初值高8位MOV DX,0FFEBHMOV AL,00OUT DX,AL ;寫通道1的計數初值低8位MOV AL,10HOUT DX,AL ;寫通道1的計數初值高8位MOV DX,0FFEDHMOV AL,00OUT DX,AL ; 寫通道2的計數初值低8位MO
16、V AL,10HOUT DX,AL ;寫通道2的計數初值高8位1用8254測量外部頻率計數器0 方式0;計數器1 方式1;計數器2 方式0計數器2的GATE2恒為高電平,一旦寫入控制字OUT2即為初始低電平,寫入計數初值后開始計數,OUT2保持低電平直到計數到0,轉為高電平,不再變化。OUT2作為GATE1,計數器1被GATE1高電平觸發后,輸出單穩態負脈沖,此脈沖經過反相器變正脈沖后后作為GATE0。計數器0寫入計數初值后,等待GATE0成為高電平,GATE0高電平期間計數器0計數,GATE0降為低電平后停止計數,停止計數后讀取計數器0的計數值,頻率可求。例2用8253進行外部事件計數,要求
17、:用計數器0外部事件計數,計滿350向CPU發中斷請求利用計數器1產生頻率為1kHz的正弦波利用計數器2產生寬度為0.5ms的單穩態脈沖從圖上看出,端口地址為18H1EH,外部事件CLK0輸入計數器0工作在方式0,計滿350從OUT0發中斷請求計數器1輸入時鐘2MHz,方式3,產生1kHz方波計數初值為:1ms/0.5s=2000,有源濾波后成正弦波計數器2方式1,初值為500s0.5s1000 BCD碼計數器0的計數初值為350,地址為18H計數器1地址為1AH;計數器2地址為1CH;控制口1EH;初始化程序如下:MOV AL,31HOUT 1EH,AL;寫計數器0控制字MOV AL,50HOUT 18H,AL;寫計數器0計數初值低8位MOV AL,03HOUT 18H,AL;寫計數器0計數初值高8位MOV AL,77HOUT 1EH,AL;寫計數器1控制字MOV AL,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 釀造企業危機公關技巧考核試卷
- 節假日安全管理制度執行情況專項檢查考核試卷
- 涂料在食品工業中的應用與安全考核試卷
- 鎢鉬礦地質勘探考核試卷
- 通訊設備租賃在跨行業合作中的商業模式創新考核試卷
- 金屬包裝容器內壁處理技術考核試卷
- 老年癡呆疾病護理常規
- 婦產科麻醉教學
- 表格設計方法與應用
- 職業學校急救課件
- GB/T 42599-2023風能發電系統電氣仿真模型驗證
- 《電子技術基礎》期末考試復習題庫(含答案)
- 三國姜維傳攻略
- 中考英語補全對話
- 防治腦卒中專業知識講座
- 平壓平模切機安全操作規程、風險告知卡、應急處置
- JJG 646-2006移液器
- GB/T 40167-2021紙和紙板加速老化(100 ℃)
- GB/T 17626.4-2018電磁兼容試驗和測量技術電快速瞬變脈沖群抗擾度試驗
- 活性炭改性及吸附條件研究性實驗
- 小學體育教研活動記錄(有內容)
評論
0/150
提交評論