使用配置函数配置定时器可以很方便程序编写
//定时器使用12个时钟周期时钟
unsigned char T2RH = 0; //T1重载值的高字节
unsigned char T2RL = 0; //T1重载值的低字节
/*******************************************************************************
* 函数功能 : T2配置函数
* 函数说明 :
*******************************************************************************/
void ConfigTimer2(unsigned int ms)
{
unsigned long tmp; //临时变量
AUXR=0x00;//定时器为12T
tmp = FOSC / 12; //定时器计数频率
tmp = (tmp * ms) / 1000; //计算所需的计数值
tmp = 65536 - tmp; //计算定时器重载值
T2RH = (unsigned char)(tmp>>8); //定时器重载值拆分为高低字节
T2RL = (unsigned char)tmp;
T2L = T2RL;
T2H = T2RH;
AUXR |= 0x10; //启动定时器
IE2 |= ET2; //使能定时器中断
}
//定时器使用1个时钟周期时钟
unsigned char T2RH = 0; //T1重载值的高字节
unsigned char T2RL = 0; //T1重载值的低字节
/*******************************************************************************
* 函数功能 : T2配置函数
* 函数说明 :
*******************************************************************************/
void ConfigTimer2(unsigned int ms)
{
unsigned long tmp; //临时变量
tmp = FOSC; //定时器计数频率
tmp = (tmp * ms) / 1000; //计算所需的计数值
tmp = 65536 - tmp; //计算定时器重载值
T2RH = (unsigned char)(tmp>>8); //定时器重载值拆分为高低字节
T2RL = (unsigned char)tmp;
T2L = T2RL;
T2H = T2RH;
AUXR |= 0x10; //启动定时器
IE2 |= ET2; //使能定时器中断
}