51單片機(jī)定時(shí)器工作原理
發(fā)表時(shí)間:2020-09-26 09:28:43 人氣:12474
51中的定時(shí)器和計(jì)數(shù)器是同一個(gè)硬件電路支持的,通過(guò)寄存器配置不同,就可以將他當(dāng)做定時(shí)器或者計(jì)數(shù)器使用。
確切的說(shuō),定時(shí)器和計(jì)數(shù)器區(qū)別是致使他們背后的計(jì)數(shù)存儲(chǔ)器加1的信號(hào)不同。當(dāng)配置為定時(shí)器使用時(shí),每經(jīng)過(guò)1個(gè)機(jī)器周期,計(jì)數(shù)存儲(chǔ)器的值就加1。而當(dāng)配置為計(jì)數(shù)器時(shí),每來(lái)一個(gè)負(fù)跳變信號(hào)(信號(hào)從P3.4 或者P3.5引腳輸入),就加1,以此達(dá)到計(jì)數(shù)的目的。
標(biāo)準(zhǔn)51有2個(gè)定時(shí)器/計(jì)數(shù)器:T0和T1。他們的使用方法一致。52相比51多了一個(gè)T2。
時(shí)鐘周期與機(jī)器周期
定時(shí)器的本質(zhì)原理就是:每經(jīng)過(guò)1個(gè)機(jī)器周期,計(jì)數(shù)存儲(chǔ)器的值就加1。因此當(dāng)使用定時(shí)器時(shí),就必須掌握時(shí)鐘周期和機(jī)器周期的關(guān)系。
時(shí)鐘周期 :晶振頻率的倒數(shù)。如果使用的是11.0592M的晶振,那么就是 1 / (11.0592x10^6) 秒
注:1MHz = 10^6Hz
機(jī)器周期 :標(biāo)準(zhǔn)51下,機(jī)器周期 =12倍的時(shí)鐘周期。即:12 / (11.0592x10^6) 秒 。有的增強(qiáng)51單片機(jī),1個(gè)機(jī)器周期等于4倍的時(shí)鐘周期,還有的更短。
計(jì)數(shù)存儲(chǔ)寄存器THx&TLx
定時(shí)器和計(jì)數(shù)器工作,都依賴于 計(jì)數(shù)。計(jì)數(shù)則是由計(jì)數(shù)存儲(chǔ)器THx和TLx這2個(gè)8位寄存器完成的。
對(duì)于計(jì)數(shù)器,每來(lái)一個(gè)負(fù)跳變信號(hào)(信號(hào)從P3.4 或者P3.5引腳輸入),就加1,以此達(dá)到計(jì)數(shù)的目的。
對(duì)于定時(shí)器,每隔1個(gè)機(jī)器周期 加 1,假如(只是假如)一個(gè)機(jī)器周期為 1ms , 當(dāng)加到1000次時(shí),我們就認(rèn)為經(jīng)過(guò)了1s,這就是定時(shí)器定時(shí)依據(jù)。
若TH0 和 TL0 以 16位 模式工作,那它的計(jì)數(shù)范圍為 [0 , 65535 ] , 也就是累加 65536次發(fā)生溢出。 每累加一次是 12 / (11.0592x10^6) 秒。
那么從 0 累加到溢出 歷時(shí) ≈ 0.071s = 71ms 。
可以延時(shí) 10的整數(shù)倍ms,這樣就避免了誤差,以便用倍數(shù)控制更長(zhǎng)的延時(shí)時(shí)間。所以,我么要給 TH0 和 TL0賦一個(gè)初始值,使他們的溢出周期(TH0,TL0從初始值到溢出所用的時(shí)間)減少到 10ms。
就像一個(gè)瓶子,開(kāi)始裝了2/3,再來(lái)就只能裝1/3就溢出了。通過(guò)比例式計(jì)算:
12 / (11.0592x10^6) s ----- 1 次
10x 10-3 s ------ x 次 (求出 x = 9216次 ,計(jì)數(shù)9216次后溢出)
65536 - 9216 = 56320 = 二進(jìn)制( 11011100 00000000)
也就是 TH0 = 11011100 , TL0 = 00000000
工作模式寄存器TMOD
通過(guò)TMOD來(lái)配置T0和T1的工作模式。
注意,TMOD寄存器不可位尋址(例如sbit led = P0^0 就是P0寄存器位尋址的例子),因此對(duì)它的配置需要對(duì)這個(gè)8bit寄存器整體賦值。
注:51中有些特殊功能寄存器不支持位尋址。只有寄存器的地址值能夠被8整除的(即以數(shù)字0或者8結(jié)尾的地址,如0xA8, 0xD0),才能支持位尋址。不支持位尋址的,只能整體賦值。
小技巧:在對(duì)寄存器整體賦值時(shí),要注意只修改我們想修改的位而不影響其它無(wú)關(guān)位的值,避免影響了之前對(duì)這個(gè)寄存器的配置。
TMOD |= 0x01; //僅僅修改TMOD的最低位,其他位保持不變。
C/T:計(jì)數(shù)器,定時(shí)器功能選擇位。 1為計(jì)數(shù)器模式, 0 為定時(shí)器模式。
M0和M1:
解釋說(shuō)明:
②處 C/T = 0 表示為定時(shí)器模式,觸發(fā)信號(hào)為①處的單片機(jī)內(nèi)部時(shí)鐘信號(hào)。(若②處CT = 1,則觸發(fā)信號(hào)為Tn腳)
③處表明,信號(hào)能觸發(fā)使加法計(jì)數(shù)器加1,還得受④處控制。不然時(shí)鐘信號(hào)是不能讓加法計(jì)數(shù)器累加的。 ④處這個(gè)是與門,所以TRx(TR0和TR1)必須為1,表明我們要開(kāi)啟定時(shí)器。同時(shí)當(dāng),GATE為0,通過(guò)非門后為1,再通過(guò)或門,也是1,那么就讓③處控制起來(lái)了。若GATE為1,那么,定時(shí)器的啟動(dòng)停止受 TRx和 INTx 共同控制。 INTx腳為1且TRx為1才能啟動(dòng)定時(shí)器/計(jì)數(shù)器。
于是在一般情況下使用定時(shí)器,我們需要如下配置:
TRx 為 1
GATE 為 0
INTx 任意
控制寄存器TCON
控制寄存器就是用來(lái)控制定時(shí)器/計(jì)數(shù)器 啟動(dòng)和停止的,以及溢出標(biāo)志位的查詢和修改。TFx是計(jì)數(shù)存儲(chǔ)器溢出標(biāo)志位,只要一溢出,就馬上置為1。
TF1:定時(shí)器/計(jì)數(shù)器1的溢出標(biāo)志位。1表示計(jì)數(shù)存儲(chǔ)器溢出,0表示計(jì)數(shù)存儲(chǔ)器正常計(jì)數(shù)。
相關(guān)咨詢
工廠展示
聯(lián)系我們
成都子程新輝電子設(shè)備有限公司
聯(lián)系人:文先生
手機(jī):13183865499
QQ:1977780637
地址:成都市金牛區(qū)星輝西路2號(hào)附1號(hào)(臺(tái)誼民生大廈)407號(hào)
同類文章排行
最新咨詢文章
- 1 PCB板都有哪些優(yōu)點(diǎn)?
- 2 成都哪里可以做PCB抄板
- 3 開(kāi)發(fā)設(shè)計(jì)單片機(jī)時(shí)需要注意的幾個(gè)點(diǎn)
- 4 4種單片機(jī)高效開(kāi)發(fā)的技巧
- 5 DC-DC變換器:優(yōu)化設(shè)計(jì)與EMI控制的秘訣
- 6 單片機(jī)解密失敗的深度解析與風(fēng)險(xiǎn)
- 7 PCB設(shè)計(jì)中的開(kāi)窗技巧:功能與應(yīng)用
- 8 PCB抄板中的LAYOUT布線技巧詳解
- 9 子程電子2024春節(jié)后已于2月19日開(kāi)工
- 10 PCB抄板剖制技巧:技術(shù)與藝術(shù)的結(jié)合