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