51单片机(四)定时器
时钟控制寄存器 TCON(Timer Controller)
sfr TL0 = 0x8A; // T0 计数器低8位
sfr TL1 = 0x8B; // T1 计数器低8位
sfr TH0 = 0x8C; // T0 计数器高8位
sfr TH1 = 0x8D; // T1 计数器高8位
sfr TCON = 0x88;
/*------------------------------------------------
TCON Bit Registers
------------------------------------------------*/
sbit TR0 = 0x8C; // TR0 置1 T0工作, TR0 置0 T0停止
sbit TF0 = 0x8D; // T0 溢出中断请求标志
sbit TR1 = 0x8E; // TR1 置1 T1工作, TR1 置0 T1停止
sbit TF1 = 0x8F; // T1 溢出中断请求标志
/* TMOD */
sfr TMOD = 0x89;
/*------------------------------------------------
TMOD Bit Values
------------------------------------------------*/
#define T0_M0_ 0x01
#define T0_M1_ 0x02
#define T0_CT_ 0x04
#define T0_GATE_ 0x08
#define T1_M0_ 0x10
#define T1_M1_ 0x20
#define T1_CT_ 0x40
#define T1_GATE_ 0x80
#define T1_MASK_ 0xF0
#define T0_MASK_ 0x0F
51单片机有4种工作方式
-
M0M1 = 00 , 13位计数,
由TL低5位与TH8位组成,TL第5位溢出向TH进位,TH溢出向TF置溢出标志,触发中断 -
M0M1 = 10 , 16位计数
TL作低8位,TH作高8位, -
M0M1 = 01, 8位自动重装
TH记录初值,TL溢出后自动重置为TH记录的初值。 -
M0M1 = 11, T0 分为两个独立的8位,T1停止计数
TL0作为单独计数器,溢出标志位到TF0,TH0作为单独计数器,溢出标志位到TF1。