一个关于单片机蜂鸣器的问题,这个代码为什么会让蜂鸣器一直响,Beep= 1和Beep=0 难道一样吗

#include<reg51.h>sbitBeep=P1^5;voiddelay(unsignedinti);voidmain(){Beep=1;delay(5);Bee... #include <reg51.h>
sbit Beep = P1^5 ;
void delay(unsigned int i) ;
void main()
{
Beep= 1;
delay(5);
Beep= 0;
delay(5);
}

void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}
展开
 我来答
其言可立
2014-03-20
知道答主
回答量:18
采纳率:0%
帮助的人:11.3万
展开全部
Beep= 1;
delay(5);
Beep= 0;
delay(5);
你把这部分循环几十次甚至几百次后,然后在后面加一个while(1),这样就不会一直响。蜂鸣器是振荡发声的,如果你一直是给置1或者一直是置0,那么就不会响的。你这里就是程序一直在执行,不停地101010变换,所以就不会停
花茶茶520
2014-03-20 · TA获得超过134个赞
知道小有建树答主
回答量:248
采纳率:80%
帮助的人:70万
展开全部
你这个和
void main()
{
while(1)

{
Beep= 1;
delay(5);
Beep= 0;
delay(5);
}

}
一样是个死循环。。。在后面价格while(1);就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大叔拆书
2014-03-20 · 电脑运维行业摸爬滚打二十载的IT砖家
大叔拆书
采纳数:74 获赞数:390

向TA提问 私信TA
展开全部
延时时间短了,你吧delay(5)改为delay(500)
追问
没用,这样只是蜂鸣器的音调变低了,还是一直响
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式