8052定時器2的用法


學了51單片機之后,開發板上的CPU是STC89S52RC的,就是說52單片機,里面比51的多了一個定時器2看了很多書,就是沒怎么理解,於是乎決定看AT89S52的數據手冊,翻譯一遍,可能會加深自己的理解,以后對C8051F的單片機也好好預熱一下。

定時計數器2是一個16位定時/計數器,通過T2CON寄存器的C/T2位可以選擇定時還是計數功能。定時器2 有3種操作模式:捕獲、自動重新裝載(遞增或遞減計數)和波特率發生器,這3種模式由T2CON 中的位進行選擇,具體的選擇方式見1。定時器2有兩個8為寄存器:TH2和TL2。在定時模式狀態下,TL2寄存器每一個機器周期加1,。由於52單片機的每一個機器周期等於12的振盪周期,所以他的計數頻率是振盪頻率的1/12。

表1

RCLK+TCLK

CP/RL2

TR2

MODE

0

0

1

16位自重載

0

1

1

16位捕獲

1

X

1

波特率發生器

X

X

0

在計數狀態下,外部引腳由1-0的負跳變是,寄存器就加1。並且在這種情況下,每當一個機器周期的S5P2的時科,單片機就對外部引腳進行采樣,如果在下一個周期里信號變為低電平,則計數器加1。在下一個周期的S3P1時刻,若檢測到有跳變,則計數器計數加1。識別1-0的跳變需要兩個機器周期(24個振盪周期),所以計數信號的最大的頻率只能是振盪頻率的1/24。為了確保采樣頻率能夠被采樣,被采用的電平必須保持一個機器周期不變。

 

1、      捕獲模式

在捕獲模式,寄存器T2CON的位EXEN2有兩方式可供選擇:

若EXEN2=0,定時器2為16位定時/計數器,當計數溢出是,T2CON中的TF2置1,並向CPU申請中斷;

若EXEN2=1,定時器2出來擁有和上述一樣的功能外,還有捕獲功能:即在引腳T2EX有1-0跳變的時候,RCAP2H和RCAP2L分別捕獲並保存TH2和TL2的當前值(即RCAP2H=TH2,RCAP2L=TL2),另外T2EX腳的跳變也會使T2CON寄存器里的位EXF2值1,和TF2一樣向CPU申請中斷。

2、      自重載模式(遞增/遞減計數器)

定時器2可以設置為遞增/遞減自動重載計數器,並通過DCEN(Down Counter Enable)位來控制其模式。見2,一旦CPU復位,DCEN被清0,意味着定時器2默認是遞增計數器,當DCEN置為1時,允許定時器2遞增或遞減計數,由T2EX的電平來控制器計數方向。

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

定時器2輸出使能

DCEN

DCEN=1,允許定時器2遞增或遞減計數

 

圖1   T2捕獲原理圖

 

       圖2所示為定時器2自動遞增模式(DCEN=0)原理圖。在這種模式下由T2CON中的EXEN位選擇。

       當EXEN=0;當計數器向上計數到0FFFFH是就會置位溢出標志位TF2,此時,寄存器RCAP2H和RCAP2L的值會自動裝載到寄存器TH2和TL2中。寄存器RCAP2H和RCAP2L的值有軟件預設。

       當EXEN=1;16位重載可由兩個方式觸發:計數溢出或T2EX引腳的負跳變。同時置位EXF2為1。在中斷允許的條件下,TF2和EXTF2都可以觸發中斷。

 

圖2   T2自重載模式(DCEN=0)原理圖

       當DCEN為1時,允許定時器2遞增計數或者遞減計數,就如圖2所示。在這種模式下,T2EX引腳控制計數的方向。

T2EX若為邏輯“1”,定時器2遞增計數,直到0FFFFH是計數器溢出,置位TF2為1,同時溢出之后,寄存器RCAP2H和RCAP2L的值會自動裝載到寄存器TH2和TL2中。

T2EX若為邏輯“0”,定時器2遞減計數,當寄存器TH2和TL2的值分別和寄存器RCAP2H和RCAP2L的值相等時,計數器向下溢出,同時立即置位TF2,並把定時計數器賦值為0FFFFH。

//The EXF2 bit toggles whenever Timer 2 overflows or underflows and can be used as a 17th bit of resolution. In this operating mode, EXF2 does not flag an interrupt.

// (這段話不好翻譯)

 

圖3

未完待續。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM