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

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 13:20
谢谢大家,问题找到了。是我把蜂鸣器的发声原理搞错了,以为要反复高频率地置1置0才会叫,原来蜂鸣器内部内置了一个音频震荡器,只要置以高电位,就一直叫下去。见笑了。

一周热门 更多>