單片機成長之路(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位。spa

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

  1.工做方式寄存器TMODcode

  TMOD(89H)格式如圖:blog

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

    (1)GATE爲門控位。ci

      GATE=0時,定時器的啓動不受到外部中斷請求信號的影響。通常狀況下GATE=0。table

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

    (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、方式一、方式二、方式3。
  MCS-51的定時器T1有3種工做方式,即方式0、方式一、方式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的狀態,決定是否中止定時/計數器。

相關文章
相關標籤/搜索