找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8925|回复: 10
打印 上一主题 下一主题
收起左侧

单片机驱动无源蜂鸣器不响,求助

  [复制链接]
跳转到指定楼层
楼主
蜂鸣器在p2.4

开始单步执行

执行后蜂鸣器被给了低电平 可是并没有响



用的是在线调试模式,大神求解

还有一个问题就是 data D区 不是00h-7fh吗 为什么会有0a0h

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:384109 发表于 2018-9-8 23:03 | 只看该作者
无源蜂鸣器是需要一定频率的脉冲波来驱动的,首先确定是否是无源蜂鸣器,现在非必要情况一般应该都是用有源蜂鸣器,电路简单,程序也简单。
现在的51单片机的RAM都已经是0-0XFF了,不过0x80-0xff的寻址方式好像和0-0X7F有不同

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:390190 发表于 2018-9-8 23:34 | 只看该作者
人中狼 发表于 2018-9-8 23:03
无源蜂鸣器是需要一定频率的脉冲波来驱动的,首先确定是否是无源蜂鸣器,现在非必要情况一般应该都是用有源 ...

可是我写了方波信号,所以无论是有源无源的蜂鸣器都应该至少会响吧。
回复

使用道具 举报

地板
ID:373388 发表于 2018-9-8 23:49 | 只看该作者
无源蜂鸣器就是没有震荡源,需要自己加振荡源的,你可以让buzzer驱动管脚,2-3KHz的频率输出试一下

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:277550 发表于 2018-9-9 01:23 | 只看该作者

试试将延时时间,减到50~100ms

~~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

6#
ID:387733 发表于 2018-9-9 07:10 | 只看该作者
光有方波不行,频率必须满足人的耳朵可听范围,过低就是次声波,过高是超声波,蜂鸣器不能工作,人耳也无法接受
回复

使用道具 举报

7#
ID:213173 发表于 2018-9-9 09:44 | 只看该作者
给你一个适合这个电路的演示程序试试
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit Buzzer=P2^4;

/*-------------------------------
  1ms延时程序(12MHz 12T)
-------------------------------*/
void delayms(uint k)
{
        uint i,j;
        for(i=k;i>0;i--)
                for(j=114;j>0;j--);
}
/*---------------------------
  无源蜂鸣器驱动程序(12MHz 12T)
---------------------------*/
void BUZZER(uint x)                                //0.24ms半周期蜂鸣器程序
{
        uchar t;
        while(x--)
        {       
                Buzzer=~Buzzer;                        //蜂鸣器谐振频率2048Hz
                for(t=0;t<28;t++);                //0.24ms半周期=2083Hz
        }                                                       
        Buzzer=1;                                                //复位
}
void main()
{  
        while(1)
        {   
                BUZZER(500);
                delayms(500);
        }         
}
回复

使用道具 举报

8#
ID:394504 发表于 2018-9-9 20:25 | 只看该作者
无源蜂鸣器震荡须有高低电平变化 三极管导通必须是b极和e极有足够的压降 而你的无源蜂鸣器放在c极无形中抬高了c、b极电势 使b、e极压降不能够使三极管正常导通 就没有了高低电平的变化 蜂鸣器就无法震荡 你可以吧蜂鸣器连接在e极 和vcc之间 再加个限流电阻
回复

使用道具 举报

9#
ID:395800 发表于 2018-9-9 23:14 | 只看该作者
应该是你们震荡源有问题,在测试看看
回复

使用道具 举报

10#
ID:393398 发表于 2018-9-10 14:54 | 只看该作者
检查焊的是不是搞错成无源蜂鸣器,5V有源蜂鸣器外壳上有标示+号,长脚为正
回复

使用道具 举报

11#
ID:226392 发表于 2018-9-10 16:22 | 只看该作者
data D区 不是00h-7fh吗 为什么会有0a0h ?地址是连续的,有但是已经不是data。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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