从应用角度来学习,一切从效率(益)出发。
计数功能是指使用计数器的计数脉冲输入端(T0对应P3.4,T1对应P3.5,T2对应P1.0)对外部脉冲信号的计数;定时功能是指对内部晶振驱动时钟进行计数。显然定时计数器从本质上来说,就是计数器。
应用代码如下:定时时间是 50ms 中断一次,这里使用的外部晶振是 12 MHz 的。
//定时器中断函数
void Timer2() interrupt 5 // 定时器2是5号中断
{
static uchar t;
TF2=0; // 必须手动清除中断标志位
t++;
if(t==4) // 间隔200ms(50ms*4)读取一次时间
{
t=0;
/*
具体操作
xxx;
*/
}
}
//定时器2初始化
void Init_timer2(void)
{
RCAP2H=TH2=0x3c;//赋T2初始值0x3cb0,每次溢出时间为50ms
RCAP2L=TL2=0xb0;
TR2=1; //启动定时器2
ET2=1; //打开定时器2中断
EA=1; //打开总中断
}
定时计数的值是如何计算出来的,可以使用 stc-isp 软件来操作,
也可以自己计算,