打印

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

[复制链接]
3210|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 冰封小肥牛 于 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左右的续流电阻。

使用特权

评论回复
5
mgf006| | 2012-11-15 09:46 | 只看该作者
无源的是分频率点的,要看一下你的蜂鸣器的频率点是多少。频率不对声音自然就不好听了。

使用特权

评论回复
6
y651503148| | 2012-11-15 14:13 | 只看该作者
改下定时器初始值。

使用特权

评论回复
7
江枫渔火| | 2012-11-15 15:38 | 只看该作者
频率太高了噻~

使用特权

评论回复
8
闲来玩玩| | 2012-11-15 18:21 | 只看该作者
学习

使用特权

评论回复
9
ZG11211| | 2012-11-15 19:41 | 只看该作者
定时器1的TF1不是自动清零的吗,定时器溢出,中断优先,你的循环if确定能捕捉到1==TF1 ??

使用特权

评论回复
10
zhhbncwu| | 2012-11-15 21:22 | 只看该作者
一方面允许定时器1中断,另一方面又通过查询方法对定时器操作,这本身就相互矛盾,TF标志在中断模式下是会自动清零的,导致在查询中很难捕捉到TF=1。

使用特权

评论回复
11
冰封小肥牛|  楼主 | 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的,貌似不高吧,那应该是程序方面的问题了

使用特权

评论回复
12
冰封小肥牛|  楼主 | 2012-11-17 00:32 | 只看该作者
电路图

I1N7D}K7X[{5MS[W5%8)9O4.jpg (15.35 KB )

I1N7D}K7X[{5MS[W5%8)9O4.jpg

使用特权

评论回复
13
zhangliming420| | 2012-12-3 10:56 | 只看该作者
去掉蜂鸣器两端的那个IN4148.根据你的蜂鸣器应该串一个680欧的电阻,再在所串电阻和蜂鸣器的两端并一个1K的电阻.你试一下,应该会好点

使用特权

评论回复
14
anazel| | 2012-12-3 11:05 | 只看该作者
嗯,又要中断,又要查询,不对哦

使用特权

评论回复
15
cubasa| | 2012-12-3 12:20 | 只看该作者
本帖最后由 cubasa 于 2012-12-3 12:25 编辑

请用示波器量一下BUZZ信号,我估计是占空比太小了,所以声音非常小。最好占空比50%。你用的是负逻辑,BUZZ=1是不响,BUZZ=0响。
并且确定频率是正常人耳可听范围。

使用特权

评论回复
16
zhang7676050| | 2012-12-3 12:57 | 只看该作者
学习下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

201

帖子

1

粉丝