13277|11

5

帖子

4

TA的资源

一粒金砂(中级)

楼主
 

蜂鸣器一直在叫,不受程序控制 [复制链接]

代码如下:
#include
#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;
    }
}

按理说按下并放开按钮,蜂鸣器叫一声,增加一个亮灯,但运行的结果,灯正常,而蜂鸣器一直在叫。为什么?
此帖出自51单片机论坛

最新回复

我碰到过,旁边直接短路,软件上没问题的  详情 回复 发表于 2016-7-3 06:58
点赞 关注
 

回复
举报

5

帖子

4

TA的资源

一粒金砂(中级)

沙发
 
刚才发的代码错了一行,第三行应该是
#define LED P1;   //发光二极管
我的问题是,只要按过一次按钮,蜂鸣器就一直叫,停不下来,但发光二极管正常,按一下,增加一个亮灯。
此帖出自51单片机论坛
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
那是因为蜂鸣器关的不彻底导致的

好好检查下电路,单片机给高低电平的时候,蜂鸣器的压降是多少
此帖出自51单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

2万

帖子

343

TA的资源

版主

4
 
请参考楼上建议解决硬件问题
如是成品开发板,硬件问题少一些,有可能是代码有问题
参考一下
参考下面用按键控制蜂鸣器的启动和停止,,看看蜂鸣器正常不
#include
#define uint unsigned int //宏定义
sbit SPK=P3^5;            //定义喇叭端口
sbit key=P3^1;            //开发板上对应的是s18按键
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
    while(1)
    {
if(key==0)
{
       delay(100);
   SPK=0;
delay(100);
       SPK=1;
}
else
{
SPK=1;
}
    }
}
此帖出自51单片机论坛
 
 
 

回复

5

帖子

4

TA的资源

一粒金砂(中级)

5
 
qwqwqw2088 发表于 2016-4-27 11:48
请参考楼上建议解决硬件问题
如是成品开发板,硬件问题少一些,有可能是代码有问题
参考一下
参考下面用 ...

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

回复

5

帖子

4

TA的资源

一粒金砂(中级)

6
 
谢谢大家,问题找到了。是我把蜂鸣器的发声原理搞错了,以为要反复高频率地置1置0才会叫,原来蜂鸣器内部内置了一个音频震荡器,只要置以高电位,就一直叫下去。见笑了。
此帖出自51单片机论坛
 
 
 

回复

43

帖子

0

TA的资源

一粒金砂(中级)

7
 
刚刚还想问lz的蜂鸣器是有源还是无源的~
此帖出自51单片机论坛

点评

看你楼上的回复,说明是用的有源蜂鸣器而楼主当成了无源的  详情 回复 发表于 2016-4-28 10:05
 
 
 

回复

1632

帖子

4

TA的资源

纯净的硅(高级)

8
 
quackonchen 发表于 2016-4-28 09:54
刚刚还想问lz的蜂鸣器是有源还是无源的~

看你楼上的回复,说明是用的有源蜂鸣器而楼主当成了无源的
此帖出自51单片机论坛

点评

是啊,所以才说“刚刚还想问”  详情 回复 发表于 2016-4-28 10:06
 
个人签名科技改变生活
 
 

回复

43

帖子

0

TA的资源

一粒金砂(中级)

9
 
眼大5子 发表于 2016-4-28 10:05
看你楼上的回复,说明是用的有源蜂鸣器而楼主当成了无源的

我知道啊,所以才说“刚刚还想问”
此帖出自51单片机论坛
 
 
 

回复

137

帖子

2

TA的资源

一粒金砂(中级)

10
 
lz初学啊
此帖出自51单片机论坛
 
个人签名别害怕,我不是什么好人
 
 

回复

69

帖子

1

TA的资源

一粒金砂(中级)

11
 
楼主的蜂鸣器前面没有加驱动三极管吧,应该在前面加驱动,这样就好控制了。
此帖出自51单片机论坛
 
 
 

回复

3

帖子

1

TA的资源

一粒金砂(初级)

12
 
我碰到过,旁边直接短路,软件上没问题的
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表