單片機成長之路(51基礎篇) - 014 定時器/計數器

一.定時器的結構

  定時器功能由TO和T1,以及他們的工作方式寄存器TMOD和控制寄存器TCON等組成。內部通過總線與CPU相連。定時器T0和T1各由2個8位特殊功能寄存器TH0,TL0與TH1,TL1構成。工作方式寄存器TMOD用於設置定時器的工作模式和工作方式。控制寄存器TCON用於啓動和停止定時器的計數,並控制定時器的狀態。定時器的工作方式、啓動、停止、溢出標誌、計數器等都是可編程的,通過設置寄存器TMOD,TCON,TH0,TL0,TH1和TL1實現。TH0和TL0存放定時器T0的初值或計數結果。TH0存放高8位,TL0存放低8位;TH1和TL1存放定時器T1的初值或計數結果。TH1存放高8位,TL1存放低8位。

二. MCS-51單片機控制字詳解–TMOD T2MOD

  1.工作方式寄存器TMOD

  TMOD(89H)格式如圖:

位序
B7
B6
B5
B4
B3
B2
B1
B0
位符號
GATE
C/T
M1
M0
GATE
C/T
M1
M0

    (1)GATE爲門控位。

      GATE=0時,定時器的啓動不受到外部中斷請求信號的影響。一般情況下GATE=0。

      GATE=1時,T0的啓動受INT0端口(P3.2引腳)信號控制,T1的啓動受T1端口(P3.3引腳)信號控制,只有當外部中斷信號NT0和NT1爲高電平的時,才能啓動定時器。

    (2)M1,MO爲工作方式選擇位。
    (3)C/T爲計數器模式和定時器模式選擇位。

      C/T=0時(內部時鐘計數器),定時器模式。
      C/T=1時(外部電平計數器),計數器模式。

  2.特殊功能寄存器TCON

  TCON格式

位地址

8F

8E

8D

8C

8B

8A

89

88

位符號

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

低4位中斷有關,高4位的功能如下:
(1)TF1,TF0爲計數溢出標誌位。
  定時器T0或T1計數溢出時,由硬件自動將此位置1。
  TFx可以由程序查詢,也是定時中斷的請求源。
(2)TR1,TR0爲計數運行控制位。
  TRx=1時,啓動定時器/計數器工作。
  TRx=0時,停止定時器/計數器工作。
定時器工作方式
  MCS-51的定時器T0有4種工作方式,即方式0、方式1、方式2、方式3。
  MCS-51的定時器T1有3種工作方式,即方式0、方式1、方式2。
1.方式0
  在這種方式下,16位寄存器TH1和TL1只用13位,由TH1的8位和TL1的低5位組成。TL1的高3位不定。
方式0定時時間爲

213-初值)×振盪週期×12

例如,若晶振頻率爲12MHz,則最長的定時時間爲(28-0)×(1/12)×12us=8.191msA
2.方式1
  在這種方式下,16位寄存器TH1和TL1爲16位的計數器,除位數外,其他與方式0相同。
方式1定時時間爲

216-初值)×振盪週期×12

例如,若晶振頻率爲12MHz,則最長的定時時間爲
(26-0)×(1/12)×12uS=65.536ms
3.方式2
  THx作爲常數緩衝器,當TLx計數溢出時,在置1溢出標誌TFx的同時,還自動的將THx中的初值送至TLx,使TLX從初值開始重新計數。
方式2定時時間爲

28-初值)×振盪週期×12

例如,若晶振頻率爲12MHz,則最長的定時時間爲
(22-0)×(1/12)×121S=0.256ms
4.方式3
  T0在方式3時被拆成2個獨立的8位計數器,即TH0和TL0。
  當T0處於方式3時,T1仍可設置爲方式0、方式1和方式2。由於TR1,TF1和T1的中斷源都已被定時器TO佔用,所以定時器T1僅有控制位C/T來決定其工作在定時方式或計數方式。當計數器計滿溢出時,不能置位TF1,而只能將輸出送往串口。所以,此時定時器T1一般用作串口的波特率發生器,或不需要中斷的場合。
定時器編程步驟
MCS-51單片機的定時器/計數器是可編程的,具體步驟如下。
  (1)對TMOD賦值,以確定定時器的工作模式。

    計算初值的方法如下。
    設計數器的最大值爲M,則置入的初值X爲:計數方式X=M一計數值
    定時方式由(M-X)T=定時值,得X=M-定時值/T
    T爲計數週期,是單片機的機器週期。
    方式1時,M=216=65536。方式2和3時,M=20=256。
    例如:機器時鐘頻率爲12MHz,機器週期爲1us時。
    若工作在方式0,則最大定時值爲23×1us=8.192ms。
    若工作在方式1,則最大定時值爲216×1us=65.536ms。
  (2)置定時/計數器初值,直接將初值寫入寄存器的THO,TLO或TH1,TL1。
  (3)對TCON寄存器中的TRO或TR1置位,啓動定時/計數器,置位以後,計數器即按規定的工作模式和初值進行計數或開始定時。
  (4)查詢溢出標誌TFx的狀態,決定是否停止定時/計數器。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章