1.前言
這里將介紹另一款定時器TMR2模塊,TMR2與前面介紹的TMR0和TMR1相比,最大的差別是只能工作于定時模式,因此稱它為“定時器TMR2”。
2.TMR2的特性
TMR2為8位寬,附帶二個4位寬的分頻器:一個“預(yù)分頻器”和一個“后分頻器”,一個可編程的8位周期寄存器PR2。其主要用途:
1. 可以用作時間定時器,但是不能作為計數(shù)器;
3. 可以與CCP模塊配合使用,實現(xiàn)脈寬調(diào)制PWM功能。
TMR2的核心是一個可以由軟件讀/寫的8位寬的計數(shù)器,它也是按遞增計數(shù),從某一初值(缺省為0)開始遞增,直到與周期寄存器PR2中內(nèi)容匹配之后,在下一次遞增時則返回到00H,并且會產(chǎn)生匹配信號,該匹配信號將作為“后分頻器”的計數(shù)脈沖。
只有在后分頻器產(chǎn)生溢出時,才會將溢出中斷標(biāo)志位TMR2IF(PIR1的bit1)置1。如果此時相關(guān)的中斷使能位都置位,則會引起CPU的中斷響應(yīng)。通過對中斷使能位TMR2IE的置位或復(fù)位,即可允許或禁止CPU響應(yīng)TMR2產(chǎn)生的中斷請求。
需要注意的是:
1. TMR2和RAM空間統(tǒng)一編址,地址為11H;
2. 可用軟件方式直接讀/寫TMR2的內(nèi)容;
3. 有一個4位的預(yù)分頻器和一個4位的后分頻器;
4. 有一個8位周期寄存器;
5. 累加計數(shù)的觸發(fā)信號只能選擇內(nèi)部系統(tǒng)時鐘;
3. TMR2相關(guān)的寄存器
與TMR2有關(guān)的寄存器共有6個,如下表所示。這6個寄存器中的前3個寄存器的功能可以查看“中斷系統(tǒng)”。在此介紹TMR2控制寄存器T2CON。
TMR2控制寄存器T2CON是一個只用到低7位的可讀/寫寄存器,最高位未用,其余各位的含義如下:
1. TOUT-PS3~TOUT-PS0:TMR2后分頻器分頻比選擇位,如下表所列:
2. TMR2-ON:TMR2使能控制位。1=啟用TMR2;0=關(guān)閉TMR2,可以降低功耗。
3. T2CK-PS1~T2CK-PS0:預(yù)分頻器分頻比選擇位。
4. TMR2的電路結(jié)構(gòu)
TMR2的內(nèi)部結(jié)構(gòu),如下圖所示,包含5個組成部分。下面分析各個部分的功能和組成關(guān)系。
核心部分就是一個8位寬的累加計數(shù)器TMR2。其復(fù)位值是00H,也可以是在00H~FFH范圍內(nèi)由用戶設(shè)定的一個起始值。
4位寬的預(yù)分頻器,對于進(jìn)入TMR2的時鐘信號進(jìn)行預(yù)先分頻,允許選擇3種不同的分頻比(1:1、1:4或1:16)。
注意:在對TMR2或控制寄存器進(jìn)行寫操作時,都可以使預(yù)分頻器清0;在用任何方式復(fù)位時,都會對預(yù)分頻器清0。
周期寄存器PR2也是一個8位可讀/寫寄存器。用來預(yù)置一個作為TMR2一次計數(shù)過程結(jié)束的周期值。芯片復(fù)位后PR2寄存器被自動設(shè)置為全1(FFH)。
比較器是一個8位寬的按位比較邏輯電路,只有當(dāng)參加比較的兩組數(shù)據(jù)完全相同之后,下一次遞增時,“匹配”輸出端才會送出高電平,其他情況下該輸出端均保持低電平。
4位寬的后分頻器,對于比較器的輸出信號進(jìn)行后續(xù)分頻,允許連續(xù)選擇16種分頻比,其輸出信號頻率是輸入信號頻率的1/N (N=1~16) 。
TMR2的工作是可控的,所以還包含一個控制門G1。只有當(dāng)TMR2使能位TMR2ON置1,系統(tǒng)時鐘才能通過G1,TMR2也才能進(jìn)入活動狀態(tài)。
5.TMR2的工作原理
TMR2只有一種工作方式:定時器方式,其觸發(fā)鐘信號也只能從內(nèi)部系統(tǒng)時鐘4分頻后得到。
5.1 禁止TMR2工作
TMR2也比TMR0多了一種選擇,即可以被用戶程序關(guān)閉而節(jié)電,此點類似于TMR1。具體方法是將TMR2使能控制位TMR2ON清0。此時與門G1的一只引腳被低電平封鎖,其輸出端均保持低電平;因此使得累加計數(shù)器TMR2不能活動。
5.2 定時工作方式
TMR2只有定時工作模式,該模式可以被用來實現(xiàn)一般的延時或定時。但是,TMR2的主要目的并不是把它用作普通的定時器,而是為CCP模塊或MSSP模塊提供周期可調(diào)的時基信號。
用作周期可調(diào)的時基發(fā)生器
當(dāng)TMR2被用作周期可調(diào)的時基發(fā)生器時,可以為CCP模塊或MSSP模塊提供周期可調(diào)的時基信號。
這時,應(yīng)該將中斷使能位TMR2IE清0,即屏蔽TMR2的中斷功能,相當(dāng)于把后分頻器的作用也屏蔽了;通過對周期寄存器PR2設(shè)置不同的值,以及給預(yù)分頻器設(shè)定不同的分頻比,來靈活調(diào)整TMR2輸出端的信號周期TTMR2 。該周期的計算式為:
TTMR2=(4/fosc)*N1*(PR2+1)
其中:fosc為系統(tǒng)時鐘頻率;N1為預(yù)分頻器的分頻比(取1、4或16);PR2為周期寄存器預(yù)賦值;PR2+1是因為在TMR2與PR2匹配后的下一次增量時TMR2才回00H。
用作延遲時間可調(diào)周期性定時器
把TMR2作為延遲時間可調(diào)的周期性定時器,會比TMR0的定時方式更加節(jié)省軟件開銷。
TMR2不必像TMR0那樣,每次溢出后,都要給寄存器TMR2賦初值。只要一次性設(shè)定溢出周期(通過設(shè)定預(yù)分頻器、后分頻器以及PR2來實現(xiàn)),TMR2就將會周期性地按預(yù)先設(shè)定的溢出周期產(chǎn)生超時中斷。該超時溢出周期的計算式為 :
TTMR2IF=(4/fosc)*N1*(PR2+1)*N2
其中,N2為后分頻器的分頻比(連續(xù)可取1~16)。這時的簡化電路如下圖所示:
用作普通定時器
TMR2也可以像TMR0那樣用作普通的定時器,這樣使用時,可以將后分頻器的分頻比設(shè)定為1:1,PR2的值設(shè)定為最大值FFH,就相當(dāng)于把后分頻器、周期寄存器以及比較器的功能禁止掉了,使得它們不發(fā)揮作用。
從而使TMR2簡化為類似于TMR0一樣,帶有一個分頻比可設(shè)定為1:1、1:4或1:16的4位預(yù)分頻器。這時超時溢出周期的計算式為:
TTMR2IF=(4/fosc)*N1*(256-M)
其中,M為TMR2的初始值。簡化電路如下圖所示:
采用這種用法時,需要在TMR2每次超時溢出時,都要給TMR2賦一次初始值。累加計數(shù)寄存器TMR2,就會以該初始值為起點開始增量,直到遞增到FFH,之后再出現(xiàn)一個計數(shù)脈沖,就會將TMR2復(fù)位清0,并且發(fā)出中斷請求(TMR2IF被置1)。如果想把預(yù)分頻器的功能禁止掉,可以把它的分頻比也設(shè)置為1:1,這樣就相當(dāng)于把預(yù)分頻器給短路掉了。
-
定時器
+關(guān)注
關(guān)注
23文章
3241瀏覽量
114486 -
TMR2
+關(guān)注
關(guān)注
0文章
2瀏覽量
6921
發(fā)布評論請先 登錄
相關(guān)推薦
評論