定時/計數器結構(T0和T1)
定時器的區別:
T0可分成2個獨立的8位定時器,而定時器1則不能;
T1可作為串口的波特率發生器,而定時器0則不能。
定時器:脈沖來源是由系統的時鐘晶振器輸出脈沖源提供
計數器:脈沖來源是由T0或T1引腳(P3.4或P3.5)輸入的外部脈沖源提供
用途:定時器和計數器
核心:加1計數器
原理:每來一個脈沖則加1計數器加1,當加到全1時再來一個脈沖使加1計數器歸零,同時加1計數器的溢出使TCON寄存器中的TF0(或TF1)置1,向CPU發出中斷請求
脈沖來源:
注:T0或T1都不能同時既做定時器也做計數器
補充:
計數器工作原理:
用作計數器時,對T0或T1引腳的外部脈沖計數,如果前一個機器周期采樣值為1,后一個機器周期采樣值為0 ,則說明有一個脈沖,計數器加1。
在每個機器周期的S5P2期間采樣引腳輸入電平。新的計數初值于下一個機器周期的S3P1期間裝入計數器。
此種方式需要兩個機器周期來檢測一個1->0負跳變信號,因此最高的計數頻率為時鐘頻率的1/24。
S5P2:
S5P2指的是第5個時鐘周期的相位2。
晶體振蕩器的振蕩信號從XTAL2端輸入到片內的時鐘發生器上,時鐘發生器是一個二分頻觸發器電路,它將振蕩器的信號頻率除以2,向CPU提供了兩相時鐘信號P1和P2。時鐘信號的周期稱為機器狀態時間S,它是振蕩周期的2倍。在每個時鐘周期(即機器狀態時間S)的前半周期,相位1(即P1信號)有效,在每個時鐘周期的后半周期,相位2(即P2信號)有效。
使用的寄存器
TCON控制寄存器:啟動和停止定時/計數器的計數,并控制定時器的工作狀態,不能按位尋址
TMOD方式寄存器:設置定時器的工作方式,選擇定時或計數的功能,可以按位尋址。(和中斷共用寄存器,高四位為定時計數器使用,低四位為中斷使用)
注:GATE邏輯結構此處略過
工作方式:
方式0
計算公式:
最大計數:8192個機器周期
工作原理:13位計數器,使用TL0的低5位和TH0的高8位組成,TL0的低5位溢出時向TH0進位。TH0溢出時發出中斷請求。
方式1
計算公式:
最大計數:65536個機器周期
工作原理:16位計數器,TL0作為低8位,TH0作為高8位
方式2:自動重裝初值的8位計數方式
計算公式:p.s.晶振頻率必須選擇12的整數倍,因為定時器的頻率是晶振頻率的1/12。
最大計數:256個機器周期
優點:適合做比較精準的脈沖信號發生器
缺點:
工作原理:計數器溢出后,計數器自動將上次設置的初值重裝。
方式3:p.s.只能用于定時/計數器T0,T0工作在方式3時,T1不要使用在有中斷的場合。通常該種情況下T1用作串口波特率發生器
工作原理:將T0分成兩個獨立的8位定時/計數器TL0和TH0。
TL0為正常的8位定時/計數器,計數器溢出后置位TF0,申請中斷,之后重裝初值。
TH0也是8位定時/計數器,但由于TL0占用了TF0和TR0,因此TH0占用定時器TF1和TR1(所以T1不能用)
時鐘周期/機器周期計算:
定時/計數器初始化
對TMOD賦值,確定T0和T1的工作方式
計算初值,并將其寫入TH.x和TL.x
使用中斷方式時對IE寄存器賦值開發中斷
使TR0或TR1置位,啟動定時/計數器
-
脈沖
+關注
關注
20文章
897瀏覽量
95790 -
計數器
+關注
關注
32文章
2261瀏覽量
94983
原文標題:51單片機 | 定時/計數器原理及結構
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論