蜂鸣器分有有源和无源的,p2.7和p1.0接口不对。 |
大兄弟,你的蜂鸣器引脚定义错没?我觉得应该是P1^0 |
你的这个蜂鸣器的延迟时间不会不会太长了 然后太小了 你听不到 |
有源蜂鸣器给电平就可以发声,无源蜂鸣器要给方波,频率一般在1~5kHz。 |
频率和蜂鸣器电压是否设置合适 |
程序里beep=P2^7改为Pq^0 |
先不说线接错了,我一般都是接的NPN三极管再串联接一个电阻就可以了 |
线接错了 |
线都接错啦,怎么响 |
#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 通过修改此延时时间达到不同的发声效果 } } |
我用的单片机蜂鸣器接的是P1^5口,您的延时太长了,改2000 |
首先是蜂鸣器的电压 其次是蜂鸣器选择是有源还是无源 |
用示波器看一下P1.0引脚是否有输出啊,如果电平都不对,那就检查软件,电平变化正常,再去检查硬件,硬件包括硬件失效以及引脚连接错误,焊接错误,等各种情况 |
无源蜂鸣器好像是要一直取反的,beep=~beep,有源的话不用,还有可能是蜂鸣器电压参数没设置好 |
Proteus图里蜂鸣器接的是P1^0,程序中定义的是 sbit beep=P2^7, 改Proteus图, or "sbit beep=P1^0"![]() ![]() ![]() |
程序指定的P口和实际接线不符啊! |
应该是你在图里把蜂鸣器接到了P10上,程序设置到P27了 |
P1.1口连线有问题,改成P1.3口,然后最好加一个上拉电阻 ![]() |
首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!! 首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!! 首先检查一下蜂鸣器有没有问题,然后判断电路有没有接好,最后看看程序有没有问题!!!! |
第一:先用万用表测一下蜂鸣器有没有问题 |
图中你单片机的复位引脚是高电平啊,你确认单片机能正常工作? |
@博蒗 这个回答还是比较正确的,先把IO口连接修改一下,如果还是不能点亮再去找电路问题 |
延时函数有问题,编译器编译时会将for 循环优化掉,建议在for函数里面添加_nop_()函数,这个函数可用于延时,只占用时间,不做任何事 |
小正方形接在电源和地上面的话就是固定的电平,不会变化;建议用示波器查看一下蜂鸣器的另一个引脚,看是否有电平变化,如果没有变化的话说明可能是单片机的程序有一些问题,如果有变化的话,可能是频率不对,也就是延时之后产生的频率不能使蜂鸣器发出声音,需要更改延时长短。 |
小正方形接在地上或者正极上就是固定的电平,不会变; 建议用示波器查看一下蜂鸣器的另一端,看是否有电平变化,如果有的话,可能是频率不对,如果没有的话说明单片机内部的程序有一些问题。 |
请更换整个发生器进行仿真,器件搜索:SOUNDER. 经过测试这个能发出声音。 |
新建位图图像.jpg (22.58 KB, 下载次数: 69)
P2^7换成P1^0 |
程序是P2^7接线是P1^0 beep=~beep用取反 |
应该把P2^7改成P1^0 |
要看你焊的蜂鸣器是共阴还是共阳,共阴的话代码取反就可以响,共阳得高低电平来回转换 |
检查单片机最小系统是否工作 |
更改频率试试 |
今天看一下应该是延时函数问题 |
看电路图片接口与程序接口不一致? 那P10怎么输出了低电平呢? 应该截图时间不一致,中间改动了吧。 |
你这个电路上的蜂鸣器要选无源的。然后再看delay延时多长时间,时间长了和短了超出音频范围也会听不到响声,一般取1K-2KHZ,也就是1-2mS,自己试一下。 |
系统默认电压是5V ? 蜂鸣器可能是12V的代码基本上没问题 |
1.代码P2.7接P1.0 2.高低电平延时太大 ,频率极低。 3.改模型SPEAKER(active),delay(200);试试 |
P1.1口连线有问题,改成P1.3口 |
R1电阻是不是大了,你改成连接一个滑阻,然后测试一下哪个值合适 |
只是简单看了一下,蜂鸣器的接线都好像接错了吧,代码中定义的是“sbit beep=P2^7”,电路图中接的是P1^0接口,当然是不可能有反应的 |