AT89S52之(定時(shí)器2)Timer2
定時(shí)計(jì)數(shù)器2是一個(gè)16位定時(shí)/計(jì)數(shù)器,通過T2CON寄存器的C/T2位可以選擇定時(shí)還是計(jì)數(shù)功能。定時(shí)器2 有3種操作模式:捕獲、自動重新裝載(遞增或遞減計(jì)數(shù))和波特率發(fā)生器,這3種模式由T2CON 中的位進(jìn)行選擇,具體的選擇方式見表1。定時(shí)器2有兩個(gè)8為寄存器:TH2和TL2。在定時(shí)模式狀態(tài)下,TL2寄存器每一個(gè)機(jī)器周期加1,。由于52單片機(jī)的每一個(gè)機(jī)器周期等于12的振蕩周期,所以他的計(jì)數(shù)頻率是振蕩頻率的1/12。
表1
RCLK+TCLK
CP/RL2
TR2
MODE
0
0
1
16位自重載
0
1
1
16位捕獲
1
X
1
波特率發(fā)生器
X
X
0
關(guān)
在計(jì)數(shù)狀態(tài)下,外部引腳由1-0的負(fù)跳變是,寄存器就加1。并且在這種情況下,每當(dāng)一個(gè)機(jī)器周期的S5P2的時(shí)科,單片機(jī)就對外部引腳進(jìn)行采樣,如果在下一個(gè)周期里信號變?yōu)榈碗娖?,則計(jì)數(shù)器加1。在下一個(gè)周期的S3P1時(shí)刻,若檢測到有跳變,則計(jì)數(shù)器計(jì)數(shù)加1。識別1-0的跳變需要兩個(gè)機(jī)器周期(24個(gè)振蕩周期),所以計(jì)數(shù)信號的最大的頻率只能是振蕩頻率的1/24。為了確保采樣頻率能夠被采樣,被采用的電平必須保持一個(gè)機(jī)器周期不變。
1、捕獲模式
在捕獲模式,寄存器T2CON的位EXEN2有兩方式可供選擇:
若EXEN2=0,定時(shí)器2為16位定時(shí)/計(jì)數(shù)器,當(dāng)計(jì)數(shù)溢出是,T2CON中的TF2置1,并向CPU申請中斷;
若EXEN2=1,定時(shí)器2出來擁有和上述一樣的功能外,還有捕獲功能:即在引腳T2EX有1-0跳變的時(shí)候,RCAP2H和RCAP2L分別捕獲并保存TH2和TL2的當(dāng)前值(即RCAP2H=TH2,RCAP2L=TL2),另外T2EX腳的跳變也會使T2CON寄存器里的位EXF2值1,和TF2一樣向CPU申請中斷。
2、自重載模式(遞增/遞減計(jì)數(shù)器)
定時(shí)器2可以設(shè)置為遞增/遞減自動重載計(jì)數(shù)器,并通過DCEN(Down Counter Enable)位來控制其模式。見表2,一旦CPU復(fù)位,DCEN被清0,意味著定時(shí)器2默認(rèn)是遞增計(jì)數(shù)器,當(dāng)DCEN置為1時(shí),允許定時(shí)器2遞增或遞減計(jì)數(shù),由T2EX的電平來控制器計(jì)數(shù)方向。
表1
T2MOD Address = 0C9H Reset Value = XXXX XX00B
Not Bit Address
Bit
-
-
-
-
-
-
T2OE
DCEN
7
6
5
4
3
2
1
0
Symbol
Function
-
保留
T2OE
定時(shí)器2輸出使能
DCEN
DCEN=1,允許定時(shí)器2遞增或遞減計(jì)數(shù)
圖1T2捕獲原理圖
圖2所示為定時(shí)器2自動遞增模式(DCEN=0)原理圖。在這種模式下由T2CON中的EXEN位選擇。
當(dāng)EXEN=0;當(dāng)計(jì)數(shù)器向上計(jì)數(shù)到0FFFFH是就會置位溢出標(biāo)志位TF2,此時(shí),寄存器RCAP2H和RCAP2L的值會自動裝載到寄存器TH2和TL2中。寄存器RCAP2H和RCAP2L的值有軟件預(yù)設(shè)。
當(dāng)EXEN=1;16位重載可由兩個(gè)方式觸發(fā):計(jì)數(shù)溢出或T2EX引腳的負(fù)跳變。同時(shí)置位EXF2為1。在中斷允許的條件下,TF2和EXTF2都可以觸發(fā)中斷。
圖2T2自重載模式(DCEN=0)原理圖
當(dāng)DCEN為1時(shí),允許定時(shí)器2遞增計(jì)數(shù)或者遞減計(jì)數(shù),就如圖2所示。在這種模式下,T2EX引腳控制計(jì)數(shù)的方向。
T2EX若為邏輯“1”,定時(shí)器2遞增計(jì)數(shù),直到0FFFFH是計(jì)數(shù)器溢出,置位TF2為1,同時(shí)溢出之后,寄存器RCAP2H和RCAP2L的值會自動裝載到寄存器TH2和TL2中。
T2EX若為邏輯“0”,定時(shí)器2遞減計(jì)數(shù),當(dāng)寄存器TH2和TL2的值分別和寄存器RCAP2H和RCAP2L的值相等時(shí),計(jì)數(shù)器向下溢出,同時(shí)立即置位TF2,并把定時(shí)計(jì)數(shù)器賦值為0FFFFH。
//The EXF2 bit toggles wheneverTimer 2 overflows or underflows and can be used as a 17th bit of resolution. Inthis operating mode, EXF2 does not flag an interrupt.
// (這段話不好翻譯)
圖3
未完待續(xù)。。。