倒计时蜂鸣器声音较小,能否加大?(有图有代码)

[复制链接]
4134|21
手机看帖
扫描二维码
随时随地手机跟帖
xichandoujigu|  楼主 | 2018-1-30 23:08 | 显示全部楼层 |阅读模式
本帖最后由 xichandoujigu 于 2018-1-31 00:04 编辑

现在蜂鸣器声音一般,声音能否加大?



R1-R4为200k,R5为10K,单片机实际用的是STC12C2052AD,五个三极管都是S8050,数码管用的是5641BH共阳数码管,蜂鸣器是5v有源蜂鸣器。
还有一点不清楚的是为什么R5就10K声音相对较大,R5换成1K反而较小,R5换大的如20K声音也小。


相关帖子

xichandoujigu|  楼主 | 2018-1-30 23:11 | 显示全部楼层
本帖最后由 xichandoujigu 于 2018-1-30 23:37 编辑

附代码如下
#include <REG51.H>  
int fen_gao,fen_di,miao_gao,miao_di;        // 秒个位,十位、分个位、十位
unsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit P37=P3^3;
sbit P36=P3^4;
sbit P35=P3^5;
sbit P34=P3^7;
sbit beep=P3^0;
int zhongduan_cnt;
  //10ms延时子程序(12MHZ)
   void delay_ms(void)
      {  
             int i,j,k;
              for(i=5;i>0;i--)        
                for(j=4;j>0;j--)
                  for(k=248;k>0;k--);
        }
void init()
    {   
          TMOD=0x01; //定时器初始化  选择timer0做16位定时器  
           TH0=(65536-50000)/256;  
           TL0=(65536-50000)%256;     
            EA=1;    //开放中断
            ET0=1;  //开放timer0中断  
            TR0=1;  //启动timer0   
    }
void display(int fen_gao,fen_di,miao_gao,miao_di)
    {
          P1 = 0X00;
           P37=1;  
           P1=Tab[fen_gao];
           delay_ms() ;
           P37=0;
           P1 = 0X00;
           P36=1;  
           P1=Tab[fen_di];
           delay_ms() ;
           P36=0;
           P1 = 0X00;
           P35=1;  
           P1=Tab[miao_gao];
           delay_ms() ;
           P35=0;
           P1 = 0X00;
           P34=1;  
           P1=Tab[miao_di];
           delay_ms() ;
           P34=0;
    }
void Delay_beep(int x)
     {   int t;   while(x--) for(t=0;t<120;t++);  }   //按周期t发音
void Play(int t)
     {    int i;   for(i=0;i<100;i++)  {   beep=~beep;  Delay_beep(t);  }   beep=0;  }  

void timer0(void) interrupt 1 using 1
    {
           TH0  = (65536-50000)/256;  
          TL0= (65536-50000)%256;   
          zhongduan_cnt++;  
    }


  /*********主程序********************/
void main()
  {
       beep=0;
       miao_di=5;
       miao_gao=0;
       fen_di=0;
       fen_gao=0;
       zhongduan_cnt=0;
       P35=0;  
       P37=0;
       P34=0;
       P36=0;
       init();
          while(1)
             {
                   if(zhongduan_cnt>19) //如果到了1S
                        {
                            zhongduan_cnt=0; //清零
                                     if(miao_di==0 && miao_gao==0 && fen_di==0 &&  fen_gao==0)  
                                       { Play(2);}//归零开始响
                                           else if (miao_di==0 && miao_gao==0 && fen_di==0)
                                                { miao_di=9; miao_gao=5;fen_di=9;fen_gao=fen_gao-1;  }
                                            else if (miao_di==0 && miao_gao==0 && fen_di!=0)
                                                      {   miao_di=9;miao_gao=5;fen_di=fen_di-1; }
                                                   else if (miao_di==0 && miao_gao!=0)
                                                             { miao_di=9;miao_gao=miao_gao-1;  }  
                                                          else if (miao_di!=0)
                                            miao_di= miao_di-1;
                              }
                                display(fen_gao,fen_di,miao_gao,miao_di);
                  }
      }
程序的意思是倒计时5秒后蜂鸣器响,帮忙看看,谢谢!



使用特权

评论回复
jjjyufan| | 2018-1-31 08:07 | 显示全部楼层
有源蜂鸣器 和程序没关系
1你是不是仿真的时候声音小?
2 实物 蜂鸣器上的贴纸要撕掉,蜂鸣器适当串个10R 限流电阻

使用特权

评论回复
mcu5i51| | 2018-1-31 09:40 | 显示全部楼层
如果是标准51,驱动会不足;目前多数为增强IO,请用推挽方式

使用特权

评论回复
评论
caijie001 2018-2-1 08:15 回复TA
请注意有三极管,不是驱动不足造成 
dirtwillfly| | 2018-1-31 20:45 | 显示全部楼层
根据楼主提供的信息,也不能排除蜂鸣器本身质量问题

使用特权

评论回复
xiaxingxing| | 2018-1-31 21:03 | 显示全部楼层
mcu5i51 发表于 2018-1-31 09:40
如果是标准51,驱动会不足;目前多数为增强IO,请用推挽方式

你好,51驱动,经过三极管,电流不是有十几mA到几十mA吗?怎么还说驱动能力不足呢?没三极管驱动能力不足我可以理解,经过三极管放大足够驱动蜂鸣器了啊?求大神指导。

使用特权

评论回复
xichandoujigu|  楼主 | 2018-1-31 21:29 | 显示全部楼层
dirtwillfly 发表于 2018-1-31 20:45
根据楼主提供的信息,也不能排除蜂鸣器本身质量问题

质量本身没有问题,直接接5v的电源声音比较大的。

使用特权

评论回复
xichandoujigu|  楼主 | 2018-1-31 21:31 | 显示全部楼层
jjjyufan 发表于 2018-1-31 08:07
有源蜂鸣器 和程序没关系
1你是不是仿真的时候声音小?
2 实物 蜂鸣器上的贴纸要撕掉,蜂鸣器适当串个10R  ...

我是用的实物,电路图是用仿真画出来,贴纸也撕掉了,串个电阻正在试。

使用特权

评论回复
mcu5i51| | 2018-1-31 22:15 | 显示全部楼层
xiaxingxing 发表于 2018-1-31 21:03
你好,51驱动,经过三极管,电流不是有十几mA到几十mA吗?怎么还说驱动能力不足呢?没三极管驱动能力不足 ...

一般的5V左右的蜂鸣器,电阻在30-50;电流大约100ma,51内部上拉电阻在10K左右,你外加一个10K电阻之后就是20K,5V电流0.25ma,放大百十倍,得到25-50ma电流,蜂鸣器上电压不足5V;
声音小的原因猜测,你的频率和蜂鸣器固有频率不同,加上10K电阻后电流减小,蜂鸣器的“阻力”也减小,声音的谐波部分加强

使用特权

评论回复
chunyang| | 2018-1-31 23:30 | 显示全部楼层
有源蜂鸣器还是无源蜂鸣器?

使用特权

评论回复
QuakeGod| | 2018-2-1 00:49 | 显示全部楼层
chunyang 发表于 2018-1-31 23:30
有源蜂鸣器还是无源蜂鸣器?

他肯定是用了一个有源的蜂鸣器当成无源的用了,
你没看他说嘛,直接接5V声音比较大。

使用特权

评论回复
caijie001| | 2018-2-1 08:16 | 显示全部楼层
QuakeGod 发表于 2018-2-1 00:49
他肯定是用了一个有源的蜂鸣器当成无源的用了,
你没看他说嘛,直接接5V声音比较大。
...

无源蜂鸣器接5v也不会响的。。。。。

使用特权

评论回复
mcu5i51| | 2018-2-1 08:41 | 显示全部楼层
有源的更好测试了,驱动发声,测试蜂鸣器电压,如果不是VCC-0.2左右就是驱动不足

使用特权

评论回复
mcu5i51| | 2018-2-1 08:42 | 显示全部楼层
有源的更好测试了,驱动发声,测试蜂鸣器电压,如果不是VCC-0.2左右就是驱动不足

使用特权

评论回复
楼主改变下驱动频率试下

使用特权

评论回复
xiaxingxing| | 2018-2-1 17:22 | 显示全部楼层
mcu5i51 发表于 2018-1-31 22:15
一般的5V左右的蜂鸣器,电阻在30-50;电流大约100ma,51内部上拉电阻在10K左右,你外加一个10K电阻之后就 ...

明白了,谢谢!

使用特权

评论回复
chunyang| | 2018-2-1 20:57 | 显示全部楼层
QuakeGod 发表于 2018-2-1 00:49
他肯定是用了一个有源的蜂鸣器当成无源的用了,
你没看他说嘛,直接接5V声音比较大。
...

就是怀疑这一点,所以才要确认。

使用特权

评论回复
wh6ic| | 2018-2-10 14:36 | 显示全部楼层
楼主根本就没弄清楚有源蜂鸣器怎么驱动。
  只需要 IO 输出高电平就自己可以响,他在 鸣响子程序 里面把这个 IO 不停的翻转,当无源的在玩勒... ...

使用特权

评论回复
optec| | 2018-2-14 14:36 | 显示全部楼层
测量一下Q5-C的电压。

使用特权

评论回复
wtzhu| | 2018-3-1 21:49 | 显示全部楼层
你的代码估计没人看,只能帮你到这了

超声波.pdf

441.79 KB

使用特权

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

本版积分规则

31

主题

96

帖子

2

粉丝