單片機定時器實用方法總結
單片機定時器的使用
第一部分:51系列定時器
定時/計數(shù)器 0 和定時/計數(shù)器1都有4種定時模式。
16位定時器對內(nèi)部機器周期進行技術,機器周期加1,定時器值加1,1MHZ模式下,一個機器周期為1us 。
定時器工作模式寄存器TMOD,不可位尋址,需整體賦值,高4位用于定時器1,第四位用于定時器0。
C/T:為定時器功能選擇位,C/T=0對機器周期計數(shù),C/T=1,對外部脈沖計數(shù)。
GATE:門控位,GATE=0,軟件置位TRn即可啟動計時器,GATE=1需外部中斷引腳為高電平時才能軟件置位TRn啟動計時器,一般取GATE=0。
定時器控制寄存器TCON:
TFn:Tn溢出標志位,當定時器溢出時,硬件置位TFn,中斷使能的情況下,申請中斷,CPU響應中斷后,硬件自動清除TFn。中斷屏蔽時,該位一般作為軟件查詢標志,由于不進入中斷程序,硬件不會自動清除標志位,可軟件清除。
TRn:計時器啟動控制位,軟件置位TRn即可啟動定時器,軟件清除TRn關閉標志位。
IEn:外部中斷請求標志位。
ITn:外部中斷出發(fā)模式控制位,ITn=0為低電平觸發(fā),ITn=1為下降沿觸發(fā)。
中斷允許控制寄存器IE
EA(IE.7):全局中斷控制位。EA=1開全局中斷,EA=0關閉全局中斷。
IE.6無意義。
ETn:定時器中斷使能控制位。置位允許中斷,清除禁止中斷。
ES:串行接收/發(fā)送中斷控制位,置位允許中斷。
EXn:外部中斷使能控制位。置1允許,清0禁止。
中斷優(yōu)先級控制寄存器IP,復位后為00H
IP.6,IP.7保留,無意義。
PT2:定時器2中斷優(yōu)先級控制,置1設為高優(yōu)先級,清0置位低優(yōu)先級。
PS:串行中斷優(yōu)先級控制位。
PT1/0:定時器1/0優(yōu)先級控制位,置1高,清0低。
PXn:外部中斷優(yōu)先級控制位。
當有同級中斷同時響應,按IE0->TF0->IE1->TF1-IE0->RI+TI->TF2順序依次響應。
定時器模式0的使用 TMOD&=0xf0/TMOD&=0x0f
TL0高3位不用,低5位溢出時,直接向TH0進位。
通過設置TH0和TL0初值(0~8191),使計數(shù)器從初值開始加1,溢出后申請中斷,溢出后需重新設置初值,否則將從0開始加1計數(shù)。
T=(模值-初值)*機器周期,初值為8191位技術最小值1,初值為0為計數(shù)最大值8191。
定時器模式1(TMOD=0xf1/TMOD=0x1f)
模式1和模式0功能相同,但模式1位16位。
定時器模式2(TMOD=0x2f/0xf2)
模式2構成自動重裝的8位定時器,計數(shù)器的范圍為0~256
TH作為初值寄存器,TL作為計數(shù)寄存器。TL溢出時,置位中斷標志位,并且把TH中的值自動裝入TL。
定時器模式3,模式3只適用于定時器0
模式3時定時器構成2個獨立的8位計數(shù)器。
此模式下,TL0和模式0,1狀態(tài)一樣可以做計數(shù)和定時。TH0只能用于定時不能用于計數(shù),并占用T1的資源TF1和TR1。
定時器2的使用
在AT89S52,AT89S53和AT89S8253中增加了定時器2的使用。
T2和TH2,TL2,T2CON,T2MOD,捕捉重裝寄存器RCAP2L和RCAP2H
T2控制寄存器
TF2:溢出中斷標志位。
RCLK:串行口接收時鐘選擇位,用它可以選擇T1或T2作為串行口發(fā)送時鐘。RCLK=1,T2作為串行口時鐘,RCLK=1,T1作為串口發(fā)送時鐘。
EXEN2:T2外部允許控制位,EXEN2=1,若T2未用于波特率發(fā)生器,T2EX引腳出現(xiàn)負跳變時將導致T2發(fā)生捕獲或充裝載。并置位EXF2標志位請求中斷。該位清0,外部引腳無效。
C/T2:定時或技術方式選擇位。
CP/RL2:T2捕獲或重裝控制位,該位為1,選擇捕獲功能,此時若EXEN2=1,T2EN引腳出現(xiàn)負跳變將發(fā)生捕獲操作,即把T2H和T2L內(nèi)容傳送給RCAP2H和RCAP2L。該位為0,選擇重裝功能,此時若T2溢出,或EXEN2=1且T2EN引腳上出現(xiàn)負跳變,都會把RCAP2H和RCAP2L的值送入T2H和T2L。
T2模式控制位
T2OE:T2輸出允許控制位。T2OE=1允許時鐘輸出到T2/P1.0引腳,T2OE=0禁止輸出。
DECN:加/減計數(shù)控制位,該位為1,允許T2作為加減計數(shù)器使用,方向由T2EN控制,T2EN為1,進行加計數(shù),T2EN位0進行減計數(shù)。該位置0,T2自動向上計數(shù)。
T2工作模式的選擇由RCLK,TCLK,CP/RL2,T2OE,CT2,和TR2來決定。
編輯:admin 最后修改時間:2018-05-18