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