一.定時器的結構編程
定時器功能由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的狀態,決定是否中止定時/計數器。