一.定时器的结构编程
定时器功能由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的状态,决定是否中止定时/计数器。