找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

简单的单片机蜂鸣器不发声问题

查看数: 11300 | 评论数: 44 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-6-15 22:15

正文摘要:

这是一个书上的蜂鸣器发声的项目,我觉得程序没有问题,但是仿真的时候为什么那个蜂鸣器他就是不会闪烁(就是 仿真的时候小正方块会变色的),是什么问题呢?还有就是 蜂鸣器到底要选那个好,sounder还是speak ...

回复

ID:584083 发表于 2019-7-15 23:02
蜂鸣器分有有源和无源的,p2.7和p1.0接口不对。
ID:583948 发表于 2019-7-15 17:16
大兄弟,你的蜂鸣器引脚定义错没?我觉得应该是P1^0
ID:568662 发表于 2019-7-15 16:59
你的这个蜂鸣器的延迟时间不会不会太长了  然后太小了  你听不到
ID:212426 发表于 2019-7-12 23:06
有源蜂鸣器给电平就可以发声,无源蜂鸣器要给方波,频率一般在1~5kHz。
ID:93224 发表于 2019-7-12 21:15
频率和蜂鸣器电压是否设置合适
ID:98195 发表于 2019-7-12 19:33
程序里beep=P2^7改为Pq^0
ID:217539 发表于 2019-7-12 14:19
先不说线接错了,我一般都是接的NPN三极管再串联接一个电阻就可以了
ID:421308 发表于 2019-7-12 09:03
线接错了
ID:582281 发表于 2019-7-11 13:56
线都接错啦,怎么响
ID:582077 发表于 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   通过修改此延时时间达到不同的发声效果       
        }
}
ID:582077 发表于 2019-7-11 09:53
我用的单片机蜂鸣器接的是P1^5口,您的延时太长了,改2000
ID:93224 发表于 2019-7-7 13:44
首先是蜂鸣器的电压 其次是蜂鸣器选择是有源还是无源
ID:578975 发表于 2019-7-6 15:33
用示波器看一下P1.0引脚是否有输出啊,如果电平都不对,那就检查软件,电平变化正常,再去检查硬件,硬件包括硬件失效以及引脚连接错误,焊接错误,等各种情况
ID:503018 发表于 2019-7-6 12:24
无源蜂鸣器好像是要一直取反的,beep=~beep,有源的话不用,还有可能是蜂鸣器电压参数没设置好
ID:420836 发表于 2019-7-6 11:08
Proteus图里蜂鸣器接的是P1^0,程序中定义的是 sbit beep=P2^7, 改Proteus图, or "sbit beep=P1^0"
ID:524818 发表于 2019-7-5 21:36
程序指定的P口和实际接线不符啊!
ID:309976 发表于 2019-7-5 17:13
应该是你在图里把蜂鸣器接到了P10上,程序设置到P27了
ID:574936 发表于 2019-7-5 16:38

P1.1口连线有问题,改成P1.3口,然后最好加一个上拉电阻
ID:433700 发表于 2019-7-5 15:28
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!!
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!!
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!!
ID:433700 发表于 2019-7-5 15:21
第一:先用万用表测一下蜂鸣器有没有问题
ID:426861 发表于 2019-7-5 14:38
图中你单片机的复位引脚是高电平啊,你确认单片机能正常工作?
ID:45439 发表于 2019-7-5 13:50
@博蒗 这个回答还是比较正确的,先把IO口连接修改一下,如果还是不能点亮再去找电路问题
ID:539631 发表于 2019-7-5 10:59
延时函数有问题,编译器编译时会将for 循环优化掉,建议在for函数里面添加_nop_()函数,这个函数可用于延时,只占用时间,不做任何事
ID:578291 发表于 2019-7-5 10:08
小正方形接在电源和地上面的话就是固定的电平,不会变化;建议用示波器查看一下蜂鸣器的另一个引脚,看是否有电平变化,如果没有变化的话说明可能是单片机的程序有一些问题,如果有变化的话,可能是频率不对,也就是延时之后产生的频率不能使蜂鸣器发出声音,需要更改延时长短。
ID:578291 发表于 2019-7-5 10:03
小正方形接在地上或者正极上就是固定的电平,不会变;
建议用示波器查看一下蜂鸣器的另一端,看是否有电平变化,如果有的话,可能是频率不对,如果没有的话说明单片机内部的程序有一些问题。
ID:18297 发表于 2019-7-5 09:48
请更换整个发生器进行仿真,器件搜索:SOUNDER.
经过测试这个能发出声音。

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

新建位图图像.jpg
ID:98195 发表于 2019-7-5 08:23
P2^7换成P1^0
ID:425735 发表于 2019-7-3 16:55
程序是P2^7接线是P1^0
beep=~beep用取反
ID:566504 发表于 2019-6-26 20:20
应该把P2^7改成P1^0
ID:564486 发表于 2019-6-17 13:26
要看你焊的蜂鸣器是共阴还是共阳,共阴的话代码取反就可以响,共阳得高低电平来回转换
ID:564333 发表于 2019-6-17 10:52
检查单片机最小系统是否工作
ID:353118 发表于 2019-6-17 09:44
更改频率试试
ID:332444 发表于 2019-6-17 08:00
今天看一下应该是延时函数问题
ID:207421 发表于 2019-6-16 18:29
看电路图片接口与程序接口不一致?  那P10怎么输出了低电平呢?
应该截图时间不一致,中间改动了吧。
ID:56665 发表于 2019-6-16 17:04
你这个电路上的蜂鸣器要选无源的。然后再看delay延时多长时间,时间长了和短了超出音频范围也会听不到响声,一般取1K-2KHZ,也就是1-2mS,自己试一下。
ID:559170 发表于 2019-6-16 16:05
系统默认电压是5V ? 蜂鸣器可能是12V的代码基本上没问题
ID:105364 发表于 2019-6-16 14:26
1.代码P2.7接P1.0
2.高低电平延时太大 ,频率极低。
3.改模型SPEAKER(active),delay(200);试试
ID:563598 发表于 2019-6-16 13:28
P1.1口连线有问题,改成P1.3口
ID:563590 发表于 2019-6-16 13:18
R1电阻是不是大了,你改成连接一个滑阻,然后测试一下哪个值合适
ID:512883 发表于 2019-6-16 11:19
只是简单看了一下,蜂鸣器的接线都好像接错了吧,代码中定义的是“sbit beep=P2^7”,电路图中接的是P1^0接口,当然是不可能有反应的

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表