AT89C52定時器2工作方式:
定時器2是一個16 位定時/計(jì)數(shù)器。它既可當(dāng)定時器使用,也可作為外部事件計(jì)數(shù)器使用,其工作方式由特殊功能寄
存器T2CON(如表3)的C/T2 位選擇。定時器2 有三種工作方式:捕獲方式,自動重裝載(向上或向下計(jì)數(shù))方式和波特率發(fā)生器方式,工作方式由T2CON 的控制位來選擇。定時器2 由兩個8 位寄存器TH2 和TL2 組成,在定時器工作方式中,每個機(jī)器周期TL2 寄存器的值加1,由于一個機(jī)器周期由12 個振蕩時鐘構(gòu)成,因此,計(jì)數(shù)速率為振蕩頻率的1/12。在計(jì)數(shù)工作方式時,當(dāng)T2 引腳上外部輸入信號產(chǎn)生由1 至0 的下降沿時,寄存器的值加1,在這種工作方式下,每個機(jī)器周期的5SP2 期間,對外部輸入進(jìn)行采樣。若在第一個機(jī)器周期中采到的值為1,而在下一個機(jī)器周期中采到的值為0,則在緊跟著的下一個周期的S3P1 期間寄存器加1。由于識別1 至0 的跳變需要2 個機(jī)器周期(24 個振蕩周期),因此,最高計(jì)數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。 ·捕獲方式:
在捕獲方式下,通過T2CON 控制位EXEN2 來選擇兩種方式。如果EXEN2=0,定時器2 是一個16 位定時器或計(jì)數(shù)器,計(jì)數(shù)溢出時,對T2CON 的溢出標(biāo)志TF2 置位,同時激活中斷。如果EXEN2=1,定時器2 完成相同的操作,而當(dāng)T2EX 引 腳外部輸入信號發(fā)生1 至0 負(fù)跳變時,也出現(xiàn)TH2 和TL2 中的值分別被捕獲到RCAP2H 和RCAP2L 中。另外,T2EX 引腳信號的跳變使得T2CON 中的EXF2 置位,與TF2 相仿,EXF2 也會激活中斷。捕獲方式如圖4 所示。 ·自動重裝載(向上或向下計(jì)數(shù)器)方式:
當(dāng)定時器2工作于16位自動重裝載方式時,能對其編程為向上或向下計(jì)數(shù)方式,這個功能可通過特殊功能寄存器T2CON
?。ㄒ姳?)的DCEN 位(允許向下計(jì)數(shù))來選擇的。復(fù)位時,DCEN 位置“0”,定時器2 默認(rèn)設(shè)置為向上計(jì)數(shù)。當(dāng)DCEN置位時,定時器2 既可向上計(jì)數(shù)也可向下計(jì)數(shù),這取決于T2EX 引腳的值,參見圖5,當(dāng)DCEN=0 時,定時器2 自動設(shè)置為向上計(jì)數(shù),在這種方式下,T2CON 中的EXEN2 控制位有兩種選擇,若EXEN2=0,定時器2 為向上計(jì)數(shù)至0FFFFH 溢出,置位TF2 激活中斷,同時把16 位計(jì)數(shù)寄存器RCAP2H 和RCAP2L重裝載,RCAP2H 和RCAP2L 的值可由軟件預(yù)置。 若EXEN2=1,定時器2 的16 位重裝載由溢出或外部輸入端T2EX 從1 至0 的下降沿觸發(fā)。這個脈沖使EXF2 置位,如果 中斷允許,同樣產(chǎn)生中斷。
AT89C52定時器
定時器2 的中斷入口地址是:002BH ——0032H 。
當(dāng)DCEN=1 時,允許定時器2 向上或向下計(jì)數(shù),如圖6 所示。這種方式下,T2EX 引腳控制計(jì)數(shù)器方向。T2EX 引腳為邏輯“1”時,定時器向上計(jì)數(shù),當(dāng)計(jì)數(shù)0FFFFH 向上溢出時,置位TF2,同時把16 位計(jì)數(shù)寄存器RCAP2H 和RCAP2L 重裝載到TH2 和TL2 中。 T2EX 引腳為邏輯“0”時,定時器2 向下計(jì)數(shù),當(dāng)TH2 和TL2 中的數(shù)值等于RCAP2H 和RCAP2L中的值時,計(jì)數(shù)溢出,置位TF2,同時將0FFFFH 數(shù)值重新裝入定時寄存器中。
當(dāng)定時/計(jì)數(shù)器2 向上溢出或向下溢出時,置位EXF2 位。 ·波特率發(fā)生器:當(dāng)T2CON中的TCLK 和RCLK 置位時,定時/計(jì)數(shù)器2 作為波特率發(fā)生器使用。如果定時/計(jì)數(shù)器2 作為發(fā)送器或接收器,其發(fā)送和接收的波特率可以是不同的,定時器1 用于其它功能,如圖7 所示。若RCLK 和TCLK 置位,則定時器2 工作于波特率發(fā)生器方式。
波特率發(fā)生器的方式與自動重裝載方式相仿,在此方式下,TH2 翻轉(zhuǎn)使定時器2 的寄存器用RCAP2H 和RCAP2L 中的16 位數(shù)值重新裝載,該數(shù)值由軟件設(shè)置。在方式1 和方式3 中,波特率由定時器2 的溢出速率根據(jù)下式確定: 方式1和3的波特率=定時器的溢出率/16定時器既能工作于定時方式也能工作于計(jì)數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時方式(C/T2=0)。定時器2 作為波特率發(fā)生器時,與作為定時器的操作是不同的,通常作為定時器時,在每個機(jī)器周期(1/12 振蕩頻率)寄存器的值加1,而作為波特率發(fā)生器使用時,在每個狀態(tài)時間(1/2 振蕩頻率)寄存器的值加1。波特率的計(jì)算公式如下:
方式1和3的波特率=振蕩頻率/{32*[65536-(RCP2H,RCP2L)]}
式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位無符號數(shù)。 定時器2 作為波特率發(fā)生器使用的電路如圖7 所示。T2CON 中的RCLK 或TCLK=1 時,波特率工作方式才有效。在波特率發(fā)生器工作方式中,TH2 翻轉(zhuǎn)不能使TF2 置位,故而不產(chǎn)生中斷。但若EXEN2 置位,且T2EX 端產(chǎn)生由1 至0 的負(fù)跳變,則會使EXF2 置位,此時并不能將(RCAP2H,RCAP2L)的內(nèi)容重新裝入TH2 和TL2 中。所以,當(dāng)定時器2 作為波特率發(fā)生器使用時,T2EX 可作為附加的外部中斷源來使用。需要注意的是,當(dāng)定時器2 工作于波特率器時,作為定時器運(yùn)行(TR2=1)時,并不能訪問TH2 和TL2。因?yàn)榇藭r每個狀態(tài)時間定時器都會加1,對其讀寫將得到一個不確定的 數(shù)值。
然而,對RCAP2 則可讀而不可寫,因?yàn)閷懭氩僮鲗⑹侵匦卵b載,寫入操作可能令寫和/或重裝載出錯。在訪問定時器2或RCAP2 寄存器之前,應(yīng)將定時器關(guān)閉(清除TR2)。 ·可編程時鐘輸出:定時器2 可通過編程從P1.0 輸出一個占空比為50%的時鐘信號,如圖8 所示。P1.0 引腳除了是一個標(biāo)準(zhǔn)的I/O 口外,還可以通過編程使其作為定時/計(jì)數(shù)器2 的外部時鐘輸入和輸出占空比50%的時鐘脈沖。當(dāng)時鐘振蕩頻率為16MHz 時,輸 出時鐘頻率范圍為61Hz—4MHz。
當(dāng)設(shè)置定時/計(jì)數(shù)器2 為時鐘發(fā)生器時,C/T2(T2CON .1)=0,T2OE (T2MOD.1) =1,必須由TR2(T2CON.2)啟動或停止定時器。時鐘輸出頻率取決于振蕩頻率和定時器2 捕獲寄存器(RCAP2H,RCAP2L)的重新裝載值,公式如下:
輸出時鐘頻率=振蕩器頻率/{4*[65536-(RCP2H,RCP2L)]}
在時鐘輸出方式下,定時器2 的翻轉(zhuǎn)不會產(chǎn)生中斷,這個特性與作為波特率發(fā)生器使用時相仿。定時器2 作為波特率發(fā)生器使用時,還可作為時鐘發(fā)生器使用,但需要注意的是波特率和時鐘輸出頻率不能分開確定,這是因?yàn)樗鼈兺褂?RCAP2L和RCAP2L。 ·UART:
AT89C52的UART 工作方式與AT89C51 工作方式相同。 ·中斷:AT89C52 共有6 個中斷向量:兩個外中斷(INT0 和INT1),3 個定時器中斷(定時器0、1、2)和串行口中斷。所有 這些中斷源如圖9 所示。
這些中斷源可通過分別設(shè)置專用寄存器IE 的置位或清0 來控制每一個中斷的允許或禁止。IE 也有一個總禁止位EA, 它能控制所有中斷的允許或禁止。
注意表5 中的IE.6 為保留位,在AT89C51 中IE.5 也是保留位。程序員不應(yīng)將“1”寫入這些位,它們是將來AT89 系 列產(chǎn)品作為擴(kuò)展用的。定時器2 的中斷是由T2CON 中的TF2 和EXF2 邏輯或產(chǎn)生的,當(dāng)轉(zhuǎn)向中斷服務(wù)程序時,這些標(biāo)志位不能被硬件清除,
事實(shí)上,服務(wù)程序需確定是TF2 或EXF2 產(chǎn)生中斷,而由軟件清除中斷標(biāo)志位。 定時器0 和定時器1 的標(biāo)志位TF0 和TF1 在定時器溢出那個機(jī)器周期的S5P2 狀態(tài)置位,而會在下一個機(jī)器周期才查詢到該中斷標(biāo)志。然而,定時器2 的標(biāo)志位TF2 在定時器溢出的那個機(jī)器周期的S2P2 狀態(tài)置位,并在同一個機(jī)器周期內(nèi)查詢到該標(biāo)志。
評論
查看更多