第9章計數器定時器ppt課件_第1頁
第9章計數器定時器ppt課件_第2頁
第9章計數器定時器ppt課件_第3頁
第9章計數器定時器ppt課件_第4頁
第9章計數器定時器ppt課件_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第9章章 計數器計數器/定時器定時器9.1 概述9.2 可編程計數器/定時器82539.3 8253的運用9.1 概述概述在許多微機系統中,動態存儲器的刷新定時、系統日歷時鐘的計時以及喇叭的聲源,都是用定時信號來產生的。在計算機實時控制和處置系統中,計算機主機需求每隔一定的時間就對處置對象進展采樣,再對獲得的數據進展處置,這也要用到定時信號。主要有三種方法主要有三種方法軟件定時即讓計算機執行一個延遲程序段。經過正確地挑選指令和安排循環次數很容易實現軟件定時。優點是節省硬件,但主要缺陷是執行延遲程序期間,CPU不斷被占用,降低了CPU的效率。不可編程的硬件定時可以采用小規模集成電路器件如555

2、,外接電阻和電容構成。這樣的定時電路簡單,而且經過改動電阻和電容,可以使定時在一定的范圍內改動。但是,這種定時電路在硬件銜接好以后,定時值及定時范圍不能由程序(軟件)來控制和改動。可編程定時器電路的定時值及定時范圍可以很容易地由軟件來確定和改動,功能較強,運用靈敏。這種方法最突出的優點是計數時不占用CPU的時間,并且假設利用定時器產生中斷信號,就可以建立多作業的環境,所以,可以大大提高CPU的利用率。加上計數器/定時器本身的開銷并不很大,因此,這種方法遭到廣泛運用。9.2 可編程計數器可編程計數器/定時器定時器82538253的主要功能有:(1)有3個獨立的、功能一樣的16位減法計數器。(2)

3、每個計數器都可以按照二進制或BCD碼進展計數。(3)每個計數器的計數速率可高達2MHz。(4)每個計數器有6種任務方式,可由程序設置和改動。(5)一切的輸入輸出引腳電平都與TTL電平兼容。 9.2.1 8253的內部構造和引腳特性9.2.2 8253的控制字9.2.3 8253的任務方式9.2.4 8253的編程 9.2.1 8253的內部構造和引腳特性的內部構造和引腳特性1.8253的內部構造的內部構造8253內部有3個計數器,分別稱為計數器0、計數器1和計數器2,它們的構造完全一樣。每個計數器的輸入和輸出都決議于本身所帶的控制存放器的控制字,相互之間任務完全獨立。每個計數器經過3個引腳和外

4、部聯絡,1個為時鐘輸入端CLK,1個為門控信號輸入端GATE,另1個為輸出端OUT。每個計數器內部有1個8位控制存放器CW、1個16位計數初值存放器CR、1個16位減1計數執行部件CE和1個16位輸出鎖存器OL。 2.8253的引腳信號和功能的引腳信號和功能9.2.2 8253的控制字的控制字1.8253控制字2.8253的初始化編程1.8253控制字控制字2.8253的初始化編程的初始化編程對8253編程常有2種操作:1)初始化寫操作2)讀當前計數值操作1)寫操作寫操作-8253的初始化編程的初始化編程首先設置控制字。需求用幾個計數器,就要寫幾次控制字,不過控制存放器地址都一樣。寫入控制字,

5、還起到復位作用:使該計數器清零及OUT端變為規定的初始形狀。向已選定的計數器寫入計數初值。但寫初值時要留意: 編程寫入時必需按相應控制字中的要求順序寫入。 正確選定初值是二進制數還是BCD碼數。由于3個計數器完全獨立,有各自的端口地址,因此對這3個計數器分別初始化編程并沒有先后次序要求。但是,對任一計數器初始化時必需先寫控制字,再寫計數初值。 2)讀當前計數值讀當前計數值-先鎖存,再讀操作先鎖存,再讀操作 在計數過程中,OL實時跟隨CE,并不鎖存其實時值;只需接到鎖存指令時,OL立刻鎖存當前值,不再跟隨CE變化,而同時CE仍照常繼續減l計數。CPU將鎖定值用輸入指令讀走時,鎖存器自動失鎖,又跟

6、隨CE實時變化。詳細編程為:先寫鎖存命令控制字(即設置控制字的RL1、RL0為00) 。再讀該計數器口地址。 9.2.3 8253的任務方式的任務方式8253有6種方式任務。不論用哪種方式任務,都會遵守下面幾條根本規那么:控制字寫入計數器時,一切的控制邏輯電路立刻復位,輸出端OUT進入初始形狀(高電平或者低電平)。初始值寫入以后,要經過時鐘的一個上升沿和一個下降沿,計數執行部件才開場進展計數。通常,在時鐘脈沖CLK的上升沿,門控信號GATE被采樣。在時鐘脈沖的下降沿,計數器作減1計數。0是計數器所能包容的最大初始值,中選用二進制時,0相當于216;用BCD碼時,0相當于l04。 1.方式方式0

7、-可編程階躍信號發生可編程階躍信號發生器器能使OUT端產生正階躍信號,常被用來作為中斷懇求信號。2.方式方式1-可編程單穩態輸出方可編程單穩態輸出方式式能使OUT端產生單脈沖波形信號,單脈沖寬度可由程序設定。 3.方式方式2-可編程頻率發生器可編程頻率發生器/分頻器分頻器使OUT端輸出固定頻率的脈沖,輸出脈沖周期等于n個CLK脈沖的寬度,也相當于對CLK信號n分頻。這種方式給自動控制中的實時檢測、實時控制提供了實時時鐘,也可作為一個可編程脈沖速率發生器。 4.方式方式3-可編程方波發生器可編程方波發生器方式3與方式2任務原理類似,但輸出波形那么為占空比1:1或近似1:1的延續方波或矩形波。 方

8、式方式4-可編程軟件觸發的選通訊號發生器可編程軟件觸發的選通訊號發生器計數器主要靠寫入新的計數初值來觸發計數器任務,所以常稱它為軟件觸發。OUT端輸出的負單脈沖信號常作為選通訊號運用;另外還可用作定時功能,定時時間為n個CLK周期。 方式方式5-可編程硬件觸發的選通訊號發生器可編程硬件觸發的選通訊號發生器方式5與方式l任務原理類似,由門控信號GATE的上升沿觸發計數器計數,但OUT端輸出波形為單脈沖選通訊號,同方式4。 7.8253任務小結任務小結8253有6種不同的任務方式,它們的特點不同,因此運用的場所也就不同。8253沒有復位RESET輸入,開機加電后,其任務方式和OUT端輸出都是不確定

9、的,必需對其進展初始化編程,初始化編程包括寫控制字和寫計數初值。先寫控制字,使OUT端輸出初始形狀電平,其中只需方式0的初始形狀為OUT端輸出低電平,其它方式的初始形狀都是OUT端輸出高電平。OUT端輸出波形都是在CLK脈沖下降沿時產生電平的變化。門控信號的觸發方式有二種;高電平觸發,上升沿觸發。方式0、4中GATE為高電平觸發;方式l、5中GATE為上升沿觸發;方式2、3中GATE既可用高電平觸發也可用上升沿觸發。方式0與方式1的OUT端輸出波形類似,在計數過程中都堅持低電平,計數終了立刻變為高電平,這種正階躍信號輸出常可用作中斷懇求信號。但它們的OUT端初始形狀不一樣,方式0的OUT端輸出

10、正階躍信號,方式1的OUT端輸出負單穩態脈沖波。7.8253任務小結任務小結(續續)方式2與方式3有一共同的特點,都具有減到0后計數初值自動再重裝功能,所以OUT端都能輸出延續的波形。它們主要的區別在于占空比不同,方式2輸出延續的負脈沖波,其中負脈沖寬僅為一個CLK脈沖,而周期為n個CLK脈沖;方式3輸出延續方波或矩形波,占空比為1:1或近似1:1。方式4與方式5的輸出波形一樣,它們主要區別是計數啟動的觸發信號不同,方式4由寫計數初值指令的上升沿啟動計數,方式5由GATE上升沿啟動計數。6種任務方式都受GATE門控信號的控制。在運用計數器前,必需先寫入計數初值n。在某些任務方式下初值只能用一次

11、,如下次要用,必需重新寫入初值n;而在另外些方式下,能自動重新裝入初值n實現循環計數。 方式0:寫入的初值n一次有效 方式1:寫入的初值n一次有效,但可觸發重裝 方式2:寫入的初值n能自動重裝 方式3:寫入的初值n能自動重裝 方式4:寫入的初值n一次有效 方式5:寫入的初值n一次有效,但可觸發重裝6種任務方式在計數過程中都可寫入新計數初值,但是在不同方式時對當前計數及OUT輸出的影響各不一樣。 9.2.4 8253的編程的編程1.8253的初始化編程2.8253計數值的讀取編程1.8253的初始化編程的初始化編程初始化編程的步驟為:(1)寫控制字,規定計數器的任務方式。(2)寫計數初值。 假設

12、規定只寫低8位,那么寫入的為計數初值的低8位,高8位自動置0。 假設規定只寫高8位,那么寫入的為計數初值的高8位,低8位自動置0。 假設是16位計數初值,那么分兩次寫入,先寫入低8位,再寫入高8位。 例子例子假設要使計數器0任務在方式1,按BCD碼計數,計數初值為5080,假設端口地址分別為F8HFBH,那么初始化程序為: MOV AL,33H OUT 0FBH,AL;向計數器0寫控制字 MOV AL,80H OUT 0F8H,AL;向計數器0寫計數初值的低8位 MOV AL,50H OUT 0F8H,AL;向計數器0寫計數初值的高8位留意:采用BCD碼計數時,計數初值為十進制數,但在初始化寫

13、初值時,一定要在十進制數值后加十六進制后綴H。 2.8253計數值的讀取編程計數值的讀取編程CPU可以用輸入指令讀取8253任一計數器的計數值,此時CPU讀到的是執行輸入指令瞬間計數器的現行值。8253的計數器是16位的,要分兩次讀至CPU,在讀入過程中,計數值能夠發生變化。因此,在讀取計數值之前,需對現行計數值進展鎖存。 例子例子假設要讀取計數器1的16位計數值,端口地址分別為F8HFBH,其程序為:MOV AL,40H OUT 0FBH,AL;向計數器1寫控制字,實現鎖存 IN AL,0F9H;讀低8位計數值 MOV CL,AL;保管至CL IN AL,0F9H;讀高8位計數值 MOV C

14、H ,AL;保管至CH 9.3 8253的運用的運用例1:利用8253和8255實現對揚聲器的控制。試設計一個程序,使揚聲器發出600Hz頻率的聲音,按下恣意鍵聲音停頓。知8253計數器2與控制口地址為42H與43H,8255PB口的地址為61H。&分析分析在PC/XT計算機系統中,PC機的發聲系統以計數器2為中心。CLK2的輸入頻率1.19MHz,改動計數器初值可以由OUT2得到不同頻率的方波輸出。計 數 器 2 定 義 為 任 務 方 式 3 , 控 制 字 為10110110B。對于要求OUT2輸出600Hz的聲音 驅 動 信 號 , 可 以 得 出 計 數 初 值1.19MHz

15、/600Hz=1938。 分析分析(續續)另外,PC/XT計算機的發聲系統受8255芯片B口的兩個輸出端線PB0、PB1的控制,PB0為1,使GATE2為1,計數器2能正常計數,可以控制揚聲器何時可以發聲;PB1為1,翻開輸出控制門,可以控制揚聲器發聲時間長短。 程序段程序段MOV AL,10110110B;對8253計數器2初始化OUT 43H,ALMOV AX, 1983;設置計數值OUT 42H, ALMOV AL,AHOUT 42H,ALIN AL, 61H;讀8255PB口當前值OR AL, 03H;使PB1與PB0置1,其他位不變OUT 61H,AL;翻開GATE2并且允許發聲MO

16、V AH, 01HINT 21H;等待按恣意鍵IN AL,61HAND AL,0FCH;清PB1與PB0OUT 61H,AL;停頓發聲 例例2利用8253定時產生中斷信號。時鐘信號為2MHz,輸入8253時鐘輸入端,要求OUT0實現每5秒定時中斷。設8253端口地址40H43H。 分析分析8253最大初值65536,CLK=2MHz可實現最大時間間隔: 655360.5s=32.769ms,很明顯利用一個定時器不能到達要求。所以需求兩個計數器級聯,其連線圖如下圖。一個計數器的輸出作為另一個計數器的時鐘輸入端輸入,設2個計數器都任務在方式2。 OUT0 GATE0 CLK0 OUT1 GATE1

17、 CLK18253每5秒產生一個脈沖+5V+5V2MHz分析分析(續續)計數器1:方式2,OUT1每5ms輸出一個脈沖 計數器1初值:(2106)/(1/0.005)=10000計數器0:方式2,OUT0每5s輸出一個脈沖 計數器0初值:5/0.005=1000 程序段程序段MOV AL,01100101B;對8253計數器1初始化OUT 43H,ALMOV AL,0OUT 41H,ALMOV AL,00100101B;對8253計數器0初始化OUT 43H, ALMOV AL, 01HOUT 40H, AL例例3用8253A監視一個消費流水線,要求每經過50個工件,揚聲器響5秒,頻率為2KH

18、z。設計數器0、計數器1、控制存放器的地址為40H、41H、43H,8255A的PA口地址為80H,系統提供5秒延時子程序DL5S供調用。 分析分析工件從光源和光敏電阻之間經過時,晶體管的發射極將會產生一個脈沖,此脈沖作為8253A計數器0的計數輸入,當計數器0計滿50后,OUT0輸出負脈沖,經反相后,作為中斷懇求信號,即計數器0任務在方式2,采用十進制計數,計數初值為50。在中斷效力程序中,用8253A的計數器1輸出2KHz的方波,繼續5秒后停頓。由于CLK1接5MHz時鐘,故計數器1任務在方式3(方波發生器)。計數初值5000000/2000=2500,用十進制計數。用8255A的A端口的PA0位控制計數的啟動和停頓。 程序段程序段主程序為: MOV AL,00010101B;計數器0初始化 OUT 43H,AL MOV AL,50H;計數初值 OUT 40H

溫馨提示

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

評論

0/150

提交評論