目標(biāo):定時(shí)器和計(jì)數(shù)器的理解(一)
1.定時(shí)器/計(jì)數(shù)器簡(jiǎn)介
定時(shí)器/計(jì)數(shù)器(Timer/Counter,簡(jiǎn)稱T/C)是單片機(jī)中最基本的接口之一苟径。即可以定時(shí)又可以計(jì)數(shù)案站。常用于計(jì)數(shù)、延時(shí)涩笤、測(cè)量周期/脈寬/頻率嚼吞、提供定時(shí)脈沖信號(hào)等。
8051系列單片機(jī)至少含有2個(gè)16位的T/C蹬碧,STC89C51/52含有3個(gè)T/C舱禽。其中2個(gè)為基本定時(shí)器/計(jì)數(shù)器T/C0和T/C1,另一個(gè)是T/C2恩沽√苤桑可通過(guò)軟件配置為定時(shí)器功能或者計(jì)數(shù)器功能。
定時(shí)/計(jì)數(shù)器的工作原理
定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器罗心。當(dāng)工作在定時(shí)器模式時(shí)里伯,對(duì)振蕩源(晶振)12分頻(12分頻就是震蕩周期,單位 是us)的脈沖計(jì)數(shù)渤闷,即每個(gè)機(jī)器周期(12個(gè)震蕩周期就是1/12us12=1us)計(jì)數(shù)值加1(解釋了前面延時(shí)函數(shù))疾瓮,當(dāng)加到計(jì)數(shù)器為全1(定時(shí)計(jì)數(shù)器是 16位,則2*16=65539飒箭,減1[因?yàn)?開(kāi)始]后65535是定時(shí)計(jì)數(shù)最大值)時(shí)狼电,再輸入一個(gè)脈沖就使計(jì)數(shù)器回零。
當(dāng)工作在計(jì)數(shù)器模式時(shí)弦蹂,計(jì)數(shù)脈沖來(lái)至外部脈沖輸入引腳P3.4(T0)和P3.5(T1)肩碟,當(dāng)T0或T1腳上負(fù)跳變(即下降沿,正跳變==上升沿)時(shí)計(jì)數(shù)值加1 凸椿,識(shí)別管腳負(fù)跳變需要2個(gè)機(jī)器周期(2us)削祈,即24個(gè)振蕩周期。所以T0或T1腳輸入的可計(jì)數(shù)的外部脈沖的最高頻率為1/24fosc(1/24*12=500KHz)脑漫,當(dāng)晶振12MHZ時(shí)髓抑,最高計(jì)數(shù)頻率為500KHz,高于此頻率將計(jì)數(shù)出錯(cuò)窿撬。
2.定時(shí)器/計(jì)數(shù)器寄存器
TH1和TL1是定時(shí)/計(jì)數(shù)器1的兩個(gè)寄存器启昧,都是8位,共16位劈伴。TH1是高8位密末,TL1是低八位
TH0和TL0是定時(shí)/計(jì)數(shù)器0的兩個(gè)寄存器握爷,都是8位,共16位严里。TH0是高8位新啼,TL0是低八位
T0引腳是P3.4,T1引腳是P3.5刹碾,配置成計(jì)數(shù)器模式用于檢測(cè)外部的脈沖信號(hào)
定時(shí)器控制寄存器TCON燥撞,
工作方式選擇寄存器TMOD (用于確定定時(shí)/計(jì)數(shù)器的工作方式和功能)
TCOD見(jiàn)單片機(jī)小白學(xué)習(xí)之路(十二)---->http://www.reibang.com/p/4de17b66a15b
工作方式選擇寄存器TMOD
0~3是定時(shí)/計(jì)數(shù)器0 的4位,M1,M0用于選擇工作方式迷帜,工作方式有0物舒,1,2戏锹,3冠胯。C/T是計(jì)數(shù)器或定時(shí)器的選擇位,C/T置0則是定時(shí)模式锦针,置1是計(jì)數(shù)模式荠察。
GATE是門控信號(hào)GATE=1時(shí),T/C(定時(shí)/計(jì)數(shù)器)啟動(dòng)收到雙重控制要求TR0/TR1和INT0/INT1同時(shí)為高奈搜,GATE=0時(shí)悉盆,T/C的啟動(dòng)僅收到TR0/TR1的控制,通常把GATE置0
- 方式0:最大計(jì)數(shù)值是2**13-1=8191
- 方式1:最大計(jì)數(shù)值是2**16-1=65535
- 方式2:TH存放初值馋吗,TL用于計(jì)數(shù)焕盟,由于是8位則最大值255,TL不斷計(jì)數(shù)宏粤,計(jì)到255則溢出并清0京髓,然后TH把初值給TL又開(kāi)始計(jì)數(shù),這就是可自動(dòng)重新裝載初值的含義
- 方式3:對(duì)T0和T1不大相同商架,僅T0可設(shè)置模式3,若設(shè)置其為模式3芥玉,TL0和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器蛇摸,TL0為8位計(jì)數(shù)器,功能與模式0/1相同灿巧,可定時(shí)可計(jì)數(shù)
TH0僅做簡(jiǎn)單的內(nèi)部定時(shí)功能赶袄,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1 ,啟動(dòng)和關(guān)閉僅受TR1控制(此模式不常用)