/*****
函数名:定时计数器中断初始化
调用:TimerCounterIntInit_12MHz(T_C_Int, TH_Init, TL_Init);
参数:bit T_C_Int(定时器中断0或定时器中断1), delay_us(多少微米)
返回值:无
结果:启动T/C1或T/C0并设置计数器初值
*****/
void TimerCounterIntInit_12MHz(bit Tx,unsigned int delay_us)
{
//定时器0和定时器1都使用工作方式0:16位自动装载的定时/计数器,不需在中断函数中重写初值(TMOD:定时器/计数器模式控制寄存器)
TMOD = 0x00;
EA = 1; //中断总开关(属IE:中断允许寄存器)
if(Tx==0){
ET0 = 1; //允许定时器中断0中断(属IE:中断允许寄存器)
TH0 = (65536 - delay_us) >> 8; //16位计数寄存器T0高8位
TL0 = (65536 - delay_us) & 0x00FF; //16位计数寄存器T0低8
TR0 = 1; //定时器0启动 (属TCON:Timer Control Register)
}
else {
ET1 = 1; //允许定时器中断1中断(属IE:中断允许寄存器)
TH1 = (65536 - delay_us) >> 8; //16位计数寄存器T1高8位
TL1 = (65536 - delay_us) & 0x00FF; //16位计数寄存器T1低8位
TR1 = 1; //定时器1启动 (属TCON:Timer Control Register)
}
}