第六章 定時(shí)器及應(yīng)用

6.1?定時(shí)器概述

89C51/S51單片機(jī)內(nèi)部有兩個(gè)16位定時(shí)器/計(jì)數(shù)器钞它,即定時(shí)器0(T0)和定時(shí)器1(T1)夭问。

6.1.1?什么是記數(shù)和定時(shí)

1.計(jì)數(shù)

所謂計(jì)數(shù)就是對(duì)外部事件進(jìn)行計(jì)數(shù)乡小,外部事件的發(fā)生以輸入脈沖表示猜敢,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù)吐葱。51單片機(jī)有T0(P3.4)和T1(P3.5)兩個(gè)信號(hào)引腳第喳,分別是這兩個(gè)計(jì)數(shù)器的計(jì)數(shù)輸入端哥力。外部輸入的脈沖在負(fù)跳變(即下降沿)時(shí)進(jìn)行計(jì)數(shù)器加1(加法計(jì)數(shù))。

2.定時(shí)

定時(shí)是通過(guò)計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn)的,只不過(guò)計(jì)數(shù)脈沖來(lái)自單片機(jī)內(nèi)部吩跋,每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖寞射。每個(gè)機(jī)器周期,計(jì)數(shù)器加一锌钮。

(因?yàn)橐粋€(gè)機(jī)器周期等于十二個(gè)振蕩脈沖周期桥温,因此計(jì)數(shù)頻率為振蕩周期的1/12)

6.1.2?定時(shí)器/計(jì)數(shù)器的組成

兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,即定時(shí)器0(T0)和定時(shí)器1(T1)梁丘。都是16位加1計(jì)數(shù)器侵浸。

T0由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成;T1由TH1和TL1構(gòu)成氛谜。

每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或計(jì)數(shù)工作方式以及其他靈活多樣的可控功能方式掏觉,這些都由TMOD(TIMER/COUNTER MODE CONTROL REGISTER定時(shí)器/計(jì)數(shù)器模式控制寄存器)和TCON(TIMER/COUNTER CONTROL REGISTER定時(shí)器/計(jì)數(shù)器控制寄存器)所控制。

設(shè)置為定時(shí)工作方式時(shí)值漫,每個(gè)機(jī)器周期使定時(shí)器(T0或T1)的數(shù)值加1直至計(jì)滿溢出澳腹。當(dāng)89C51/S5采用12 MHz晶振時(shí),一個(gè)機(jī)器周期為1 μs杨何,計(jì)數(shù)頻率為1 MHz酱塔。

設(shè)置為計(jì)數(shù)工作方式時(shí),通過(guò)引腳T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)計(jì)數(shù)危虱。當(dāng)輸入脈沖信號(hào)產(chǎn)生下降沿時(shí)羊娃,計(jì)數(shù)器的值加1。在每個(gè)機(jī)器周期的S5P2期間采樣T0和T1引腳的輸入電平埃跷,在本周期和下一周期之間存在下降沿蕊玷,則計(jì)數(shù)器加1。所以弥雹,檢測(cè)一個(gè)負(fù)跳變下降沿需要兩個(gè)機(jī)器周期集畅,故最高計(jì)數(shù)頻率為振蕩頻率的1/24。(為了確保某個(gè)電平在變化之前至少被采樣一次缅糟,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期。)

不管是定時(shí)還是計(jì)數(shù)工作方式祷愉,定時(shí)器T0或T1在對(duì)內(nèi)部時(shí)鐘或?qū)ν獠渴录?jì)數(shù)時(shí)窗宦,不占用CPU時(shí)間,除非定時(shí)器/計(jì)數(shù)器溢出二鳄,才可能中斷CPU的當(dāng)前操作赴涵。

除了可以選擇定時(shí)或計(jì)數(shù)工作方式外,每個(gè)定時(shí)器/計(jì)數(shù)器還有4種工作模式订讼,也就是每個(gè)定時(shí)器可構(gòu)成4種電路結(jié)構(gòu)模式髓窜。其中,模式0~2對(duì)T0和T1都是一樣的,模式3對(duì)兩者是不同的寄纵。

6.2?定時(shí)器的控制

當(dāng)89C51/S51復(fù)位時(shí)鳖敷,TNOD、TCON都被清零程拭。這兩個(gè)8位寄存器被用來(lái)設(shè)置T0或T1的操作模式和控制模式定踱。

6.2.1?工作模式寄存器TMOD

TMOD用于控制T0和T1的工作模式。TMOD不能位尋址恃鞋,只能用字節(jié)設(shè)置定時(shí)器的工作模式崖媚,低半字節(jié)設(shè)置T0,高半字節(jié)設(shè)置T1恤浪。

89C51系統(tǒng)復(fù)位時(shí)畅哑,TMOD的所有位被清0。

M1和M0:操作模式控制位水由。兩位可形成四種編碼荠呐,對(duì)應(yīng)四種操作模式。

模式0——13位計(jì)數(shù)器绷杜;模式1——16位計(jì)數(shù)器直秆;模式2——自動(dòng)再裝入8位計(jì)數(shù)器;模式3——定時(shí)器0分成二個(gè)8位計(jì)數(shù)器鞭盟,定時(shí)器1停止計(jì)數(shù)

C/\overline{T}:定時(shí)器/計(jì)數(shù)器方式選擇

C/\overline{T}=0圾结,設(shè)置為定時(shí)方式,定時(shí)器計(jì)數(shù)單片機(jī)片內(nèi)脈沖齿诉,即對(duì)機(jī)器周期計(jì)數(shù)(震蕩周期的12倍)筝野;若C/\overline{T}=1,為計(jì)數(shù)方式粤剧,對(duì)外部脈沖計(jì)數(shù)(引腳T0(P3.4)或T1(P3.5))歇竟。

GATE:門(mén)控位。GATE=0抵恋,可以不管外部中斷端口直接啟動(dòng)焕议。

6.2.2?控制寄存器TCON

控制寄存器可位尋址。89C51/S51系統(tǒng)復(fù)位時(shí)弧关,TCON的所有位被清0盅安。

TF(Timer OverFlow Flag)、TR(Timer Run)

①TF1(TCON.7) —T1溢出標(biāo)志位世囊。

當(dāng)T1溢出時(shí)别瞭,由硬件自動(dòng)使中斷觸發(fā)器TF1置1,并向CPU申請(qǐng)中斷株憾。當(dāng)CPU響應(yīng)中斷進(jìn)入中斷服務(wù)程序后蝙寨,TF1被硬件自動(dòng)清0晒衩。TF1也可以用軟件清0。

②TF0(TCON.5)—T0溢出標(biāo)志位墙歪。其功能和操作情況同TF1听系。

③TR1(TCON.6)—T1運(yùn)行控制位。

可通過(guò)軟件置1(TR1=1)或清0(TR1=0)來(lái)啟動(dòng)或關(guān)閉T1工作箱亿。在程序中用指令“SETB?? TR1”使TR1位置1跛锌,定時(shí)器T1便開(kāi)始計(jì)數(shù)。用“CLR TR1使TR1清0届惋,定時(shí)器停止工作髓帽。

④?TR0(TCON.4)—T0運(yùn)行控制位。 其功能和操作情況同TR1脑豹。

⑤?其余為中斷標(biāo)志位

6.3?定時(shí)器的四種模式及應(yīng)用

T0郑藏、T1在模式0、模式1瘩欺、模式2時(shí)必盖,工作模式形同,模式3時(shí)不相同俱饿。

模式0通常很少使用歌粥。

6.3.1?模式1及應(yīng)用

模式1對(duì)應(yīng)一個(gè)16位的定時(shí)器/計(jì)數(shù)器。寄存器TH0和TL1以全部16位參與操作拍埠。

當(dāng)用于定時(shí)工作方式時(shí)失驶,定時(shí)時(shí)長(zhǎng)為:

①?用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:

t=(65536-T0初值)×振蕩周期×12

②?用于計(jì)數(shù)工作方式時(shí)枣购,計(jì)數(shù)長(zhǎng)度為:

(65536-T0初值)(個(gè)外部脈沖)

6.3.2?模式2及應(yīng)用

模式2把TL0配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器嬉探。

TL0計(jì)數(shù)溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置1棉圈,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中涩堤。TL0用作8位計(jì)數(shù)器,TH0用以保存初值分瘾。

在程序初始化時(shí)胎围,TL0和TH0由軟件賦予相同的初值。

用于定時(shí)工作方式時(shí)德召,定時(shí)時(shí)間為:

?t=(256-TL0初值)×振蕩周期×12

該模式可省去軟件中重裝常數(shù)的語(yǔ)句白魂,并可產(chǎn)生相當(dāng)精確的定時(shí)時(shí)間,適合于作串行口波特率發(fā)生器?

6.3.3?模式三及應(yīng)用

若將T0設(shè)置為模式3氏捞,則TL0和TH0被分成兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。

T0設(shè)置為模式3冒版,TL0和TH0被分成兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器液茎。

TL0:用原T0的各控制位、引腳和中斷源,即C/\overline{T}捆等,GATE滞造,TR0,TF0栋烤,T0(P3.4)引腳谒养,INT0(P3.2)引腳。

TL0可工作在定時(shí)器方式和計(jì)數(shù)器方式明郭。其功能和操作與模式0买窟、模式1相同(只是8位)。

TH0:只可用作簡(jiǎn)單的內(nèi)部定時(shí)功能薯定。TH0占用了定時(shí)器T1的控制位TR1和T1的中斷標(biāo)志TF1始绍,其啟動(dòng)和關(guān)閉僅受TR1的控制。

所以T1沒(méi)有模式3话侄,若將T1設(shè)置為模式3亏推,會(huì)導(dǎo)致T1立即停止計(jì)數(shù),也就是保持原有的計(jì)數(shù)值年堆。

定時(shí)器T1無(wú)工作模式3狀態(tài)吞杭。在T0用作模式3時(shí),T1仍可設(shè)置為模式0~2变丧。

由于TR1和TF1被定時(shí)器T0占用芽狗,計(jì)數(shù)器開(kāi)關(guān)K已被接通,此時(shí)锄贷,僅用T1控制位译蒂,C/\overline{T}切換其定時(shí)或計(jì)數(shù)器工作方式就可使T1運(yùn)行。當(dāng)計(jì)數(shù)器溢出時(shí)谊却,只能將輸出送入串行口或用于不需要中斷的場(chǎng)合柔昼。T0模式3,一般設(shè)T1模式2作波特率發(fā)生器炎辨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末侣灶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子袋励,更是在濱河造成了極大的恐慌显蝌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件破喻,死亡現(xiàn)場(chǎng)離奇詭異虎谢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)曹质,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)婴噩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)擎场,“玉大人,你說(shuō)我怎么就攤上這事几莽⊙赴欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵章蚣,是天一觀的道長(zhǎng)站欺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纤垂,這世上最難降的妖魔是什么矾策? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮洒忧,結(jié)果婚禮上蝴韭,老公的妹妹穿的比我還像新娘。我一直安慰自己熙侍,他們只是感情好榄鉴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蛉抓,像睡著了一般庆尘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巷送,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天驶忌,我揣著相機(jī)與錄音,去河邊找鬼笑跛。 笑死付魔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的飞蹂。 我是一名探鬼主播几苍,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼陈哑!你這毒婦竟也來(lái)了妻坝?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惊窖,失蹤者是張志新(化名)和其女友劉穎刽宪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體界酒,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡圣拄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毁欣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庇谆。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赁遗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出族铆,到底是詐尸還是另有隱情,我是刑警寧澤哭尝,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布哥攘,位于F島的核電站,受9級(jí)特大地震影響材鹦,放射性物質(zhì)發(fā)生泄漏逝淹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一桶唐、第九天 我趴在偏房一處隱蔽的房頂上張望栅葡。 院中可真熱鬧,春花似錦尤泽、人聲如沸欣簇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)熊咽。三九已至,卻和暖如春闹丐,著一層夾襖步出監(jiān)牢的瞬間横殴,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工卿拴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衫仑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓堕花,卻偏偏與公主長(zhǎng)得像文狱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子航徙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容