单片机定时器工作模式TMOD设置
TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)
定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。
其格式为:
TMOD结构图
=================================================================================
其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:
Ⅰ,GATE——门控制。
●GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
当INT0引脚为高电平时TR0置位,启动定时器T0;
当INT1引脚为高电平时TR1置位,启动定时器T1。
●GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
Ⅱ,C/T——功能选择位
C/T=0时为定时功能,C/T=1时为计数功能。
置位时选择计数功能,清零时选择定时功能。
Ⅲ,M0、M1——方式选择功能
由于有2位,因此有4种工作方式
================================================================
M1M0 工作方式 计数器模式 TMOD(设置定时器模式)
0 0 方式0 13位计数器 TMOD=0x00
0 1 方式1 16位计数器 TMOD=0x01
1 0 方式2 自动重装8位计数器 TMOD=0x02
1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03
单片机定时器0设置为工作方式1为TMOD=0x01;定时器1设置工作方式1时TMOD=0x10
没有用到的定时器一般设置为0
================================================================
初始化定时器0
TH0=(65535-50000)/256;Tl0=(65535-50000)%256;
在51单片机中,如果你的定时器0选择的是“方式一”,则表示定时器0的计数器从0开始加到50000,其中每加一次的时间为你的晶振频率的倒数。如12MHz,则每加一个数的时间为 1*12/12000000 秒。你的公式中是加50000次,即 50000*1*12/12000000 = 50MS。注:数值只能从0加到65535,否则就会溢出。如果需要定时的时间长,可在定时器中断函数中,使用全局变量计数。如使用你的公式进行定时器初始化,想要实现1S的定时,则等到全局变量从0加至20时,即定时器0发生20次中断,就可以了。
扩展阅读:单片机定时器计数器初值的计算