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

下載本文檔

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

文檔簡介

1、第六章第六章 定時器及應用定時器及應用6.1 定時器定時器/計數器概述計數器概述6.2 定時器的控制定時器的控制6.3 定時器的四種模式及應用定時器的四種模式及應用可可 編編 程程 的的6.2 6.2 定時器的控制定時器的控制 定時器共有兩個控制字,由軟件寫入定時器共有兩個控制字,由軟件寫入TMOD和和TCON兩個兩個8位寄存器,用來設置位寄存器,用來設置T0或或T1的操的操作模式和控制功能。當作模式和控制功能。當89C51系統復位時,兩個系統復位時,兩個寄存器所有位都被清寄存器所有位都被清0。一、模式一、模式0 0及應用及應用1 12 2振振蕩蕩周周期期T T0 0初初值值)(2 21 13

2、 3t t當當時,為定時工作方式。其定時時間為:時,為定時工作方式。其定時時間為:0 0T TC C/ /當當1 1T TC C/ /時,為計數工作方式。時,為計數工作方式。6.3 6.3 定時器的四種模式及應用定時器的四種模式及應用 模式模式0 0是選擇定時器(是選擇定時器(T0T0或或T1T1)的高)的高8 8位和低位和低5 5位位組成的一個組成的一個1313位定時器位定時器/ /計數器。如計數器。如圖圖6-76-7是是T0T0在模在模式式0 0時的邏輯電路結構。時的邏輯電路結構。編制初始化程序:編制初始化程序:1)寫)寫TMOD;2)確定確定IE、IP;3)寫計數初值;寫計數初值;4)啟

3、動計數()啟動計數(TRi) 例例1、設計一個能產生、設計一個能產生t=1ms的周期方波信號發生器,試的周期方波信號發生器,試編程編程。其中其中fosc=12MHZ。解:當解:當T0處于工作模式處于工作模式0時,加時,加1計數器為計數器為13位,設位,設T0的的初值為初值為X; (213X) (1/fosc)12= 500 所以,所以, X = 7692 = 1E0CH 。C/T=0,GATE= 0= 0001 1110 000 0 1100B, 1E0CH01100TL011110000TH0F0H0CH先將低五位放入先將低五位放入TL0中,再將剩余的數從右中,再將剩余的數從右向左數出八位放

4、入向左數出八位放入TH0中。中。 ORG 0000H LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0 SETB ET0 SETB EA SJMP INSE1: MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 RETI (1 1)定時器溢出中斷方式)定時器溢出中斷方式(2)查詢方式)查詢方式 ORG 1000H MOV TMOD,#00H MOV TL0,#0CH MOV TH0,#0F0H SETB T

5、R0 LOOP:JBC TF0,NEXT SJMP LOOP NEXT: MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 SJMP LOOP 二、模式二、模式1 1及應用及應用用于定時工作方式時,定時時間為:用于定時工作方式時,定時時間為:1 12 2振振蕩蕩周周期期T T0 0初初值值)(2 21 16 6t t用于計數工作方式時,計數長度為:用于計數工作方式時,計數長度為: 2 216166553665536(個外部脈沖)(個外部脈沖) 該模式對應的是一個該模式對應的是一個16位的定時器位的定時器/計數器,見計數器,見圖圖6-8。其結構與操作幾乎與模式。其結構與操作

6、幾乎與模式0完全相同,唯一的完全相同,唯一的差別是:在模式差別是:在模式1中,寄存器中,寄存器TH0和和TL0是以全部是以全部16位位參與操作。參與操作。三、模式三、模式2 2及應用及應用用于定時工作方式時,定時時間為:用于定時工作方式時,定時時間為:1 12 2振振蕩蕩周周期期T TH H0 0初初值值)(2 28 8t t用于計數工作方式時,計數長度為:用于計數工作方式時,計數長度為: 2 28 8256256(個外部脈沖)(個外部脈沖) 模式模式2把把TL0(TL1)配置成一個可以自動重裝載的)配置成一個可以自動重裝載的8位定時器位定時器/計數器,如計數器,如圖圖6-9所示。所示。例:當

7、例:當P3.4引腳上的電平發生負跳變時,從引腳上的電平發生負跳變時,從P1.0輸出一個輸出一個500s同步脈沖。請編程實現該功能。同步脈沖。請編程實現該功能。解解(1)模式選擇)模式選擇首先選首先選T0為模式為模式2,外部事件計數方式。當,外部事件計數方式。當P3.4引腳上的電平引腳上的電平發生負跳變時,發生負跳變時,T0計數器加計數器加1,溢出標志,溢出標志TF0置置1;然后改變;然后改變T0為為500 s定時工作方式,并使定時工作方式,并使P1.0輸出由輸出由1變為變為0。T0定時到產定時到產生溢出,使生溢出,使P1.0引腳恢復輸出高電平,引腳恢復輸出高電平,T0又恢復外部事件計數又恢復外

8、部事件計數方式。如下圖:方式。如下圖:外部計數方式外部計數方式500 s500 s外部計數方式外部計數方式定時方式定時方式定時方式定時方式P3.4P1.0(2)計算初值)計算初值T0工作在外部事件計數方式,當計數到工作在外部事件計數方式,當計數到0FFH時,時,再加再加1計數器就會溢出。設計數初值為計數器就會溢出。設計數初值為X,當再出現,當再出現一次外部事件時,計數器溢出。則一次外部事件時,計數器溢出。則 X+128 X=11111111B=0FFHT0工作在定時方式時,設晶振頻率為工作在定時方式時,設晶振頻率為6MHZ, 500 s相當于相當于250個機器周期。因此,初值個機器周期。因此,

9、初值X為:為: (28X)2 s500 s X=6=06H(3 3)程序清單)程序清單 ORG 0100HSTART:MOV TMOD,#06H MOV TH0,#0FFH MOV TL0,#0FFH SETB TR0LOOP1: JBC TF0,PTFO1 SJMP LOOP1PTRO1: CLR TR0 MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H CLR P1.0 SETB TR0 LOOP2:JBC TF0,PTFO2 SJMP LOOP2 PTFO2: SETB P1.0 CLR TR0 SJMP START如圖如圖四、模式四、模式3 3及應用及應用

10、 工作模式工作模式3對對T0和和T1大不相同。大不相同。 若將若將T0設置位模式設置位模式3,TL0和和TH0被分成為兩個相互被分成為兩個相互獨立的獨立的8位計數器,如位計數器,如圖圖6-11所示。所示。 TH1(8位)位) TL1(8或或5位)位)串行口串行口12分頻分頻foscC/T=0C/T=1T1(P3.5)12分頻分頻foscC/T=0C/T=1T1(P3.5) TL1(8位)位) TH1(8位)位)串行口串行口重裝入重裝入(a) T1模式模式1(或模式(或模式0)(b) T1模式模式2圖圖6-12 T0模式模式3下的下的T1結構結構fosc 例:設某用戶系統中已使用了兩個外部中斷源

11、,并置定例:設某用戶系統中已使用了兩個外部中斷源,并置定時器時器T1工作在模式工作在模式2,作串行口波特率發生器用。現要,作串行口波特率發生器用。現要求再增加一個外部中斷源,并由求再增加一個外部中斷源,并由P1.0引腳輸出一個引腳輸出一個5kHz的方波。的方波。fosc12MHz。 解:為了不增加其他硬件開銷,可設置解:為了不增加其他硬件開銷,可設置T0工作在模式工作在模式3計數方式,把計數方式,把T0的引腳作附加的外部中斷輸入端,的引腳作附加的外部中斷輸入端,TL0的計數初值為的計數初值為FFH,當檢測到,當檢測到T0引腳電平出現由引腳電平出現由1至至0的負跳變時,的負跳變時,TL0產生溢出

12、,申請中斷。這相當于產生溢出,申請中斷。這相當于邊沿觸發的外部中斷源。邊沿觸發的外部中斷源。 T0模式模式3下,下,TL0作計數用,而作計數用,而TH0可用作可用作8位的定位的定時器,定時控制時器,定時控制P1.0引腳輸出引腳輸出5kHz的方波信號。的方波信號。TL0的計數初值為的計數初值為FFH,TH0的計數初值的計數初值X計算如下:計算如下:P1.0的方波頻率為的方波頻率為5kHz,故周期,故周期T=1/(5kHz)=0.2ms用用TH0定時定時100s時,時,X=256-10012/12156 ORG 0000H LJMP MAIN ORG 000BH LJMP TLOINT ORG 0

13、01BH LJMP THOINT ORG 0030HMAIN: MOV TMOD,#27H;T0為模式為模式3,計數方式;,計數方式;T1為模式為模式2,定時方式,定時方式 MOV TL0,#0FFH ;置置TL0計數初值計數初值 MOV TH0,#156 ;置置TH0計數初值計數初值 MOV TH1,#data ; data是根據波特率要求設置的常數(即初值)是根據波特率要求設置的常數(即初值) MOV TL1,#data MOV TCON,#55H ;外中斷外中斷0,外中斷,外中斷1邊沿觸發,啟動邊沿觸發,啟動T0 MOV IE,#9FH ;開放全部中斷開放全部中斷 SJMP $ ( )

14、TL0溢出中斷服務程序(由溢出中斷服務程序(由000BH轉來)轉來)TLOINT:MOV TL0,#0FFH ;TL0重賦初值重賦初值 (中斷處理)(中斷處理) RETI TH0溢出中斷服務程序(由溢出中斷服務程序(由001BH轉來)轉來)THOINT:MOV TH0,#156 CPL P1.0 RETI T0定時定時/計數,而計數,而T1停止計數,但可作波特率發生器。停止計數,但可作波特率發生器。T0分成分成兩獨立定時兩獨立定時/計數器計數器TL0和和TH0。 TL0使用使用C/T、GATE、TR0、/INT0、TF0定時定時/計數,計數, TH0使用使用TR1、TF1 因此,只能用于定時因

15、此,只能用于定時 模式模式3時,時,T1可定時為模式可定時為模式0、1、2的定時的定時/計數,但不可中斷,計數,但不可中斷,所以一般只作串口波特率發生器用。所以一般只作串口波特率發生器用。 小結:小結:1、89C51單片機內有幾個定時計數器?單片機內有幾個定時計數器? 如何計數?如何計數? 2、T0、T1有幾種工作模式?有幾種工作模式? 3、編程應用前要事先確定的參數有幾個?、編程應用前要事先確定的參數有幾個? 0INT1INTP3.2P3.3例例1:利用門控位利用門控位GATE測量波形參數:寬度和周期。測量波形參數:寬度和周期。 解:解: 復習復習GATE的用法:的用法: GATE = 0時

16、,時,TRi = 1,即可啟動即可啟動Ti定時定時 / 計數計數 GATE = 1時,時,TRi = 1,且且 =1,才啟動定時才啟動定時 / 計數。計數。被測信號:被測信號:89C51INTi啟動啟動T0,開始計數開始計數TN五、五、 定時定時 / 計數器的應用計數器的應用關閉關閉T0,停止計數,停止計數啟動啟動T1,開始計數,開始計數TP關閉關閉T1,停止計數,停止計數 ORG 0000H LJMP MAIN ORG 0050HMAIN:MOV TMOD,#99H ;T0、T1均工作在定時,均工作在定時, ;模式;模式1,GATE=1 MOV A,#00H ;T0、T1賦計數初值賦計數初值

17、00H, ; 定時最長時間為定時最長時間為00000 65536 MOV TL0,A MOV TH0,A MOV TL1,A MOV TH1,A 圖圖TEST0: JNB P3.2,TEST0 ;判斷判斷P3.2的電平,若為低電平,則等待的電平,若為低電平,則等待 SETB TR0 ;若為高電平,則啟動若為高電平,則啟動T0TEST1: JB P3.2,TEST1 ;判斷判斷P3.2的電平,若為高電平,則繼續計數的電平,若為高電平,則繼續計數 CLR TR0 ;否則,停止;否則,停止 SETB TR1 ;啟動啟動T1TEST2:JB P3.3,TEST2 ;判斷判斷P3.3的電平,若為高電平,

18、則繼續計數的電平,若為高電平,則繼續計數 CLR TR1 ;否則,停止否則,停止T1計數計數 MOV R0,#35H ;保存保存T0及及T1的計數值的計數值 MOV R0,TH0 INC R0 MOV R0,TL0 INC R0 MOV R0,TH1 INC R0 MOV R0,TL1 END圖圖 計數初值計數初值X = 2864H = 9CH 用用P1.0啟動外設發包裝命令啟動外設發包裝命令 用用R5R4作箱數計數器作箱數計數器 模式字模式字TMOD = 06H圖圖;P1.0為低為低;箱數計數器清箱數計數器清“0”;置置T0工作模式工作模式;計數初值送計數器計數初值送計數器;T0開中斷開中斷

19、;CPU開中斷開中斷;啟動啟動T0;模擬主程序模擬主程序;T0中斷入口中斷入口;轉向中斷服務轉向中斷服務圖圖;箱計數器加箱計數器加“1”;啟動外設包裝啟動外設包裝;給外設足夠時間給外設足夠時間;延時延時;停止包裝停止包裝;中斷返回中斷返回圖圖例例3:用:用89C51單片機的定時器和中斷功能試制一個單片機的定時器和中斷功能試制一個“航標航標燈燈”。設。設fosc=12MHz,具有如下功能:,具有如下功能:(1)航標燈在黑夜應能定時閃閃發光,設定時間隔為)航標燈在黑夜應能定時閃閃發光,設定時間隔為2s,即,即亮亮2s,熄滅,熄滅2s,并以此為周期循環。,并以此為周期循環。(2)當白天到來時,航標燈應熄滅,停止定時器工作。)當白天到來時,航標燈應熄滅,停止定時器工作。VcVcT1T2P1.7/INT089C51n根據以上分析,可編寫出如下控制程序:根據以上分析,可編寫出如下控制程序:n設設T0定時定時50ms,選擇模式,選擇模式1,計數初值,計數初值X為:為:nX=216-12501000/1

溫馨提示

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

評論

0/150

提交評論