为什么我的蜂咛器声音很小

[复制链接]
3879|15
 楼主| 冰封小肥牛 发表于 2012-11-14 22:27 | 显示全部楼层 |阅读模式
本帖最后由 冰封小肥牛 于 2012-11-14 22:45 编辑

如题求救啊,我的目的是想让蜂咛器响一声,可是不管我怎么弄不是一直响就是响一声(声音如同蚊子般),搞了一夜了求大哥们帮忙下!对了 我的蜂咛器是无源的!
#include <reg52.h>
sbit BUZZ = P1^6;
typedef unsigned char uint8;
bit Flag_Buz;
main()
{
     uint8 k = 0;
     TMOD |= 0x10;
     TMOD &= 0xdf;
     TH1 = 0xff;
     TL1= 0xa4;
     TR1 = 1;
     EA = 1;
     ET1 = 1;
     while(1)
     {
          if(!Flag_Buz)
          {
              BUZZ = 1;
              if(1 == TF1)
             {
                  TF1 = 0;
                  TH1 = 0xff;
                  TL1 = 0xa4;
                   k++;
             }
             if(k == 5)
             {
                   k = 0;
                  Flag_Buz = 1;
                   BUZZ = 0;
                  break;
             }
          }
      }
}

}
chunyang 发表于 2012-11-14 22:34 | 显示全部楼层
首先要看你用的蜂鸣器是哪种类型,是否自带振荡器,对于自带振荡器的给个定宽脉冲驱动即可,宽度就是你需要响的时间,可以用定时器也可以用软件延时实现。对于没有自带振荡器的需要输出定宽的音频脉冲串,这个可以借助两个定时器或一个定时器加软件延时实现。
如果嫌蜂鸣器音量太小,可以加一级晶体管或门电路来提高驱动能力。
jlass 发表于 2012-11-15 08:33 | 显示全部楼层
可能是驱动电流不够
加个三级管驱动电路
呆板书生 发表于 2012-11-15 09:30 | 显示全部楼层
对于无源蜂鸣器,要加一个1K左右的续流电阻。
mgf006 发表于 2012-11-15 09:46 | 显示全部楼层
无源的是分频率点的,要看一下你的蜂鸣器的频率点是多少。频率不对声音自然就不好听了。
y651503148 发表于 2012-11-15 14:13 | 显示全部楼层
改下定时器初始值。
江枫渔火 发表于 2012-11-15 15:38 | 显示全部楼层
频率太高了噻~
闲来玩玩 发表于 2012-11-15 18:21 | 显示全部楼层
ZG11211 发表于 2012-11-15 19:41 | 显示全部楼层
定时器1的TF1不是自动清零的吗,定时器溢出,中断优先,你的循环if确定能捕捉到1==TF1 ??
zhhbncwu 发表于 2012-11-15 21:22 | 显示全部楼层
一方面允许定时器1中断,另一方面又通过查询方法对定时器操作,这本身就相互矛盾,TF标志在中断模式下是会自动清零的,导致在查询中很难捕捉到TF=1。
 楼主| 冰封小肥牛 发表于 2012-11-17 00:31 | 显示全部楼层
[img]file:///C:/Users/ZS/AppData/Roaming/Tencent/Users/429315567/QQ/WinTemp/RichOle/I1N7D%7DK7X[%7B5MS[W5%258)9O4.jpg[/img] 这是我蜂咛器的电路图,关于频率问题  我加的是一个1K HZ的,貌似不高吧,那应该是程序方面的问题了
 楼主| 冰封小肥牛 发表于 2012-11-17 00:32 | 显示全部楼层
电路图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
zhangliming420 发表于 2012-12-3 10:56 | 显示全部楼层
去掉蜂鸣器两端的那个IN4148.根据你的蜂鸣器应该串一个680欧的电阻,再在所串电阻和蜂鸣器的两端并一个1K的电阻.你试一下,应该会好点
anazel 发表于 2012-12-3 11:05 | 显示全部楼层
嗯,又要中断,又要查询,不对哦
cubasa 发表于 2012-12-3 12:20 | 显示全部楼层
本帖最后由 cubasa 于 2012-12-3 12:25 编辑

请用示波器量一下BUZZ信号,我估计是占空比太小了,所以声音非常小。最好占空比50%。你用的是负逻辑,BUZZ=1是不响,BUZZ=0响。
并且确定频率是正常人耳可听范围。
zhang7676050 发表于 2012-12-3 12:57 | 显示全部楼层
学习下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

201

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部