定時器/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時器/計數器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設置溢出標志。
定時器/計數器的工作原理
計數器輸入的計數脈沖源
系統的時鐘振蕩器輸出脈沖經12分頻后產生;
T0或T1引腳輸入的外部脈沖源。
計數過程
每來一個脈沖計數器加1,當加到計數器為全1(即FFFFH)時,再輸入一個脈沖就使計數器回零,且計數器的溢出使TCON中TF0或TF1置1,向CPU發出中斷請求(定時器/計數器中斷允許時)。如果定時器/計數器工作于定時模式,則表示定時時間已到;如果工作于計數模式,則表示計數值已滿。
定時應用
用作定時器:此時設置為定時器模式,加1計數器是對內部機器周期計數(1個機器周期等于12個振蕩周期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器周期Tcy就是定時時間t 。
計數運用
用作計數器:此時設置為計數器模式,外部事件計數脈沖由T0或T1引腳輸入到計數器。每來一個外部脈沖,計數器加1。但單片機對外部脈沖有基本要求:脈沖的高低電平持續時間都必須大于1個機器周期。
工作方式寄存器(TMOD)
GATE:門控位。
GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時器/計數器工作;(即需要一個啟動條件)
GATE=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳也為高電平時,才能啟動定時器/計數器工作,即需要兩個啟動條件。
C/T :定時/計數模式選擇位。
C/T =0為定時模式; C/T =1為計數模式。
M1M0:工作方式設置位。
計數器工作方式選擇
M1 M0 工 作 方 式 功 能 說 明
0 0 方式0 13位計數器
0 1 方式1 16位計數器
1 0 方式2 自動重裝8位計數器
1 1 方式3 定時器0:分成兩個8位
定時器1:停止計數
定時器/計數器的控制
控制寄存器TCON
TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時器/計數器的啟動和中斷申請。其格式如下:
TF1(TCON.7):T1溢出中斷請求標志位。T1計數溢出時由硬件自動置TF1為1。CPU響應中斷后TF1由硬件自動清0。TR1(TCON.6):T1起/停控制位。1:啟動 0:停止
TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。
TR0(TCON.4):T0起/停控制位。1:啟動 0:停止
定時器/計數器的工作方式
方式0
方式0為13位計數,由TL0的低5位(高3位未用)和TH0的8位組成TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發出中斷請求。
方式1
方式1的計數位數是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計數器 。
方式2
方式2為自動重裝初值的8位計數方式。
在方式2下,當計數器計滿255(FFH)溢出時,CPU自動把TH 的值裝入TL中,不需用戶干預。因此特別適合于用作較精確的脈沖信號發生器。
方式3
方式3只適用于定時器/計數器T0,定時器T1方式3時相當于TR1=0,停止計數。
工作方式3將T0分成為兩個獨立的8位計數器TL0和TH0 。
-
計數器
+關注
關注
32文章
2261瀏覽量
94877 -
定時器
+關注
關注
23文章
3255瀏覽量
115182 -
脈沖源
+關注
關注
0文章
6瀏覽量
7091
原文標題:單片機定時器/計數器結構與工作方式詳解
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論