1.点击定时器计算
2.每次打开的时候都要配置
因为我的是89C52,所以配置的是下面的状态
不同的板子型号的配置状态不同
就得到了下面的代码
void Timer0Init(void) //1毫秒@12.000MHz { //AUXR &= 0x7F; //定时器时钟12T模式
上面的代码是对于比较新的板子使用的,对于STC89C52,不要使用这段代码
上面的代码是对于比较新的板子使用的,对于STC89C52,不要使用这段代码 TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0x18; //设置定时初值 TH0 = 0xFC; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 }
然后要加上下面的中断代码
ET0=1; EA=1; PT0=0;
3.完整代码
void Timer0Init(void) //1毫秒@12.000MHz { //AUXR &= 0x7F; //定时器时钟12T模式 TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0x18; //设置定时初值 TH0 = 0xFC; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0=1; EA=1; PT0=0; }
4.定时器中断函数模板
void Timer0_Routine() interrupt 1 { static unsigned int T0Count; TL0 = 0x18; //设置定时初值 TH0 = 0xFC; //设置定时初值 T0Count++; if(T0Count>=1000) { T0Count=0; } }
🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰