单片机中中断服务函数 有哪位大神能帮我解释一下下面这段程序什么意思,就算能让我清楚一点也成,谢谢了

void time1_int() interrupt 1//中断服务函数,1表示定时器0溢出中断
{
uc count,count1;
TL0=0xb0;
TH0=0x3c;

if(flag==1)
{
count++;
if(count==10)
{
buzz=0;
led=0;
}
if(count==20)
{
count=0;
buzz=1;
led=1;
}
}
if(yanshi==1)
{
count1++;
if(count1==10)
{
led=0;
}
if(count1==20)
{
count1=0;
led=1;
sec++;
if(sec==30)
{
sec=0;
flag3=1;
yanshi=0;
on_off=1;
}
}
}

}

void time1_int() interrupt 1//中断服务函数,1表示定时器0溢出中断
{
uc count,count1;
TL0=0xb0; //重赋初值,50毫秒中断值
TH0=0x3c;

if(flag==1) //标志位1则执行内部程序
{
count++; // 计数变量count加1
if(count==10) // 10次计数满
{
buzz=0; // 蜂鸣器开启
led=0; //LED灯点亮
}
if(count==20) //20次计数满
{
count=0; //计数变量清0
buzz=1; //关闭蜂鸣器
led=1; //LED灯灭
}
}
if(yanshi==1) //延时标志为1则执行内部程序
{
count1++; //计数变量count1加1
if(count1==10) //满10计数
{
led=0; //LED灯点亮
}
if(count1==20) //20次计数满
{
count1=0; //计数变量清0
led=1; //LED灯灭
sec++; //秒变量加1
if(sec==30) //30秒到
{
sec=0; //秒变量清0
flag3=1; //标志flag3置1
yanshi=0; //yanshiç½®0
on_off=1; //on_offç½®1
}
}
}

}追问

虽然不是太懂,不过谢谢大神了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-04-25
void time1_int() interrupt 1//中断服务函数,1表示定时器0溢出中断
             /* 上面这里有问题格式问题    */
{
uc count,count1;   //定义两个 UC类型。我也不知道uc是什么类型。没看到定义
TL0=0xb0;          // TL0 不知道哪里定义的,从赋值来看因该是单片机接口
TH0=0x3c;          // 同上
 
if(flag==1)        //如果标志位等于1
{  
count++;
if(count==10)      
{
buzz=0;            
led=0;             
}
if(count==20)
{
count=0;            
buzz=1;
led=1;
}
}
        /*上面这段应该在循环函数里面,count做自+1运算。当count=0的时候关闭LED灯,当count=20的时候开启LED灯。buzz应该是做LED灯的时候一起工作,关闭的时候一起关闭*/
if(yanshi==1)
{
count1++;
if(count1==10)
{
led=0;
}
if(count1==20)
{
count1=0;
led=1;
sec++;
if(sec==30)
{
sec=0;
flag3=1;
yanshi=0;
on_off=1;
}
}
}
/* 和上面的差不多应该放在循环里面。count1=10的时候,LED灯灭。count1=20的时候,LED灯亮起来。再用sec做一次++,应该用于计算led循环点亮的次数,到达30次后。停止点亮。退出循环,*/
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网