單片機中的定時/計數(shù)器都能有多種用途,要通過定時/計數(shù)器的方式控制字來設(shè)置,需要的用途。
在單片機中有兩個特殊功能寄存器與定時/計數(shù)有關(guān),這就是TMOD和TCON。,TMOD和TCON是名稱,我們在寫程序時就能直接用這個名稱來指定它們,當(dāng)然也能直接用它們的地址89H和88H來指定它們(其實用名稱也就是直接用地址,匯編軟件幫你翻譯一下而已)。
TMOD被分成兩部份,每部份4位。分別用于控制T1和T0。TCON也被分成兩部份,高4位用于定時/計數(shù)器,低4位則用于中斷(TF1、0在這)。TR0(1)稱之為運行控制位,為1,開關(guān)才能合上,計數(shù)脈沖才能過來,可用指令SETB和CLR來置位以啟動/關(guān)閉計數(shù)器/定時器。
方式0框圖
定時/計數(shù)器的四種工作方式方式0
為13位計數(shù)器,由TL(1/0)的低5位和TH(0/1)的8位組成,,此時TL(1/0)的高3位未用。
M1、M0:定時/計數(shù)器一共有四種工作方式,就是用M1M0來控制的,2位正好是四種組合。
C/T:C/T為0就是用作定時器(開關(guān)往上打),如果C/T為1就是用作計數(shù)器(開關(guān)往下打)。
GATE:GATE后非門后是一或門,GATE=0時只要TR1=0則開關(guān)閉合
GATE=1時,開關(guān)合閉不僅要由TR1,而且還受到INT1管腳控制,兩個都為高電平計數(shù)脈沖才能通過。
方式1
工作方式1是16位的定時/計數(shù)方式,將M1、M0設(shè)為01即可,其它特性與工作方式0相同。
方式2
自動裝入預(yù)置數(shù)的工作方式。當(dāng)溢出后,T(0/1)高、低八位之間的開關(guān)打開,放在高八位的預(yù)置數(shù)進入低八位,開始第二輪,由硬件完成。代價是計數(shù)范圍少一半。
方式3
定時/計數(shù)器被拆成2個獨立的定時/計數(shù)器來用。
(最下是TR1)
TL0能組成8位的定時器或計數(shù)器的工作方式,而TH0則只能作為定時器來用。
TLO使用T0狀態(tài)控制位C/T、GATE、TR0、INT0,而TH0使用T1的狀態(tài)控制位TR1,一般只有T1以方式2運行(當(dāng)波特率發(fā)生器用),才能讓T0以方式3工作。
定時器/計數(shù)器的定時/計數(shù)范圍工作方式0:13位定時/計數(shù)方式,因此,最多能計到2的13次方,也就是8192次。
工作方式1:16位定時/計數(shù)方式,因此,最多能計到2的16次方,也就是65536次。
工作方式2和工作方式3,都是8位的定時/計數(shù)方式,因此,最多能計到2的8次方,也說是256次。
預(yù)置值計算:用最大計數(shù)量減去需要的計數(shù)次數(shù)即可。