學(xué)單片機(jī)的同學(xué)肯定都知道這個(gè)定時(shí)器,本文今天給大家詳細(xì)的介紹一下8051系列的單片機(jī)定時(shí)器。其實(shí)單片機(jī)中的定時(shí)器和計(jì)數(shù)器其實(shí)是同一個(gè)物理的電子元件。只不過(guò)計(jì)數(shù)器記錄的是單片機(jī)外部發(fā)生的事情(接受的是外部脈沖),而定時(shí)器則是由單片機(jī)自身提供的一個(gè)非常穩(wěn)定的計(jì)數(shù)器,這個(gè)穩(wěn)定的計(jì)數(shù)器就是單片機(jī)上連接的晶振部件,這點(diǎn)我們是需要與這個(gè)定時(shí)器區(qū)分一下,以免混淆了。
關(guān)于8051系列單片機(jī)有兩個(gè)定時(shí)器:T0和T1,分別稱為定時(shí)器和定時(shí)器T1,這兩個(gè)定時(shí)器都是16位的定時(shí)器/計(jì)數(shù)器;8052系列單片機(jī)增加了第三個(gè)定時(shí)器/計(jì)數(shù)器T2;它們都有定時(shí)或事件計(jì)數(shù)功能,常用于時(shí)間控制、延時(shí)、對(duì)外部時(shí)間計(jì)數(shù)和檢測(cè)等場(chǎng)合。

我們來(lái)看看關(guān)于這個(gè)定時(shí)器的工作模式:
除了可選擇定時(shí)器的這兩種工作方式外,每個(gè)定時(shí)器都有4種工作模式
在模式0、1和2時(shí),T0和T1的工作模式相同;在模式3時(shí),兩個(gè)定時(shí)器/計(jì)數(shù)器的工作模式不同
工作模式0:
由TL0的低5位和TH0的全部8位共同構(gòu)成一個(gè)13位的定時(shí)器/計(jì)數(shù)器;定時(shí)器/計(jì)數(shù)器啟動(dòng)后,定時(shí)或計(jì)數(shù)脈沖個(gè)數(shù)加到TL0上,從預(yù)先設(shè)置的初值(時(shí)間常數(shù))開(kāi)始累加,不斷遞增1;當(dāng) TL0計(jì)滿后,向TH0進(jìn)位,直到13位寄存器計(jì)滿溢出;溢出時(shí),定時(shí)器/計(jì)數(shù)器硬件會(huì)自動(dòng)地把13位的寄存器值清0,中斷標(biāo)記TF0置1;如果需要進(jìn)一步定時(shí)/計(jì)數(shù),需要使用相關(guān)指令重置時(shí)間常數(shù),并把定時(shí)器/計(jì)數(shù)器的中斷標(biāo)記TF0置0。
工作模式1:
模式1與模式0幾乎完全相同,唯一的區(qū)別就是,模式1中的寄存器TH0和TL0共同構(gòu)成的是一個(gè)16位定時(shí)器/計(jì)數(shù)器來(lái)參與操作,因此比模式0中的定時(shí)范圍更大。
工作模式2:
這種模式又稱為自動(dòng)再裝入預(yù)置數(shù)模式;當(dāng)定時(shí)器的寄存器TH0/TL0的值溢出時(shí),定時(shí)器/計(jì)數(shù)器硬件設(shè)備會(huì)自動(dòng)把寄存器TH0/TL0的值清0,以重新開(kāi)始操作;但是有時(shí)候,我們的定時(shí)/計(jì)數(shù)操作是需要多次重復(fù)定時(shí)的,如果溢出時(shí)不做任何處理,那么,在第二輪定時(shí)時(shí)就是從0開(kāi)始定時(shí)/計(jì)數(shù)了,而這并不是我們想要的;所以,要保證每次溢出之后,在重新開(kāi)始定時(shí)的操作是我們想要的,那就要把預(yù)置數(shù)(時(shí)間常數(shù))重新裝入某個(gè)地方;而重新裝入預(yù)置數(shù)的操作是硬件設(shè)備自動(dòng)完成的,不需要人工干預(yù)所以,這種工作模式就叫自動(dòng)再裝入預(yù)置數(shù)方式;既然需要重新裝入預(yù)置數(shù),那么預(yù)置數(shù)就必須要存放在某個(gè)地方,才能保證重裝操作成功;在工作模式2中,把自動(dòng)重裝入的預(yù)置數(shù)存放在定時(shí)器/計(jì)數(shù)器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0參與定時(shí)/計(jì)數(shù)操作;顯然,定時(shí)/計(jì)數(shù)的方位小了很多;
注:這個(gè)工作模式常用于波特率發(fā)生器(串口通訊),T1工作在串口模式2;用于這種方式時(shí),定時(shí)器就是為了提供一個(gè)時(shí)間基準(zhǔn);計(jì)數(shù)溢出之后,不需要做太多的事情,只做一件事就可以,就是重新裝入預(yù)置數(shù),再開(kāi)始重新計(jì)數(shù),而且中間不需要任何延時(shí)。
工作模式3:
由于定時(shí)器/計(jì)數(shù)器T1沒(méi)有工作模式3,如果把定時(shí)器T0設(shè)置為工作模式3,那么TL0和TH0將被分割成兩個(gè)相互獨(dú)立的8位定時(shí)器。
本文介紹到這里,希望能夠讓需要了解更多單片機(jī)定時(shí)器的朋友有更深一步認(rèn)識(shí)!
|