标题: 单片机蜂鸣器不响 [打印本页]

作者: 791454529    时间: 2019-3-9 14:50
标题: 单片机蜂鸣器不响
单片机程序:
#include <reg52.h>
sbit beep=P2^7;
void main()
{
  beep=0;
}

360截图20190309144416089.jpg (24.86 KB, 下载次数: 37)

360截图20190309144416089.jpg

作者: 疯子本人    时间: 2019-3-9 20:56
可能是蜂鸣器接口定义错了吧,或者你蜂鸣器以及相关硬件出问题了
作者: liumangtu102    时间: 2019-3-9 21:53
最上方端1和2短接了吗?主函数里用大循环把单个语句套进去,试试看行不。
作者: wc86110    时间: 2019-3-9 22:08
响不响看程序和电路元器件的选择是否对
作者: lfc315    时间: 2019-3-9 23:11
J9短路,R8改0R
作者: zhb2004xp    时间: 2019-3-10 00:20
好像没看到蜂鸣器的正负极标识,蜂鸣器是否选择错误了?应该选择带正负极的有源蜂鸣器。另外这种开关电路我一般蜂鸣器接三极管的集电极和地之间
作者: areyouok    时间: 2019-3-10 01:42
蜂鸣器不是这样用的,蜂鸣器两端要有电位差才会发出声音,你的代码都没让他变化,没有声音很正常!
作者: wulin    时间: 2019-3-10 08:06
#include <reg52.h>
sbit beep=P2^7;
void main()
{
  beep=0;
  while(1);
}
作者: HC6800-ES-V2.0    时间: 2019-3-10 09:16
你知道你用的蜂鸣器是什么样的吗?有源或是无源?
如果是有源的蜂鸣器,那么你的程序就是对的,它应该响。如果是无源的,就不会响了,因为无源的蜂鸣器需要你搞一个音频给蜂鸣器。
最简单的试验就是,在你的beep=0;下面再加这样几句:
Delay1ms();//这个是软件延时程序,可以在STC-ISP下载软件中找到相关功能和程序
beep=1;
Delay1ms();

这样你再看,是不是响了。
如果都不响,就是硬件问题了。
作者: jiajuntao    时间: 2019-3-10 09:17
麻烦看下,是有源蜂鸣器还是无源蜂鸣器,两个的控制不一样。
作者: c20160526    时间: 2019-3-10 11:47
程序有问题,主函数里面用while大循环
作者: zxwdown    时间: 2019-3-10 12:31
      我将你的问题进行了仿真,一开始确实不响,将电源电压改为12V后,蜂鸣器响得很漂亮。
仿真截图如下:

仿真程序原版用你的
#include <reg52.h>
sbit beep=P2^7;
void main()
{
  beep=0;
}


作者: 春风十里吹    时间: 2019-3-10 12:47
同意7楼的看法
作者: 63号    时间: 2019-3-10 17:32
8550是PNP管,你这里需要的是NPN管
作者: 7358655    时间: 2019-3-10 20:06
有源或是无源?!都是玩仿真的,仿真我还不会用。
作者: zxwdown    时间: 2019-3-11 07:54
7358655 发表于 2019-3-10 20:06
有源或是无源?!都是玩仿真的,仿真我还不会用。

      我仿真里用的有源蜂鸣器,一般蜂鸣器都是有源的。你如果是用实物做实验,可以看看蜂鸣器电极一端的颜色,黑色的是有源的,绿色的是无源的。
作者: 这一生只为你    时间: 2019-3-11 08:58
J9是个跳线帽吧,有没有插好呢?还有就是蜂鸣器是有源的还是无缘的?有源的这样接会响,无源的不会响。
作者: Gan12138    时间: 2019-3-11 11:25
感觉木问题啊
作者: Trump1438    时间: 2019-3-11 14:16
这个就算不仿真这样接也是对的,关键是代码没有写对




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1