51單片機定時(shí)器/計數器的結構和原理
T0由2個(gè)定時(shí)寄存器TH0和TL0構成,T1則由TH1和TL1構成,它們都分別映射在特殊功能寄存器中,從而可以通過(guò)對特殊功能寄存器中這些寄存器的讀寫(xiě)來(lái)實(shí)現對這兩個(gè)定時(shí)器的操作。作定時(shí)器時(shí),每一個(gè)機器周期定時(shí)寄存器自動(dòng)加l,所以定時(shí)器也可看作是計量機器周期的計數器。由于每個(gè)機器周期為12個(gè)時(shí)鐘振蕩周期,所以定時(shí)的分辨率是時(shí)鐘振蕩頻率的1/12。作計數器時(shí),只要在單片機外部引腳T0(或T1)有從1到0電平的負跳變,計數器就自動(dòng)加1。計數的最高頻率一般為振蕩頻率的l/24。
工作方式:
T0或T1無(wú)論用作定時(shí)器或計數器都有4種工作方式:方式0、方式1、方式2和方式3。除方式3外,T0和T1有完全相同的工作狀態(tài)。下面以T1為例,分述各種工作方式的特點(diǎn)和用法。
1、工作方式0:
13位方式由TL1的低5位和TH1的8位構成13位計數器(TL1的高3位無(wú)效)。工作方式0的結構見(jiàn)下圖:
圖中,C/T為定時(shí)/計數選擇:C/T=0,T1為定時(shí)器,定時(shí)信號為振蕩周期12分頻后的脈沖;C/T=l,T1為計數器,計數信號來(lái)自引腳T1的外部信號。
定時(shí)器T1能否啟動(dòng)工作,還受到了R1、GATE和引腳信號INT1的控制。由圖中的邏輯電路可知,當GATE=0時(shí),只要TR1=1就可打開(kāi)控制門(mén),使定時(shí)器工作;當GATE=1時(shí),只有TR1=1且INT1=1,才可打開(kāi)控制門(mén)。GATE,TR1,C/T的狀態(tài)選擇由定時(shí)器的控制寄存器TMOD,TCON中相應位狀態(tài)確定,INT1則是外部引腳上的信號。
在一般的應用中,通常使GATE=0,從而由TRl的狀態(tài)控制Tl的開(kāi)閉:TRl=1,打開(kāi)T1;TRl=0,關(guān)閉T1。在特殊的應用場(chǎng)合,例如利用定時(shí)器測量接于INT1引腳上的外部脈沖高電平的寬度時(shí),可使GATE=1,TRl=1。當外部脈沖出現上升沿,亦即INT1由0變1電平時(shí),啟動(dòng)T1定時(shí),測量開(kāi)始;一旦外部脈沖出現下降沿,亦即INT1由l變O時(shí)就關(guān)閉了T1。
定時(shí)器啟動(dòng)后,定時(shí)或計數脈沖加到TLl的低5位,從預先設置的初值(時(shí)間常數)開(kāi)始不斷增1。TL1計滿(mǎn)后,向THl進(jìn)位。當TL1和THl都計滿(mǎn)之后,置位T1的定時(shí)器回零標志TFl,以此表明定時(shí)時(shí)間或計數次數已到,以供查詢(xún)或在打開(kāi)中斷的條件下,可向CPU請求中斷。如需進(jìn)一步定時(shí)/計數,需用指令重置時(shí)間常數。
2、工作方式1:
16位方式。與工作方式0基本相同,區別僅在于工作方式1的計數器TL1和TH1組成16位計數器,從而比工作方式0有更寬的定時(shí)/計數范圍。工作方式1的結構見(jiàn)下圖。

3、工作方式2
8位自動(dòng)裝入時(shí)間常數方式。由TLl構成8位計數器,THl僅用來(lái)存放時(shí)間常數。啟動(dòng)T1前,TLl和THl裝入相同的時(shí)間常數,當TL1計滿(mǎn)后,除定時(shí)器回零標志TFl置位,具有向CPU請求中斷的條件外,THl中的時(shí)間常數還會(huì )自動(dòng)地裝入TLl,并重新開(kāi)始定時(shí)或計數。所以,工作方式2是一種自動(dòng)裝入時(shí)間常數的8位計數器方式。由于這種方式不需要指令重裝時(shí)間常數,因而操作方便,在允許的條件下,應盡量使用這種工作方式。當然,這種方式的定時(shí)/計數范圍要小于方式0和方式1。工作方式2的結構見(jiàn)下圖.
4、工作方式3
2個(gè)8位方式。工作方式3只適用于定時(shí)器0。如果使定時(shí)器1為工作方式3,則定時(shí)器1將處于關(guān)閉狀態(tài)。
當T0為工作方式3時(shí),THo和TL0分成2個(gè)獨立的8位計數器。其中,TL0既可用作定時(shí)器,又可用作計數器,并使用原T0的所有控制位及其定時(shí)器回零標志和中斷源。TH0只能用作定時(shí)器,并使用T1的控制位TRl、回零標志TFl和中斷源,見(jiàn)下圖。
通常情況下,T0不運行于工作方式3,只有在T1處于工作方式2,并不要求中斷的條件下才可能使用。這時(shí),T1往往用作串行口波特率發(fā)生器(見(jiàn)1.4),TH0用作定時(shí)器,TL0作為定時(shí)器或計數器。所以,方式3是為了使單片機有1個(gè)獨立的定時(shí)器/計數器、1個(gè)定時(shí)器以及1個(gè)串行口波特率發(fā)生器的應用場(chǎng)合而特地提供的。這時(shí),可把定時(shí)器l用于工作方式2,把定時(shí)器0用于工作方式3。
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
評論