标题: 简单的单片机蜂鸣器不发声问题 [打印本页]

作者: 563349556    时间: 2019-6-15 22:15
标题: 简单的单片机蜂鸣器不发声问题

这是一个书上的蜂鸣器发声的项目,我觉得程序没有问题,但是仿真的时候为什么那个蜂鸣器他就是不会闪烁(就是 仿真的时候小正方块会变色的),是什么问题呢?还有就是 蜂鸣器到底要选那个好,sounder还是speaker还是buzzer  不太懂啊 ,书上的是speaker,但是speaker不是说要输入的信号要是波形吗,所以我用了buzzer。。。还有就是我百度了下不发声的可能原因是什么 要接VCC电源?..what  我这不是接了电源吗。。..帮帮忙谢谢     楼下 帮忙    谢谢啊....


作者: xianfajushi    时间: 2019-6-16 06:35
加个上啦电阻试看
作者: charles11    时间: 2019-6-16 07:44
无源蜂鸣器好像是要一直取反的,beep=~beep,有源的话不用,还有可能是蜂鸣器电压参数没设置好
作者: wangwing    时间: 2019-6-16 08:38
你这样接,BUZ得不到工作电源的。改为Q1集电极接地,BUZ串接在电源与Q1发射极之间。
作者: lwh999995    时间: 2019-6-16 09:56
1. X1改为 12MHz
2. R1改1K
3. BUZ1 电压改下,系统默认电压是5V ? 蜂鸣器可能是12V的
代码基本上没问题
作者: 博蒗    时间: 2019-6-16 11:19
只是简单看了一下,蜂鸣器的接线都好像接错了吧,代码中定义的是“sbit beep=P2^7”,电路图中接的是P1^0接口,当然是不可能有反应的
作者: 136590    时间: 2019-6-16 13:18
R1电阻是不是大了,你改成连接一个滑阻,然后测试一下哪个值合适
作者: 阿根1    时间: 2019-6-16 13:28
P1.1口连线有问题,改成P1.3口
作者: 47okey    时间: 2019-6-16 14:26
1.代码P2.7接P1.0
2.高低电平延时太大 ,频率极低。
3.改模型SPEAKER(active),delay(200);试试
作者: 许渡XD    时间: 2019-6-16 16:05
系统默认电压是5V ? 蜂鸣器可能是12V的代码基本上没问题
作者: m182892    时间: 2019-6-16 17:04
你这个电路上的蜂鸣器要选无源的。然后再看delay延时多长时间,时间长了和短了超出音频范围也会听不到响声,一般取1K-2KHZ,也就是1-2mS,自己试一下。
作者: lwh999995    时间: 2019-6-16 18:29
看电路图片接口与程序接口不一致?  那P10怎么输出了低电平呢?
应该截图时间不一致,中间改动了吧。

作者: xianfajushi    时间: 2019-6-17 08:00
今天看一下应该是延时函数问题
作者: niuniniu    时间: 2019-6-17 09:44
更改频率试试
作者: 15936529590    时间: 2019-6-17 10:52
检查单片机最小系统是否工作
作者: Crazy·    时间: 2019-6-17 13:26
要看你焊的蜂鸣器是共阴还是共阳,共阴的话代码取反就可以响,共阳得高低电平来回转换
作者: 电子SZC    时间: 2019-6-26 20:20
应该把P2^7改成P1^0
作者: ajjib    时间: 2019-7-3 16:55
程序是P2^7接线是P1^0
beep=~beep用取反
作者: 丶念    时间: 2019-7-5 08:23
P2^7换成P1^0
作者: zjjhtony    时间: 2019-7-5 09:48
请更换整个发生器进行仿真,器件搜索:SOUNDER.
经过测试这个能发出声音。

新建位图图像.jpg (22.58 KB, 下载次数: 69)

新建位图图像.jpg

作者: pingking    时间: 2019-7-5 10:03
小正方形接在地上或者正极上就是固定的电平,不会变;
建议用示波器查看一下蜂鸣器的另一端,看是否有电平变化,如果有的话,可能是频率不对,如果没有的话说明单片机内部的程序有一些问题。
作者: pingking    时间: 2019-7-5 10:08
小正方形接在电源和地上面的话就是固定的电平,不会变化;建议用示波器查看一下蜂鸣器的另一个引脚,看是否有电平变化,如果没有变化的话说明可能是单片机的程序有一些问题,如果有变化的话,可能是频率不对,也就是延时之后产生的频率不能使蜂鸣器发出声音,需要更改延时长短。
作者: wangjun1234565    时间: 2019-7-5 10:59
延时函数有问题,编译器编译时会将for 循环优化掉,建议在for函数里面添加_nop_()函数,这个函数可用于延时,只占用时间,不做任何事
作者: jxhlm99    时间: 2019-7-5 13:50
@博蒗 这个回答还是比较正确的,先把IO口连接修改一下,如果还是不能点亮再去找电路问题
作者: 天风情    时间: 2019-7-5 14:38
图中你单片机的复位引脚是高电平啊,你确认单片机能正常工作?
作者: 由我们主宰    时间: 2019-7-5 15:21
第一:先用万用表测一下蜂鸣器有没有问题
作者: 由我们主宰    时间: 2019-7-5 15:28
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!!
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!!
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!!
作者: LMXSHKHL    时间: 2019-7-5 16:38

P1.1口连线有问题,改成P1.3口,然后最好加一个上拉电阻
作者: 3196007926    时间: 2019-7-5 17:13
应该是你在图里把蜂鸣器接到了P10上,程序设置到P27了
作者: cphnkj188    时间: 2019-7-5 21:36
程序指定的P口和实际接线不符啊!

作者: TTQ001    时间: 2019-7-6 11:08
Proteus图里蜂鸣器接的是P1^0,程序中定义的是 sbit beep=P2^7, 改Proteus图, or "sbit beep=P1^0"

作者: 无线强大    时间: 2019-7-6 12:24
无源蜂鸣器好像是要一直取反的,beep=~beep,有源的话不用,还有可能是蜂鸣器电压参数没设置好
作者: aolilyf    时间: 2019-7-6 15:33
用示波器看一下P1.0引脚是否有输出啊,如果电平都不对,那就检查软件,电平变化正常,再去检查硬件,硬件包括硬件失效以及引脚连接错误,焊接错误,等各种情况
作者: lele5211314    时间: 2019-7-7 13:44
首先是蜂鸣器的电压 其次是蜂鸣器选择是有源还是无源
作者: 岁城璃心    时间: 2019-7-11 09:53
我用的单片机蜂鸣器接的是P1^5口,您的延时太长了,改2000
作者: 岁城璃心    时间: 2019-7-11 09:54
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
#include<intrins.h>                //因为要用到左右移函数,所以加入这个头文件

typedef unsigned int u16;          //对数据类型进行声明定义
typedef unsigned char u8;

sbit beep=P1^5;          

/*******************************************************************************
* 函 数 名         : delay
* 函数功能                   : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
        while(i--);       
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void main()
{       
        while(1)
        {       
                beep=~beep;
                delay(10); //延时大约100us   通过修改此延时时间达到不同的发声效果       
        }
}

作者: 我好像做事去    时间: 2019-7-11 13:56
线都接错啦,怎么响
作者: xiaozhong1314    时间: 2019-7-12 09:03
线接错了
作者: 孙文丹    时间: 2019-7-12 14:19
先不说线接错了,我一般都是接的NPN三极管再串联接一个电阻就可以了

作者: 丶念    时间: 2019-7-12 19:33
程序里beep=P2^7改为Pq^0
作者: lele5211314    时间: 2019-7-12 21:15
频率和蜂鸣器电压是否设置合适
作者: mass_lynnxy    时间: 2019-7-12 23:06
有源蜂鸣器给电平就可以发声,无源蜂鸣器要给方波,频率一般在1~5kHz。
作者: cyy~qmr    时间: 2019-7-15 16:59
你的这个蜂鸣器的延迟时间不会不会太长了  然后太小了  你听不到
作者: zpwgf    时间: 2019-7-15 17:16
大兄弟,你的蜂鸣器引脚定义错没?我觉得应该是P1^0
作者: yushandon    时间: 2019-7-15 23:02
蜂鸣器分有有源和无源的,p2.7和p1.0接口不对。




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