單片機(jī)定時(shí)/計(jì)數(shù)器工作原理是什么?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在家電產(chǎn)品和工業(yè)應(yīng)用系統(tǒng)中,定時(shí)和計(jì)數(shù)是兩種常用的功能,如:微波爐加熱計(jì)時(shí)和流水線上產(chǎn)品數(shù)目統(tǒng)計(jì)等。MCS-51單片機(jī)內(nèi)部集成的兩個(gè)可編程定時(shí)/計(jì)數(shù)器T0和T1使用靈活、方便,在儀器儀表等工業(yè)產(chǎn)品中應(yīng)用廣泛。
定時(shí)器的作用:
定時(shí)計(jì)數(shù)器可以用于精確事件定時(shí),PWM脈寬調(diào)制,波形發(fā)生,信號(hào)時(shí)序測(cè)量的方面。計(jì)時(shí)也是通過(guò)計(jì)數(shù)來(lái)實(shí)現(xiàn)的。
定時(shí)器的實(shí)質(zhì):
加1的16位計(jì)數(shù)器分高八位、低八位組成
51單片機(jī)定時(shí)器0內(nèi)部有兩個(gè)寄存器TH0和TL0,都是1字節(jié)的,理解位定時(shí)器0高位寄存器(TH0),定時(shí)器0低位寄存器(TL0),我們知道2字節(jié)最大能存65535。
比賽板擁有三個(gè)定時(shí)器0,定時(shí)器1,定時(shí)器2主要用定時(shí)器0
使用單片機(jī)時(shí)經(jīng)常用到一個(gè)元件,那就是單片機(jī)定時(shí)器,單片機(jī)定時(shí)器的作用主要是在發(fā)生軟件故障時(shí),通過(guò)使器件復(fù)位(如果軟件未將器件清零)將單片機(jī)復(fù)位,也可以用于將器件從休眠或空閑模式喚醒,還能用做精確延時(shí)處理,常被應(yīng)用于時(shí)間控制、程序延時(shí)、對(duì)外部時(shí)間計(jì)數(shù)和檢測(cè)等工作范圍內(nèi)。那么單片機(jī)定時(shí)器原理是什么呢?
定時(shí)/計(jì)數(shù)器的基本工作原理
MCS-51單片機(jī)的兩個(gè)定時(shí)/計(jì)數(shù)器T0和T1有定時(shí)和計(jì)數(shù)兩種功能,分別由一對(duì)特殊功能寄存器組構(gòu)成,即TH0、TL0和TH1、TL1,其基本工作原理如圖4-7所示。
圖4-7定時(shí)/計(jì)數(shù)器工作原理圖
本質(zhì)上定時(shí)和計(jì)數(shù)器都是具有加1功能的計(jì)數(shù)器,其基本原理分別如下:
(1)計(jì)數(shù)模式的工作原理
在計(jì)數(shù)模式下,定時(shí)/計(jì)數(shù)器可以累計(jì)脈沖輸入引腳(T0和T1的脈沖輸入引腳分別為P3.4和P3.5)上出現(xiàn)的脈沖下降沿的次數(shù)。
計(jì)數(shù)器工作時(shí),首先設(shè)置其工作方式,以確定計(jì)數(shù)器位數(shù)N;然后為其賦初值M;接著,啟動(dòng)其工作。這之后,脈沖輸入引腳上每出現(xiàn)一次脈沖下降沿,計(jì)數(shù)器的值加1。當(dāng)計(jì)數(shù)器中的數(shù)值達(dá)到最大后,若再出現(xiàn)一個(gè)脈沖下降沿,計(jì)數(shù)器的值將溢出、回零,并且計(jì)數(shù)器的溢出中斷請(qǐng)求標(biāo)志位被置1,從而發(fā)出中斷請(qǐng)求。特別說(shuō)明:定時(shí)/計(jì)數(shù)器中所能存放的最大值與其位數(shù)N有關(guān),為2N-1,例如8位計(jì)數(shù)器中可存放的最大數(shù)值為28-1=255=FFH。
顯然,若已知N和M的值,則可以計(jì)算出在計(jì)數(shù)器溢出時(shí)其脈沖輸入引腳上出現(xiàn)的脈沖下降沿個(gè)數(shù)。例如:假設(shè)定時(shí)/計(jì)數(shù)器0工作于工作方式2,即N=8,且其初始值M=50,則溢出之前出現(xiàn)的脈沖下降沿的個(gè)數(shù)Q為:Q=2N-M=28-50=206。
另外,需要特別注意的是:定時(shí)/計(jì)數(shù)器通過(guò)連續(xù)兩個(gè)機(jī)器周期的電平采樣實(shí)現(xiàn)對(duì)脈沖下降沿的檢測(cè),采樣發(fā)生在每個(gè)機(jī)器周期的S5P2階段。若前后兩個(gè)機(jī)器周期分別采樣到一個(gè)高電平和一個(gè)低電平,則確認(rèn)一個(gè)有效下降沿信號(hào)出現(xiàn)。因此,為確保不漏計(jì)脈沖數(shù),被計(jì)數(shù)脈沖的周期至少2倍于機(jī)器周期,即脈沖信號(hào)的最高頻率為單片機(jī)晶振頻率的1/24,例如:若單片機(jī)的晶振頻率為6MHz,則定時(shí)/計(jì)數(shù)器能計(jì)數(shù)的脈沖頻率應(yīng)不大于
6MHz/24=250kHz。
(2)定時(shí)模式的工作原理
在定時(shí)模式下,定時(shí)/計(jì)數(shù)器累計(jì)機(jī)器周期個(gè)數(shù)。與計(jì)數(shù)模式相似,首先,設(shè)置工作方式,以確定定時(shí)器位數(shù)N;然后,為其賦初值M;接著,啟動(dòng)其工作。之后,每經(jīng)過(guò)一個(gè)機(jī)器周期,定時(shí)器的值加1,當(dāng)加到定時(shí)器的最大值后,若再出現(xiàn)一個(gè)機(jī)器周期,定時(shí)器的值將溢出、回零,并且定時(shí)器的溢出中斷請(qǐng)求標(biāo)志位被置1,從而發(fā)出中斷請(qǐng)求。
若已知N和M的值以及單片機(jī)的晶振頻率,即可得出從定時(shí)器啟動(dòng)工作到發(fā)出溢出中斷請(qǐng)求之間所經(jīng)過(guò)的時(shí)間長(zhǎng)度。例如,若定時(shí)/計(jì)數(shù)器0工作于工作方式1,即N=16,且其初始值M=50000,并假設(shè)單片機(jī)晶振頻率為12MHz,則單片機(jī)的機(jī)器周期T=12/(12MHz)=1μs,從啟動(dòng)定時(shí)器工作到其發(fā)出中斷請(qǐng)求之間的時(shí)間間隔為t=(216-50000)μs=15536μs。