RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳細剖析單片機定時器的寄存器

電子工程技術(shù) ? 2018-02-09 13:47 ? 次閱讀

標準的 51 單片機內(nèi)部有 T0 和 T1 這兩個定時器,T 就是 Timer 的縮寫,現(xiàn)在很多 51 系列單片機還會增加額外的定時器,在這里我們先講定時器 0 和 1。前邊提到過,對于單片機的每一個功能模塊,都是由它的 SFR,也就是特殊功能寄存器來控制。

與定時器有關(guān)的特殊功能寄存器,有以下幾個,大家不需要去記憶這些寄存器的名字和作用,你只要大概知道就行,用的時候,隨時可以查手冊,找到每個寄存器的名字和每個寄存器所起到的作用。

表 5-1 的寄存器是存儲定時器的計數(shù)值的。TH0/TL0 用于 T0,TH1/TL1 用于 T1。

表 5-1 定時值存儲寄存器

名稱 描述 SFR地址 復(fù)位值
TH0 定時器0高字節(jié) 0x8C 0x00
TL0 定時器0低字節(jié) 0x8A 0x00
TH1 定時器1高字節(jié) 0x8D 0x00
TL1 定時器1低字節(jié) 0x8B 0x00

表 5-2 是定時器控制寄存器 TCON 的位分配,表 5-3 是則是對每一位的具體含義的描述。

表 5-2 TCON——定時器控制寄存器的位分配(地址 0x88、可位尋址)

7 6 5 4 3 2 1 0
符號 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
復(fù)位值 0 0 0 0 0 0 0 0
表 5-3 TCON——定時器控制寄存器的位描述
符號 描述
7 TF1 定時器1溢出標志。一旦定時器1發(fā)生溢出時硬件置1。清零有兩種方式:軟件清零,或者進入定時器中斷時硬件清零。
6 TR1 定時器1運行控制位。軟件置位/清零來進行啟動/停止定時器。
5 TF0 定時器0溢出標志。一旦定時器0發(fā)生溢出時硬件置1。清零有兩種方式:軟件清零,或者進入定時器中斷時硬件清零。
4 TR0 定時器0運行控制位。軟件置位/清零來進行啟動/停止定時器。
3 IE1 外部中斷部分,與定時器無關(guān),暫且不看。
2 IT1
1 IE0
0 IT0

大家注意在表 5-3 中的描述中,只要寫到硬件置 1 或者清 0 的,就是指一旦符合條件,單片機將自動完成的動作,只要寫軟件置 1 或者清 0 的,是指我們必須用程序去完成這個動作,后續(xù)遇到此類描述就不再另做說明了。對于 TCON 這個 SFR,其中有 TF1、TR1、TF0、TR0 這 4 位需要我們理解清楚,它們分別對應(yīng)于 T1 和 T0,我們以定時器 1 為例講解,那么定時器 0 同理。先看 TR1,當我們程序中寫 TR1 = 1 以后,定時器值就會每經(jīng)過一個機器周期自動加 1,當我們程序中寫 TR1 = 0以后,定時器就會停止加 1,其值會保持不變化。TF1,這個是一個標志位,他的作用是告訴我們定時器溢出了。

比如我們的定時器設(shè)置成 16 位的模式,那么每經(jīng)過一個機器周期,TL1加 1 一次,當 TL1 加到 255 后,再加 1,TL1 變成 0,TH1 會加 1 一次,如此一直加到 TH1和 TL1 都是 255(即 TH1 和 TL1 組成的 16 位整型數(shù)為 65535)以后,再加 1 一次,就會溢出了,TH1 和 TL1 同時都變?yōu)?0,只要一溢出,TF1 馬上自動變成 1,告訴我們定時器溢出了,僅僅是提供給我們一個信號,讓我們知道定時器溢出了,它不會對定時器是否繼續(xù)運行產(chǎn)生任何影響。本節(jié)開頭我們就提到了定時器有多種工作模式,工作模式的選擇就由 TMOD 來控制,TMOD 的位分配和描述見表 5-4 到 5-6 所示,TMOD 的位功能如表 5-5 所示。

表 5-4 TMOD——定時器模式寄存器的位分配(地址 0x89、不可位尋址)

7 6 5 4 3 2 1 0
符號 GATE(T1) C/T(T1) M1(T1) M0(T1) GATE(T0) C/T(T0) M1(T0) M0(T0)
復(fù)位值 0 0 0 0 0 0 0 0
表 5-5 TMOD——定時器模式寄存器的位描述
符號 描述
T1/T0 在表5-5中,標T1的表示控制定時器1的位,標T0的表示控制定時器0的位。
GATE 該位被置1時為門控位。僅當?INTx?腳為高并且?TRx?控制位被置1時使能定時器?x?,定時器開始計時,當該位被清0時,只要?TRx?位被置1,定時器x就使能開始計時,不受到單片機引腳?INTx?外部信號的干擾,常用來測量外部信號脈沖寬度。這是定時器一個額外功能,本節(jié)課暫不介紹。
C/T 定時器或計數(shù)器選擇位。該位被清零時用作定時器功能(內(nèi)部系統(tǒng)時鐘),被置1用作計數(shù)器功能。
表 5-6 TMOD——定時器模式寄存器 M1/M0 工作模式
M1 M0 工作模式 描述
0 0 0 兼容8048單片機的13位定時器,THn的8位和TLn的5位組成一個13位定時器。
0 1 1 THn和TLn組成一個16位的定時器。
1 0 2 8位自動重裝模式,定時器溢出后THn重裝到TLn中。
1 1 3 禁用定時器1,定時器0變成2個8位定時器。

可能你已經(jīng)注意到了,表 5-2 的 TCON 最后標注了“可位尋址”,而表 5-4 的 TMOD 標注的是“不可位尋址”。意思就是說:比如 TCON 有一個位叫 TR1,我們可以在程序中直接進行 TR1 = 1 這樣的操作。但對 TMOD 里的位比如(T1)M1 = 1 這樣的操作就是錯誤的。我們要操作就必須一次操作這整個字節(jié),也就是必須一次性對 TMOD 所有位操作,不能對其中某一位單獨進行操作,那么我們能不能只修改其中的一位而不影響其它位的值呢?當然可以,在后續(xù)課程中你就會學(xué)到方法的,現(xiàn)在就先不關(guān)心它了。表 5-6 列出的就是定時器的 4 中工作模式,其中模式 0 是為了兼容老的 8048 系列單片機而設(shè)計的,現(xiàn)在的 51 幾乎不會用到這種模式,而模式 3 根據(jù)我的應(yīng)用經(jīng)驗,它的功能用模式 2 完全可以取代,所以基本上也是不用的,那么我們就重點來學(xué)習(xí)模式 1 和模式 2。模式 1,是 THn 和 TLn 組成了一個 16 位的定時器,計數(shù)范圍是 0~65535,溢出后,只要不對 THn 和 TLn 重新賦值,則從 0 開始計數(shù)。模式 2,是 8 位自動重裝載模式,只有 TLn做加 1 計數(shù),計數(shù)范圍 0~255,THn 的值并不發(fā)生變化,而是保持原值,TLn 溢出后,TFn就直接置 1 了,并且 THn 原先的值直接賦給 TLn,然后 TLn 從新賦值的這個數(shù)字開始計數(shù)。這個功能可以用來產(chǎn)生串口的通信波特率,我們講串口的時候要用到,本章節(jié)我們重點來學(xué)習(xí)模式 1。為了加深大家理解定時器的原理,我們來看一下他的模式 1 的電路示意圖 5-2。

詳細剖析單片機定時器的寄存器

圖 5-2 定時器/計數(shù)器模式 1 示意圖

我?guī)ьI(lǐng)大家一起來分析一遍這個示意圖,日后如果再遇到類似的圖,大家就可以自己研究了。OSC 框表示時鐘頻率,因為 1 個機器周期等于 12 個時鐘周期,所以那個 d 就等于 12。下邊 GATE 右邊的那個門是一個非門電路,再右側(cè)是一個或門,再往右是一個與門電路,大家可以對照一下 5-1 節(jié)的內(nèi)容。圖上可以看出來,下邊部分電路是控制了上邊部分,那我們先來看下邊是如何控制的,我們以定時器 0 為例。1) TR0 和下邊或門電路的結(jié)果要進行與運算,TR0 如果是 0 的話,與運算完了肯定是 0,所以如果要讓定時器工作,那么 TR0 就必須置 1。2) 這里的與門結(jié)果要想得到 1,那么前面的或門出來的結(jié)果必須也得是 1 才行。在 GATE位為 1 的情況下,經(jīng)過一個非門變成 0,或門電路結(jié)果要想是 1 的話,那 INT0 即 P3.2 引腳必須是 1 的情況下,這個時候定時器才會工作,而 INT0 引腳是 0 的情況下,定時器不工作,這就是 GATE 位的作用。3) 當 GATE 位為 0 的時候,經(jīng)過一個非門會變成 1,那么不管 INT0 引腳是什么電平,經(jīng)過或門電路后都肯定是 1,定時器就會工作。4) 要想讓定時器工作,就是自動加 1,從圖上看有兩種方式,第一種方式是那個開關(guān)打到上邊的箭頭,就是 C/T = 0 的時候,一個機器周期 TL 就會加 1 一次,當開關(guān)打到下邊的箭頭,即 C/T =1 的時候,T0 引腳即 P3.4 引腳來一個脈沖,TL 就加 1 一次,這也就是計數(shù)器功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634621
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120230
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3246

    瀏覽量

    114715

原文標題:單片機定時器的寄存器

文章出處:【微信號:EngicoolArabic,微信公眾號:電子工程技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機視頻教程06:使用定時器的方法

    《手把手教你學(xué)單片機單片機視頻教程06:使用定時器的方法 單片機視頻教程06:使用定時器的方法 1、設(shè)置特殊功能
    發(fā)表于 08-21 09:33 ?1.7w次閱讀
    <b class='flag-5'>單片機</b>視頻教程06:使用<b class='flag-5'>定時器</b>的方法

    51單片機定時器寄存器設(shè)置及應(yīng)用詳細

    51單片機定時器寄存器設(shè)置及應(yīng)用詳細
    發(fā)表于 03-28 16:46 ?7次下載

    單片機定時器模式的使用_單片機定時器代碼_單片機定時器程序

    定時器和計數(shù)單片機內(nèi)部的同一個模塊,這篇文章我們主要講解定時器。顧名思義,定時器就是用來進行定時
    發(fā)表于 12-08 09:37 ?1.7w次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>定時器</b>模式的使用_<b class='flag-5'>單片機</b><b class='flag-5'>定時器</b>代碼_<b class='flag-5'>單片機</b><b class='flag-5'>定時器</b>程序

    單片機教程之定時器和計數(shù)原理及應(yīng)用

      本文檔的主要內(nèi)容詳細介紹的是單片機教程之定時器和計數(shù)原理及應(yīng)用主要內(nèi)容包括了:定時器、計數(shù)
    發(fā)表于 01-14 17:20 ?4次下載
    <b class='flag-5'>單片機</b>教程之<b class='flag-5'>定時器</b>和計數(shù)<b class='flag-5'>器</b>原理及應(yīng)用

    單片機定時器計數(shù)結(jié)構(gòu)和相關(guān)的寄存器及編程的資料說明

    本文檔的主要內(nèi)容詳細介紹的是單片機定時器計數(shù)結(jié)構(gòu)和相關(guān)的寄存器及編程的資料說明。
    發(fā)表于 04-18 17:27 ?0次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>定時器</b>計數(shù)<b class='flag-5'>器</b>結(jié)構(gòu)和相關(guān)的<b class='flag-5'>寄存器</b>及編程的資料說明

    使用定時器需要設(shè)置的寄存器和51單片機定時器的示例代碼說明

    51單片機共有兩個定時器,T0與T1,包含計數(shù)和定時兩種模式,使用定時器需要設(shè)置的寄存器如下
    發(fā)表于 08-07 17:33 ?2次下載
    使用<b class='flag-5'>定時器</b>需要設(shè)置的<b class='flag-5'>寄存器</b>和51<b class='flag-5'>單片機</b><b class='flag-5'>定時器</b>的示例代碼說明

    51單片機的一些特殊寄存器資料說明

    本文檔的主要內(nèi)容詳細介紹的是51單片機的一些特殊寄存器資料說明。包括了:中斷使能寄存器,中斷優(yōu)先級寄存器,電源控制PCON,PSW處理
    發(fā)表于 07-26 17:36 ?2次下載
    51<b class='flag-5'>單片機</b>的一些特殊<b class='flag-5'>寄存器</b>資料說明

    單片機定時器和計數(shù)詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是單片機定時器和計數(shù)詳細資料說明包括了:1.51定時/計數(shù)
    發(fā)表于 05-21 08:00 ?1次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>定時器</b>和計數(shù)<b class='flag-5'>器</b>的<b class='flag-5'>詳細</b>資料說明

    單片機實現(xiàn)定時器和計數(shù)詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是單片機實現(xiàn)定時器和計數(shù)詳細資料說明包括了:? 定時/計數(shù)
    發(fā)表于 06-24 08:00 ?3次下載
    <b class='flag-5'>單片機</b>實現(xiàn)<b class='flag-5'>定時器</b>和計數(shù)<b class='flag-5'>器</b>的<b class='flag-5'>詳細</b>資料說明

    51單片機入門教程(5)——定時器中斷

    51單片機入門教程(5)——定時器中斷一、中斷的概念二、定時器中斷2.1 軟件延時的不足2.2 中斷寄存器2.2.1 中斷允許控制寄存器 I
    發(fā)表于 11-11 14:51 ?11次下載
    51<b class='flag-5'>單片機</b>入門教程(5)——<b class='flag-5'>定時器</b>中斷

    51單片機(十七)—— 定時器2寄存器介紹及功能描述

    這篇文章,我們對51單片機定時器2的寄存器和功能進行介紹。1 定時器2控制寄存器T2CON 定時
    發(fā)表于 11-18 15:51 ?14次下載
    51<b class='flag-5'>單片機</b>(十七)—— <b class='flag-5'>定時器</b>2<b class='flag-5'>寄存器</b>介紹及功能描述

    嵌入式開發(fā)學(xué)習(xí)筆記6-了解單片機中的特殊功能寄存器定時器/計數(shù)

    嵌入式開發(fā)學(xué)習(xí)筆記6-了解單片機中的特殊功能寄存器定時器/計數(shù)定時器/計數(shù)簡介TH與TL
    發(fā)表于 11-24 20:51 ?16次下載
    嵌入式開發(fā)學(xué)習(xí)筆記6-了解<b class='flag-5'>單片機</b>中的特殊功能<b class='flag-5'>寄存器</b>(<b class='flag-5'>定時器</b>/計數(shù)<b class='flag-5'>器</b>)

    (指南者)(二)寄存器定時器和中斷

    (指南者)(二)寄存器、定時器和中斷寄存器定時器時鐘定時器寄存器0110代碼例程
    發(fā)表于 12-23 19:19 ?0次下載
    (指南者)(二)<b class='flag-5'>寄存器</b>、<b class='flag-5'>定時器</b>和中斷

    單片機定時器寄存器

    標準的 51 單片機內(nèi)部有 T0 和 T1 這兩個定時器,T 就是 Timer 的縮寫,現(xiàn)在很多 51 系列單片機還會增加額外的定時器,在這里我們先講
    發(fā)表于 02-10 12:10 ?1次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>定時器</b>的<b class='flag-5'>寄存器</b>

    單片機工作寄存器作用 單片機常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機中還會有特定功能的寄存器,如定時器
    的頭像 發(fā)表于 04-08 14:46 ?7513次閱讀
    RM新时代网站-首页