微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助!蜂鸣器为什么不响!

求助!蜂鸣器为什么不响!

时间:10-02 整理:3721RD 点击:
#include<reg51.h>
sbit buzzer=P0^0;
void delay(int);
void pulse_BZ(int,int,int);
void main()
{
        while(1)
        {
                pulse_BZ(100,1,1);
                delay(1000);
        }
}
void delay(int x)
{        
        int i,j;
        for(i=0;i<x;i++)
                for(j=1;j<=60;j++);
}
void pulse_BZ(int count,int th,int tl)
{
        int i;
        for(i=0;i<count;i++)
        {
                buzzer=1;
                delay(th);
                buzzer=0;
                delay(tl);
        }
}
程序测试也没问题的!

电路图


可能是脉冲频率太高了

脉冲频率是12000000Hz,正常的啊

LZ看看驱动蜂鸣器 (P0.0) 的脉冲频率是多少

不会是没开电脑的声音吧

既然是仿真,那就断开与单片机的连接处,看看响不,排除是不是元件或连线问题

你们的建议都试了,都没什么反应。把蜂鸣器换成灯泡就能亮,我猜是不是三极管的流向蜂鸣器的电流太小。最后我用了电流探针,蜂鸣器就响了。但本人电路知识还太薄弱了,不知怎么修改,望大神们多给点建议!

蜂鸣器missing是什么情况


电路貌似没有问题

没问题的。只是三极管部分处理不好,电流太小了。不知如何修改!

人耳能听到的声音频率最高一般到20KHz附近,如果再高就只有特异功能的人能感知。

蜂鸣器是电压型器件,需要提高电压。
仿真 —— 把蜂鸣器的驱动电路电压提高到+12V以上。
实物 —— 在蜂鸣器(片)上粘一个有弹性的“纸盆”。

貌似提高了电压也没用。看来问题没那么简单!

电流太大了吧。串个电阻试试。几百欧的。

直接弄个实物出来。仿真并不能代表实际,有时反而误导人去排除一些本来不存在的问题。

电流小了,再加个三极管放大一下就可以了,或者用运放也行。

蜂鸣器一般需要12v 或者9v电压来驱动,上拉12v试试

谢谢建议,已弄好了!

P0口要加上拉电阻才能输出正确的高低电平,你这图有问题,换P1口就好了,还有演示有点短,确保用的不是和频率有关的那种蜂鸣器!

P0口不是真正的IO口,要加上拉电阻才能输出正确的高低电平,换上P1口就好了(无需上拉),还有确保用的实物不是那种和频率有关的蜂鸣器呀!

P0口不是真正的IO口,要加上拉电阻才能输出正确的高低电平,换上P1口就好了(无需上拉),还有确保用的实物不是那种和频率有关的蜂鸣器呀!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top