51定時器和計數器

一、MCS-51單片機的定時器/計數器概念

單片機中的定時器和計數器其實是同一個物理的電子元件,只不過計數器記錄的是單片機外部發(fā)生的事情(接受的是外部脈沖),而定時器則是由單片機自身提供的一個非常穩(wěn)定的計數器,這個穩(wěn)定的計數器就是單片機上連接的晶振部件;MCS-51單片機的晶振經過12分頻之后提供給單片機的只有1MHZ的穩(wěn)定脈沖;晶振的頻率是非常準確的,所以單片機的計數脈沖之間的時間間隔也是非常準確的,這個準確的時間間隔是1微秒;

MCS-51單片機外接的是12MHZ的晶振(實際上是11.0592MHZ),所以,MCS-51單片機內部的工作頻率(時鐘脈沖頻率)是12MHZ/12=1MHZ=1000000次/秒=1000000條指令/秒=1000000次/1000000微秒=1次/微秒=1條指令/微秒;也就是說,晶振振蕩一次,就會給單片機提供一個時鐘脈沖,花費的時間是1微秒,此時,CPU會執(zhí)行一條指令,經歷一個機器周期;即:1個時鐘脈沖=1個機器周期=1微秒=1條指令;

注:個人PC機上的CPU主頻是晶振經過倍頻之后的頻率,這一點恰好與MCS-51單片機的相反,MCS-51單片機的主頻是晶振經過分頻之后的頻率;

總之:MCS-51單片機中的時間概念就是通過計數脈沖的個數來測量出來的;1個脈沖=1微秒=1條指令=1個機器周期;

MCS-51單片機定時器/計數器的簡單結構圖:

d5b772ea152dae6ab90e2d48.jpg ?

8051系列單片機有兩個定時器:T0和T1,分別稱為定時器和定時器T1,這兩個定時器都是16位的定時器/計數器;8052系列單片機增加了第三個定時器/計數器T2;它們都有定時或事件計數功能,常用于時間控制、延時、對外部時間計數和檢測等場合;

二、定時器/計數器的結構

8051單片機的兩個定時器T0和T1分別都由兩個特殊功能寄存器組成;T0由特殊功能寄存器TH0和TL0構成,而T1則是由TH1和TL1構成;

作為定時器使用時,定時器計數8051單片機片內振蕩器輸出經過12分頻后的脈沖個數,即:每個機器周期使定時器T0/T1的寄存器值自動累加1,直到溢出,溢出后繼續(xù)從0開始循環(huán)計數;所以,定時器的分辨率是時鐘振蕩頻率的1/12;

作為計數器使用時,通過引腳T0(P3.4)或T1(P3.5)對外部脈沖信號進行計數,當輸入的外部脈沖信號發(fā)生從1到0的負跳變時,計數器的值就自動加1;計數器的最高頻率一般是時鐘振蕩頻率的1/24;

由此可知,不論是定時器還是計數器工作方式,定時器T0和T1均不占用CPU的時間,除非定時器/計數器T0和T1溢出,才可能引起CPU中斷,轉而去執(zhí)行中斷處理程序;所以說,定時器/計數器是單片機中效率高而工作靈活的部件;

三爵川、定時器/計數器的工作模式

除了可選擇定時器和計數器的這兩種工作方式外,每個定時器/計數器都有4種工作模式;

在模式0、1和2時,T0和T1的工作模式相同;在模式3時,兩個定時器/計數器的工作模式不同;

工作模式0:

由TL0的低5位和TH0的全部8位共同構成一個13位的定時器/計數器;定時器/計數器啟動后,定時或計數脈沖個數加到TL0上,從預先設置的初值(時間常數)開始累加,不斷遞增1;當 TL0計滿后,向TH0進位,直到13位寄存器計滿溢出;溢出時,定時器/計數器硬件會自動地把13位的寄存器值清0,中斷標記TF0置1;如果需要進一步定時/計數,需要使用相關指令重置時間常數,并把定時器/計數器的中斷標記TF0置0;工作模式0的結構如下圖:

b859ea26f61cd33535a80f49.jpg ?

工作模式1:

模式1與模式0幾乎完全相同,唯一的區(qū)別就是,模式1中的寄存器TH0和TL0共同構成的是一個16位定時器/計數器來參與操作,因此比模式0中的定時/計數范圍更大;工作模式1的結構如下圖:

f7640a32a07b3c4ceac4af4b.jpg ?

工作模式2:

這種模式又稱為自動再裝入預置數模式;當定時器/計數器的寄存器TH0/TL0的值溢出時,定時器/計數器硬件設備會自動把寄存器TH0/TL0的值清0,以重新開始操作;但是有時候,我們的定時/計數操作是需要多次重復定時/計數的,如果溢出時不做任何處理,那么,在第二輪定時/計數時就是從0開始定時/計數了,而這并不是我們想要的;所以,要保證每次溢出之后,在重新開始定時/計數的操作是我們想要的,那就要把預置數(時間常數)重新裝入某個地方;而重新裝入預置數的操作是硬件設備自動完成的,不需要人工干預所以,這種工作模式就叫自動再裝入預置數方式;既然需要重新裝入預置數,那么預置數就必須要存放在某個地方,才能保證重裝操作成功;在工作模式2中,把自動重裝入的預置數存放在定時器/計數器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0參與定時/計數操作;顯然,定時/計數的方位小了很多;

注:這個工作模式常用于波特率發(fā)生器(串口通訊),T1工作在串口模式2;用于這種方式時,定時器就是為了提供一個時間基準;計數溢出之后,不需要做太多的事情,只做一件事就可以,就是重新裝入預置數,再開始重新計數,而且中間不需要任何延時;工作模式2的結構如下圖:

b363c446ed860d73cefca354.jpg ?

工作模式3:

由于定時器/計數器T1沒有工作模式3,如果把定時器/計數器T0設置為工作模式3,那么TL0和TH0將被分割成兩個相互獨立的8位定時器/計數器;工作模式3的結構如下圖:

daa529ac053fc4aefaed5054.jpg ?

四、定時器/計數器的定時/計數范圍

工作方式0——13位定時器 / 計數器 工作 模式,最多可計數2的13次方 次,即:8192次,[0,8191];

工作方式1——16位定時器/計數器 工作 模式,最多可計數2的16次方 次,即:65536次,[0,65535];

工作方式2——8位定時器/計數器工作模式溉瓶,計算次數最多為2^8,即256,,[0,255];

工作方式3——8位定時器/計數器工作模式 谤民,計算次數最多為2^8,即256堰酿,,[0,255];

預置數的計算公式:預置數=最大值-需要計數的次數;

五、定時器/計數器的控制寄存器

8051單片機設計了兩個8位的特殊功能寄存器來控制定時器/計數器的工作狀態(tài);這兩個特殊功能寄存器分別是TMOD和TCON;它倆都在特殊功能寄存器區(qū);

1张足、工作模式控制寄存器TMOD(89h):

c84805c59bdd414e9c163d56.jpg ?

2触创、工作狀態(tài)控制寄存器TCON(88H):

fb6b0fdaa7248ebc38012f50.jpg ?

六、定時器/計數器的初始化

注:由于8051單片機的定時器/計數器使用的時鐘脈沖是外部晶振(12MHZ)經過12分頻(12MHZ/12=1MHZ)之后的頻率,所以,一個時鐘脈沖就是1微秒;所以,8192個脈沖=8192微秒=8.192毫秒; 65536個脈沖=65536微秒=65.536毫秒; 256個脈沖=256微秒=0.256毫秒;

1为牍、設置定時器/計數器的工作模式TMOD(常用的是模式1:TMOD=0x01);

2哼绑、裝入預置數到THx和TLx中(THx=TLx=MAX(8192/65536/256)-計數次數);

3、如果工作在中斷方式,則需要開定時器/計數器的中斷TCON中的標志位:TF0/TF1=0/1;

4碉咆、啟動定時器/計數器:TR0/TR1=1;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末凌那,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吟逝,更是在濱河造成了極大的恐慌帽蝶,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件块攒,死亡現(xiàn)場離奇詭異励稳,居然都是意外死亡,警方通過查閱死者的電腦和手機囱井,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門驹尼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人庞呕,你說我怎么就攤上這事新翎。” “怎么了住练?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵地啰,是天一觀的道長。 經常有香客問我讲逛,道長亏吝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任盏混,我火速辦了婚禮蔚鸥,結果婚禮上惜论,老公的妹妹穿的比我還像新娘。我一直安慰自己止喷,他們只是感情好馆类,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弹谁,像睡著了一般蹦掐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上僵闯,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天卧抗,我揣著相機與錄音,去河邊找鬼鳖粟。 笑死社裆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的向图。 我是一名探鬼主播泳秀,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼榄攀!你這毒婦竟也來了嗜傅?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤檩赢,失蹤者是張志新(化名)和其女友劉穎吕嘀,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體贞瞒,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡偶房,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了军浆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棕洋。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乒融,靈堂內的尸體忽然破棺而出掰盘,到底是詐尸還是另有隱情,我是刑警寧澤赞季,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布愧捕,位于F島的核電站,受9級特大地震影響碟摆,放射性物質發(fā)生泄漏晃财。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一典蜕、第九天 我趴在偏房一處隱蔽的房頂上張望断盛。 院中可真熱鬧,春花似錦愉舔、人聲如沸钢猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽命迈。三九已至,卻和暖如春火的,著一層夾襖步出監(jiān)牢的瞬間壶愤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工馏鹤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留征椒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓湃累,卻偏偏與公主長得像勃救,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子治力,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容

  • 認識中斷 什么是中斷蒙秒,中斷的概念很簡單,我們從一個生活中的例程引入宵统。你正在家中看書晕讲,突然電話鈴響了,你放下書本马澈,去...
    guanalex閱讀 2,296評論 0 5
  • 一個計數器通常是由一組觸發(fā)器構成益兄,該組觸發(fā)器按照預先給定的順序改變其狀態(tài),如果所有觸發(fā)器的狀態(tài)改變是在同一時鐘脈沖...
    錦穗閱讀 13,311評論 0 6
  • 寄存器IE(8位):對單片機系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽的控制 EX0(IE.0)箭券,外部中斷0允許位净捅; ...
    又是那一片天閱讀 1,375評論 0 1
  • SPI通信實驗 SPI簡介 串行外設接口(Serial Peripheral Interface Bus,SPI)...
    btskyrmb閱讀 9,462評論 1 12
  • 怎樣選擇自己適合的工作辩块?
    Elsa666閱讀 130評論 0 0