下面这个程序,按下按键,蜂鸣器响一下,帮忙分析一下中断里面那些语句的作用? 10

u8bzon;u8cpbzon;u8bzunm;u8bzoff;voidBeefun(u8param,u8len){if(param){bzon=len;cpbzon=b... u8 bzon;
u8 cpbzon;
u8 bzunm;
u8 bzoff;
void Beefun(u8 param,u8 len)
{
if(param)
{
bzon=len;
cpbzon=bzon;
bzunm=param-1;
}
}

void main()
{
while(1)
{
if(key==0)
{
delay(10);
if(key==0)
{
Beefun(1,250);
}
}
}
}

void T0_time() interrupt 1
{
TF0=0; //清除中断标志
TR0=0; //关中断

if(cpbzon)
{
cpbzon--;
BEEP = 0;
if(cpbzon == 0)
bzoff = 100;//蜂鸣器间隔时间设置
}

if(bzoff && (cpbzon==0))
{
bzoff--;
BEEP = 1;
if(bznum && (bzoff == 0))
{
bznum--;
cpbzon = bzon;
}
}
TH0=0xf8; //重装初始值
TL0=0x2f;
TR0=1; //开中断
}
展开
 我来答
流鼻涕的大黑鱼
2014-10-31 · TA获得超过115个赞
知道答主
回答量:65
采纳率:0%
帮助的人:34.1万
展开全部
首先,程序是不完整,如果这就是全部,无法实现功能;
假设这是一部分,我脑补完这一部分的程序,大概功能是想按键之后,蜂鸣器响0.5s就停止,中断后面的if(bzoff&&(cpbzon==0))就显得多余,关蜂鸣器直接在if(cpbzon)后加个else(BEEP=1;)就行了;
还有一种情况就是按下之后隔0.5s后蜂鸣器响0.2s,但是这种情况就缺少关蜂鸣器的代码了;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式