單片機定時(shí)器/計數器的結構以及工作原理
定時(shí)器/計數器的結構
本文引用地址:http://dyxdggzs.com/article/201807/384291.htm定時(shí)器/計數器的實(shí)質(zhì)是加1計數器(16位),由高8位和低8位兩個(gè)寄存器組成。TMOD是定時(shí)器/計數器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設置溢出標志。

計數器輸入的計數脈沖源
系統的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后產(chǎn)生;
T0或T1引腳輸入的外部脈沖源。
計數過(guò)程
每來(lái)一個(gè)脈沖計數器加1,當加到計數器為全1(即FFFFH)時(shí),再輸入一個(gè)脈沖就使計數器回零,且計數器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時(shí)器/計數器中斷允許時(shí))。如果定時(shí)器/計數器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計數模式,則表示計數值已滿(mǎn)。
定時(shí)應用
用作定時(shí)器:此時(shí)設置為定時(shí)器模式,加1計數器是對內部機器周期計數(1個(gè)機器周期等于12個(gè)振蕩周期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器周期Tcy就是定時(shí)時(shí)間t 。
計數運用
用作計數器:此時(shí)設置為計數器模式,外部事件計數脈沖由T0或T1引腳輸入到計數器。每來(lái)一個(gè)外部脈沖,計數器加1。但單片機對外部脈沖有基本要求:脈沖的高低電平持續時(shí)間都必須大于1個(gè)機器周期。
工作方式寄存器(TMOD)

GATE:門(mén)控位。
GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)器/計數器工作;(即需要一個(gè)啟動(dòng)條件)
GATE=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳也為高電平時(shí),才能啟動(dòng)定時(shí)器/計數器工作,即需要兩個(gè)啟動(dòng)條件。
C/T :定時(shí)/計數模式選擇位。
C/T =0為定時(shí)模式; C/T =1為計數模式。
M1M0:工作方式設置位。
計數器工作方式選擇
M1 M0 工 作 方 式 功 能 說(shuō) 明
0 0 方式0 13位計數器
0 1 方式1 16位計數器
1 0 方式2 自動(dòng)重裝8位計數器
1 1 方式3 定時(shí)器0:分成兩個(gè)8位
定時(shí)器1:停止計數
定時(shí)器/計數器的控制
控制寄存器TCON
TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時(shí)器/計數器的啟動(dòng)和中斷申請。其格式如下:

TF1(TCON.7):T1溢出中斷請求標志位。T1計數溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應中斷后TF1由硬件自動(dòng)清0。TR1(TCON.6):T1起/??刂莆?。1:?jiǎn)?dòng) 0:停止
TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類(lèi)同。
TR0(TCON.4):T0起/??刂莆?。1:?jiǎn)?dòng) 0:停止
定時(shí)器/計數器的工作方式
方式1
方式1為13位計數,由TL0的低5位(高3位未用)和TH0的8位組成TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標志,向CPU發(fā)出中斷請求。

方式2
方式2的計數位數是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計數器 。
方式3
方式3為自動(dòng)重裝初值的8位計數方式。

在方式3下,當計數器計滿(mǎn)255(FFH)溢出時(shí),CPU自動(dòng)把TH 的值裝入TL中,不需用戶(hù)干預。因此特別適合于用作較精確的脈沖信號發(fā)生器。
方式4

方式4只適用于定時(shí)器/計數器T0,定時(shí)器T1方式3時(shí)相當于TR1=0,停止計數。
工作方式4將T0分成為兩個(gè)獨立的8位計數器TL0和TH0 。
評論