怎么跳出 for 循环让蜂鸣器停止运行(51 单片机)

img

img


开始我使用了break没起作用,然后我又用了return发现只是蜂鸣器声音变小了。

首先while本来就是一个死循环了,for就有点多余了,可以简化为

while(1){
  lb=0;
  delay(200);
  lb=1;
  delay(200);
}

然后你想停止运行,就在每次循环开始的时候校验一个停止条件。比如我定义了int x, 我想x>100的时候停止运行。

while(1){
  if(x<100){
    lb=0;
    delay(200);
    lb=1;
    delay(200);
  }
}

这样,当你想不让蜂鸣器响的时候,把x值设为大于100即可。
希望对你有所帮助~望采纳!

问题出在你在main函数内while1死循环了,用break和return是可以跳出for的,但是跳出后本身还在while1内,又重新进入for循环了。望采纳

你的break和return都没看到写在哪里的

蜂鸣器是低电平有效还是高电平有效,如果是高电平有效,在进入while循环前,设置为低电平,并将后面的两个for循环都注释掉,这样蜂鸣器就不会响了。