溢出:
大约1.1us一个机器周期,每过一个机器周期低四位TL1加一,TL1加到255后自动清0同时高四位TH1加一,当TH1也255即总共过了65535个机器周期后溢出,此时TL1和TH1都自动清0,同时TF1自动变成1(TF1需要手动或写程序清0)
使用(模式1):
一:设置TMOD配置工作模式,TMOD=0x01(T0为模式1),TMOD=0x11(T0和T1为模式1)
二:设置初值,通过STC定时器计时器计算void Timer0Init(void) //20毫秒@11.0592MHz
{
TMOD = 0x01; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xB8; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
感悟:
定时器独立于程序之外,打开后自动运算,当溢出后TF0或TF1自动等于1(主程序里需要用TF0/1判断时可以程序清0),定时器一般为中断服务,每次溢出后自动停止主程序去执行中断函数。