蜂鸣器一直在叫,不受程序控制

2019-03-24 17:35发布

代码如下:
#include<reg52.h>
#define uchar unsigned char

sfr LED=P1;           //发光二极管
sbit BUZZ=P3^7;   //蜂鸣器
sbit SW=P3^4;     //按钮开关

void main()
{
   uchar i,j,k;
   uchar a=0xff;
   for(i=8;i>0;i--)
   {
      while(SW);
      while(!SW);
      a<<=1;
      for(j=0;j<100;j++)
      {
         BUZZ=1;
         for(k=12;k>0;k--);
         BUZZ=0;
         for(k=12;k>0;k--);       
       }
       LED=a;
    }
}

按理说按下并放开按钮,蜂鸣器叫一声,增加一个亮灯,但运行的结果,灯正常,而蜂鸣器一直在叫。为什么?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
d_zzn0470
2019-03-25 09:55
qwqwqw2088 发表于 2016-4-27 11:48
请参考楼上建议解决硬件问题
如是成品开发板,硬件问题少一些,有可能是代码有问题
参考一下
参考下面用 ...

谢谢回答,我用的是成品开发板,硬件没有问题。烦请帮忙分析一下我的代码,其中while(SW)和while(!SW)两句,如果按钮不按下,应该一直停在这里等待,不应该执行下面的所有语句,蜂鸣器不应该叫,发光管也不应该左移。现在的问题是发光管反应正常,按一下按钮增加一个亮灯,不按不增加,但蜂鸣器却不是叫一下,而是一直叫个不停。我也是在编写其它程序时偶尔发现的,非常困惑。

一周热门 更多>