单片机大神帮我看看C程序,解释一下,谢谢,我是小白

void Timer1_INT() interrupt 1 //定时器中断函数 0.05S中断一次
{
TH0=(65536-51200)/256; //计数器T0高8位赋初值
TL0=(65536-51200)%256; //计数器T0低8位赋初值
number=number+1; //0.05S时间到 变量加一
if(number>=19) //0.05*20=1S 时间到
{
number=0;
time_s=time_s+1;
if(time_s>43)
{
time_s=0;
speak=1; //喇叭不播放
flog2=1;
flog1=0;
}
}
}
在线等啊。。。路过的大神们在哪

第1个回答  推荐于2016-11-20
第一句,定义中断处理函数。就是定时器溢出中断,会调用该函数

然后对定时器重新初始化,计算的数值跟定时器的脉冲参数有关。大概就是每过(65536-51200)个脉冲,就刚刚好是0.05秒。
由于mcu在操作的时候是8位处理的,所以,有高8位和低8位的处理。
取高8位一般有两种方式,一种就是/256,另一种就是>>8.两种结果是一样的
取低8位也有两种,一种就是%256,另一种是 & 00ff

然后就是0.05对于中断次数的叠加。当中断20次的时候刚刚好就是1s。重新初始化number=0.重新开始统计下一轮,再做一些相关操作本回答被提问者采纳