定時器計數(shù)器應用_第1頁
定時器計數(shù)器應用_第2頁
定時器計數(shù)器應用_第3頁
定時器計數(shù)器應用_第4頁
定時器計數(shù)器應用_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、定時器定時器/計數(shù)器的計數(shù)器的工作方式工作方式知識點:知識點:定時器工作原定時器工作原理理 在實際工作、生活中,許多控制離不開時間。尤其是在實際工作、生活中,許多控制離不開時間。尤其是定時控制更是以時間為核心,如家用的洗衣機中的洗滌、定時控制更是以時間為核心,如家用的洗衣機中的洗滌、脫水都是定時的。脫水都是定時的。 單片機又是如何完成定時的呢?單片機又是如何完成定時的呢? 通過前面的學習,通過前面的學習,當晶振頻率一定時,單片機當晶振頻率一定時,單片機的機器周期相應固定,如晶振頻率為的機器周期相應固定,如晶振頻率為12MHE12MHE時單片機的機時單片機的機器周期為器周期為1s1s。單片機對其

2、機器周期進行計數(shù)便可以實現(xiàn)。單片機對其機器周期進行計數(shù)便可以實現(xiàn)定時。如計數(shù)值為定時。如計數(shù)值為10001000則定時則定時1ms1ms、如計數(shù)值為、如計數(shù)值為10000001000000則則定時定時1s1s,以此類推。,以此類推。 本章要解決的是單片機如何完成對機器周期進本章要解決的是單片機如何完成對機器周期進行計數(shù)。行計數(shù)。問題的提出振蕩器振蕩器12加加1計數(shù)器計數(shù)器TFX起停起??刂菩盘柨刂菩盘朇T=0CT=1中斷中斷TX端端 MCS-51MCS-51單片機片內(nèi)有兩個單片機片內(nèi)有兩個1616位的定時器計數(shù)位的定時器計數(shù)器,定時器器,定時器0(T0)0(T0)和定時器和定時器1(T1)1(

3、T1)。它們均可用作定。它們均可用作定時控制、延時以及對外部事件的計數(shù)及檢測。時控制、延時以及對外部事件的計數(shù)及檢測。 當外部晶體振當外部晶體振蕩器為蕩器為12MHz時,時,它提供它提供(輸出輸出) 12MHz的脈沖。的脈沖。 經(jīng)過除以經(jīng)過除以12變成變成1MHz的脈沖的脈沖記?。捍藭r脈沖的周期記?。捍藭r脈沖的周期為為11MHz= 1s 當當CT=0時,開關接時,開關接通通 在起??刂圃谄鹜?刂菩盘栔行盘栔小捌鹌稹毙盘栃盘栕饔孟麻_關接通作用下開關接通加加1計數(shù)器對計數(shù)器對1MHz的脈沖進行的脈沖進行自動計數(shù),直至計自動計數(shù),直至計數(shù)器計滿數(shù)器計滿當計數(shù)器計滿時,當計數(shù)器計滿時,自動將自動將TF

4、X置置“1”,作為向單片機中斷作為向單片機中斷請求信號。請求信號。當當CT=1時,開時,開關向下接通,關向下接通,TX端的外部信號至此端的外部信號至此 在起??刂圃谄鹜?刂菩盘栔行盘栔小捌鹌稹毙盘栃盘栕饔孟麻_關接通作用下開關接通加加1計數(shù)器對計數(shù)器對1MHz的脈沖進行的脈沖進行自動計數(shù),直至計自動計數(shù),直至計數(shù)器計滿數(shù)器計滿當計數(shù)器計滿時,當計數(shù)器計滿時,自動將自動將TFX置置“1”,作為向單片機中斷作為向單片機中斷請求信號。請求信號。由此可見:定時器計數(shù)器的核心是一個加由此可見:定時器計數(shù)器的核心是一個加1 1計數(shù)器。計數(shù)器。 1616位的定時器計數(shù)器分別由兩個位的定時器計數(shù)器分別由兩個8

5、8位的專用寄存位的專用寄存器組成,即器組成,即T0T0由由TH0TH0和和TL0TL0構(gòu)成,構(gòu)成,T1T1由由THlTHl和和TLlTLl構(gòu)成。構(gòu)成。0000000000000000TH0TL0TH0TL00000000100000000T0輸入輸入 TL0TL0、TL1TL1、TH0TH0、TH1TH1的地址順序依次是的地址順序依次是8AH8AH、8BH8BH、8CH8CH、8DH8DH。這。這些寄存器用來存放定時或計數(shù)初值,每個定時器都可以由軟件設置成定時工些寄存器用來存放定時或計數(shù)初值,每個定時器都可以由軟件設置成定時工作方式或計數(shù)工作方式。作方式或計數(shù)工作方式。 定時器計數(shù)器可工作在定

6、時方式或計數(shù)方式,由方式寄存器定時器計數(shù)器可工作在定時方式或計數(shù)方式,由方式寄存器TMODTMOD確確定,由控制寄存器定,由控制寄存器TCONTCON控制??刂?。 注意:注意:1 1、當定時器工作在計數(shù)方式時,外部輸人信號是加到、當定時器工作在計數(shù)方式時,外部輸人信號是加到T0(P3T0(P34)4)或或T1(P3T1(P35)5)端。端。 一個外部輸入信號的下降沿觸發(fā)加一個外部輸入信號的下降沿觸發(fā)加1 1計數(shù)器加計數(shù)器加1 1,直至計滿溢出。,直至計滿溢出。 外部輸入信號的高電平與低電平保持時間均需大于一個機器周期。外部輸入信號的高電平與低電平保持時間均需大于一個機器周期。 2 2、當定時、

7、當定時/ /計數(shù)器工作在定時方式時,加計數(shù)器工作在定時方式時,加1 1計數(shù)器每一個機器周期加計數(shù)器每一個機器周期加1 1,直至計滿溢出。直至計滿溢出。 一旦定時器計數(shù)器被設置成某種工作方式后,它就會按設定的工一旦定時器計數(shù)器被設置成某種工作方式后,它就會按設定的工作方式獨立運行,不再占用作方式獨立運行,不再占用CPUCPU的操作時間,直到加的操作時間,直到加1 1計數(shù)器計滿溢出,計數(shù)器計滿溢出,才向才向CPUCPU申請中斷。申請中斷。 定時器計數(shù)器是一種可編程的部件,在定時器計數(shù)器是一種可編程的部件,在其工作之前必須做三件事:其工作之前必須做三件事:1、將方式字寫入、將方式字寫入TMOD2、將

8、計數(shù)初值寫入相應計數(shù)器、將計數(shù)初值寫入相應計數(shù)器 這個過程稱為定時器計數(shù)器的初始化這個過程稱為定時器計數(shù)器的初始化3、將控制字寫入、將控制字寫入TCON定時器計數(shù)器工作定時器計數(shù)器工作方式及控制方式及控制 TMODTMOD用于控制用于控制T0T0和和T1T1的工作方式,其各位定義如下:的工作方式,其各位定義如下: 工工作作方方式式寄寄存存器器TMOD TCONTCON用于控制定時器的啟動、停止以及標明定時器的用于控制定時器的啟動、停止以及標明定時器的溢出和中斷情況。各位的含義如下:溢出和中斷情況。各位的含義如下:控控制制寄寄存存器器T TC CO ON N TMOD TMOD中的中的M1M1、

9、M0M0具有具有4 4種組合,從而構(gòu)成了種組合,從而構(gòu)成了定時器計數(shù)器的定時器計數(shù)器的4 4種工作方式,這種工作方式,這4 4種工作方式種工作方式除了方式除了方式3 3以外,其它以外,其它3 3種工作方式的基本原理都種工作方式的基本原理都是一樣的。是一樣的。 下面分別介紹下面分別介紹4 4種工作方式的特點及工作情種工作方式的特點及工作情況。況。定定時時器器計計數(shù)數(shù)器器的的工工作作方方式式 在單片機中在單片機中定時定時計數(shù)的原理是對其寄存器的內(nèi)容完成對計數(shù)的原理是對其寄存器的內(nèi)容完成對機器周機器周期期外部脈沖進行外部脈沖進行+1+1計數(shù)直至溢出。為了獲取計數(shù)直至溢出。為了獲取不同時間不同時間不同

10、脈沖個數(shù),不同脈沖個數(shù),只要對寄存器預先寫入一個數(shù)據(jù)就可以實現(xiàn)。這個數(shù)據(jù)稱為只要對寄存器預先寫入一個數(shù)據(jù)就可以實現(xiàn)。這個數(shù)據(jù)稱為初值初值。工工作作方方式式0 0X200MLN其中:其中:200ML:最大值:最大值N:計數(shù)值:計數(shù)值X: 初值初值 方式方式0:16位的計數(shù)器位的計數(shù)器(THO和和TL0)只只用了用了13位構(gòu)成位構(gòu)成13位定時器計數(shù)器。位定時器計數(shù)器。 TL0的高的高3位未用,當位未用,當TL0的低的低5位計滿位計滿時,向時,向TH0進位,而進位,而TH0溢出后對中斷標志溢出后對中斷標志位位TF0置置1,并向,并向CPU申請中斷。申請中斷。 1313位計數(shù)器位計數(shù)器: : 最大計數(shù)

11、值為最大計數(shù)值為8192(8192(相當相當200ML) ) 定時值t(相當N ,但t 是時間單位) 初值(相當X ) 即:t/機器周期機器周期+初值初值= 81928192 t=(T0初值初值)機器周期機器周期1、初值、初值根據(jù)上式可知:初值根據(jù)上式可知:初值= - - t/機器周期機器周期例如:定時值為例如:定時值為5000ss,機器周期為,機器周期為1 1s 初值初值=8192-5000/=8192-5000/s=3192=0000110001111000B將初值寫入將初值寫入T0寄存器的方法是寄存器的方法是:高高8位寫入位寫入01100011TH0,低,低5位位11000寫入寫入TL0

12、例如:要求計滿例如:要求計滿129129個外部脈沖后溢出中斷,則個外部脈沖后溢出中斷,則計數(shù)初值為計數(shù)初值為8192-129=8063=1F7FH8192-129=8063=1F7FH 即即TLO=1FHTLO=1FH、TH0=FBHTH0=FBH 又如:已知單片機的機器周期為又如:已知單片機的機器周期為1s1s,要,要求定時值到達求定時值到達5000s5000s時溢出中斷,則定時初值時溢出中斷,則定時初值為為8192-8192-(5000s5000sss) = 3192=0C78H= 3192=0C78H 即即TLO=18HTLO=18H、TH0=63HTH0=63H2 2、控制、控制 T0

13、工作在方式工作在方式1的邏輯結(jié)構(gòu)如下圖所示。的邏輯結(jié)構(gòu)如下圖所示。由圖可見,它與工作方式由圖可見,它與工作方式0的差別僅在于工的差別僅在于工作方式作方式1是以是以16位計數(shù)器參加計數(shù),且定時位計數(shù)器參加計數(shù),且定時時間為:時間為:t=(216T0初值初值)機器周期機器周期即:即:初值初值= 216t/機器周期機器周期工工作作方方式式1 1 T0T0在工作方式在工作方式2 2的邏輯結(jié)構(gòu)如下圖所示。的邏輯結(jié)構(gòu)如下圖所示。工工作作方方式式2 2 定時器定時器/計數(shù)器構(gòu)成一個能重復置初值的計數(shù)器構(gòu)成一個能重復置初值的8位計位計數(shù)器。數(shù)器。 在工作方式在工作方式0、工作方式、工作方式1中,若用于重復定中

14、,若用于重復定時計數(shù),則每次計滿溢出后,計數(shù)器變?yōu)槿珪r計數(shù),則每次計滿溢出后,計數(shù)器變?yōu)槿?,故還得重新裝入初值。故還得重新裝入初值。 而工作方式而工作方式2可在計數(shù)器計滿溢出時自動裝可在計數(shù)器計滿溢出時自動裝入初值,工作方式入初值,工作方式2把把16位的計數(shù)器拆成兩個位的計數(shù)器拆成兩個8位位計數(shù)器。計數(shù)器。TL0用作用作8位計數(shù)器,位計數(shù)器,TH0用來保存初值,用來保存初值,每當每當TL0計滿溢出時,可自動將計滿溢出時,可自動將TH0的初值再裝的初值再裝入入TL0中。工作方式中。工作方式2的定時時間為:的定時時間為: t=(28T0初值)初值)機器周期機器周期即:即:初值初值=256- t/

15、機器周期機器周期 工作方式工作方式3 3的邏輯結(jié)構(gòu)圖如下圖所示。的邏輯結(jié)構(gòu)圖如下圖所示。工工作作方方式式3 3 該工作方式只適用于定時器計數(shù)器該工作方式只適用于定時器計數(shù)器T0。T0在工作方式在工作方式3被拆成兩個相互獨立的計數(shù)器,其被拆成兩個相互獨立的計數(shù)器,其中,中,TL0使用原使用原T0的各控制位、引腳和中斷源的各控制位、引腳和中斷源CT 、GATE、TR0、INT0 和和TF0; 而而TH0則只能作為定時器使用,但它占用則只能作為定時器使用,但它占用T1的的TR1和和TF1,即占用了,即占用了T1的中斷標志和運行控的中斷標志和運行控制位。制位。 一般在系統(tǒng)需增加一個額外的一般在系統(tǒng)需增

16、加一個額外的8位定時器時,位定時器時,可設置為工作方式可設置為工作方式3,此時,此時,T1雖仍可定義為工雖仍可定義為工作方式作方式0、工作方式、工作方式1和工作方式和工作方式2,但只能用在,但只能用在不需中斷控制的場合。不需中斷控制的場合。1、要求計滿要求計滿20002000個外部脈沖后溢出中斷,方式個外部脈沖后溢出中斷,方式0 0,求,求計數(shù)初值的計數(shù)初值的TL0=TL0=?、?、TH0=TH0=?2 2、已知單片機的機器周期為、已知單片機的機器周期為1s1s,要求定時值到達,要求定時值到達7000s7000s時溢出中斷,定時、方式時溢出中斷,定時、方式1 1,求定時初值的,求定時初值的TL

17、0=TL0=?、?、TH0=TH0=?3、T0方式方式1,定時值,定時值5ms,TH0=?、?、TL0=?4、T1方式方式2,定時值,定時值250s,TH1=?、?、TL1=?TH0=C1TL0=10TH0=E4TL0=A8TH0=ECTL0=78TH0=06TL0=06 應用定時器應用定時器/ /計數(shù)器時應注意兩點:一是初始計數(shù)器時應注意兩點:一是初始化(寫入控制字),二是對初值的計算?;▽懭肟刂谱郑?,二是對初值的計算。 初始化步驟為:初始化步驟為:向向TMODTMOD寫工作方式控制字。寫工作方式控制字。向計數(shù)器向計數(shù)器TLTL、THTH裝入初始值。裝入初始值。置置TR=1TR=1,啟動計

18、數(shù)。,啟動計數(shù)。置置ET=1ET=1,允許定時器計數(shù)器中斷,允許定時器計數(shù)器中斷( (若需要時若需要時) )。置置EA=1EA=1,CPUCPU開中斷開中斷( (若需要時若需要時) )。定定時時器器/ /計計數(shù)數(shù)器器應應用用舉舉例例 例如:設例如:設T0T0為工作方式為工作方式1 1,設置為定時狀態(tài),定時時間,設置為定時狀態(tài),定時時間為為2ms2ms,每當,每當2ms2ms到,申請中斷,在中斷服務程序中將到,申請中斷,在中斷服務程序中將P1.0P1.0的內(nèi)容取反送出的內(nèi)容取反送出( (假設晶振為假設晶振為6MHz)6MHz)。 解:已知晶振頻率為解:已知晶振頻率為6MHz6MHz,機器周期,機

19、器周期=2s=2s 下面先計算下面先計算2ms2ms定時的定時的TOTO初始值初始值 當當T0T0工作在方式工作在方式1 1時時 TOTO初始值初始值=2=21616- -定時時間機器周期定時時間機器周期 =2=21616-2ms-2ms 2s 2s 2 216162 21010-3-31010-6-6=65536-1000=64536 =FC18H=65536-1000=64536 =FC18H。 即:即:TH0=FCHTH0=FCH、TL0=18HTL0=18H由于題目要求由于題目要求T0工作在方式工作在方式1,所以,所以TMOD=01H編程如下編程如下: :ORG 0000H ;AJMP

20、 MAIN ;轉(zhuǎn)主程序;轉(zhuǎn)主程序ORG 000BH ;INT: MOV TL0,#18H ;T0中斷服務程序中斷服務程序 MOV TH0,#0FCH ;重設計數(shù)初值;重設計數(shù)初值 CPL P1.0 ; 輸出取反輸出取反 RETI ;MAIN:MOV SP,#63H ;置堆棧指針;置堆棧指針 MOV TMOD,#01H ;T0初始化初始化 MOV TL0;#18H ; MOV TH0;#0FCH; SETB TR0 ;啟動;啟動T0計數(shù)計數(shù) SETB ET0 ;允許;允許T0中斷中斷 SETB EA ;CPU開中斷開中斷RLL: SJMP RLL ;等待;等待 END主程序與中斷服務程序的關系

21、中斷程序 主程序MAIN中斷響應中斷服務程序入口地址RETIORG 000BH INT: MOV TL0,#18H MOV TH0,#0FCH CPL P1.0 RETI MAIN:MOV SP,#63H MOV TMOD,#01H MOV TL0;#18H MOV TH0;#0FCH SETB TR0 SETB ET0 SETB EA RLL: SJMP RLL END 又例如:當又例如:當GATE=1GATE=1時,時,TR0=1TR0=1時,只有時,只有INTO INTO 引腳上出現(xiàn)高電平時,引腳上出現(xiàn)高電平時,T0T0才被允許計數(shù)。試利用才被允許計數(shù)。試利用這一功能測試這一功能測試IN

22、TOINTO引腳上的正脈沖的寬度(機器引腳上的正脈沖的寬度(機器周期數(shù))。周期數(shù))。 設外部待測脈沖由設外部待測脈沖由INTOINTO(P3.2P3.2)輸入,)輸入,T0T0工工作在作在方式方式1 1,設置為,設置為定時狀態(tài)定時狀態(tài),GATEGATE置為置為“1 1”,測試時,在測試時,在INTOINTO端為端為“0”0”時置時置TR0TR0為為“1”1”,當,當INTO INTO 端變?yōu)槎俗優(yōu)椤?”1”時啟動計數(shù);時啟動計數(shù);INTOINTO端再次變?yōu)槎嗽俅巫優(yōu)椤?”0”時停止計數(shù),此時的計數(shù)值就是被測正脈沖時停止計數(shù),此時的計數(shù)值就是被測正脈沖的寬度。的寬度。編程思路:編程思路:在此期間

23、對機器周期進行計數(shù)在此期間對機器周期進行計數(shù)根據(jù)題意:根據(jù)題意:T0T0工作在方式工作在方式1 1、定時狀態(tài)、定時狀態(tài)、INT0=“1”INT0=“1”期間對機器周期進行計數(shù)。期間對機器周期進行計數(shù)。 于是,確定方式字如下:于是,確定方式字如下:即即TMOD=09HTMOD=09H。并在。并在INT0=0INT0=0期間置期間置TR0=1TR0=1TR0=1、INT0=1時開時開始計數(shù)始計數(shù)TR0=0、INT0=0時停時停止計數(shù)止計數(shù)編程如下:編程如下: ORG 0000HORG 0000H MOV TMOD MOV TMOD,#09H #09H ;T0T0工作方式工作方式1 1定時,定時,GATE=1GATE=1 MOV TL0 MOV TL0,#00H #00H ; MOV TH0MOV T

溫馨提示

  • 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

提交評論