用51单片机控制蜂鸣器,如何使蜂鸣器输出最高声音

如题所述

蜂鸣器有两种,一种是无源的,另一种为有源的,确认的方法为:1)看封装,如果引脚端为PCB板的,一般为无源的,引脚端为树脂灌封的,一般为有源的。2)加电实验,用5V电压点击接触引脚时,只有“哒哒”声的为无源的,发出一个单音响的为有源的。
两种蜂鸣器用单片机的控制方法是一样的,对于无源的,要求单片机送出一组断续的音频信号,使蜂鸣器按要求发声,对于有源蜂鸣器,要求单片机送出一组断续的电脉冲信号,用于分断蜂鸣器的通断状态,而使有源蜂鸣器发出“嘀...嘀”,“嘀...嘀...嘀”等希望的声音。
无源蜂鸣器举例:
/**********************************************************************/
//声响驱动程序 BELL--整点报时(闹钟音两短一长)
/**********************************************************************/
void Beep(void)
{
uint a;//定义变量用于发声的长度设置
uchar b;
for(b=2;b>0;b--){
for(a=200;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay_1us(500);//音调设置延时
}
DelayM(1000);
}
for(a=1000;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay_1us(500);//音调设置延时
}
beep = 1;//音乐结束后扬声器关闭
}
有源蜂鸣器举例:
void main(void)
{
NB=0;//有源蜂鸣器初始不送电
while(1)
{
NB=0;//有源蜂鸣器断电

delay(300);//停一段时间
NB=1;//有源蜂鸣器送电
delay(1000);//响一段时间
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-22
可以通过控制蜂鸣器的发生频率来改变音调,频率高时,声音听起来就尖锐;感觉声音就像变大了
第2个回答  2011-08-27
有源的还是无源的?。。在硬件不变的情况下,无源的一般在2khz的时候达到最大声。。本回答被网友采纳
第3个回答  2011-08-22
加三极管, 并且减小 三极管跟你单片机引脚之间那个电阻大小

http://www.daxia.com/bibis/upload/2007_9_10_11_26_51.JPG

如上图, 三极管也分功率的 找功率大点的 如 8550 8050
第4个回答  2011-08-22
增加驱动功率,适当的增加振动频率

用51单片机控制蜂鸣器,如何使蜂鸣器输出最高声音
两种蜂鸣器用单片机的控制方法是一样的,对于无源的,要求单片机送出一组断续的音频信号,使蜂鸣器按要求发声,对于有源蜂鸣器,要求单片机送出一组断续的电脉冲信号,用于分断蜂鸣器的通断状态,而使有源蜂鸣器发出“嘀...嘀”,“嘀...嘀...嘀”等希望的声音。无源蜂鸣器举例:\/***\/ \/\/声响驱动程...

51单片机驱动的蜂鸣器电路,声音小,如何提高音量且无杂音?我的电路图如...
最简方法:减小R4,这样可以增大流过SPK的电流,从而提高SPK音量

51单片机如何让蜂鸣器发出110的声音
include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit SPK=P1^2; \/\/定义喇叭端口 unsigned char frq;void DelayUs2x(unsigned char t);\/\/函数声明 void DelayMs(unsigned char t);\/*--- 定时器初始化子程序 ---*\/ void Init_Timer0(void){ TMOD |...

本人初学51单片机,请教大神这个驱动这个蜂鸣器响?谢啦,下面是原理图...
很明显,你的这个蜂鸣器是用单片机的p1.4口来控制的,当p1.4口为高电平时,UNL2003中的三级管就可导通,这个时候蜂鸣器的那个接OUT7的引脚就会变成低电平,这个时候蜂鸣器就有了工作电压了。UNL2003里边其实就是一组三级管组成的OC(集电级开路)门。目的是为了提高驱动电流的。因为单片机的引脚输出和...

怎样控制51单片机的蜂鸣器发出不同频率的声音?
用定时器来产生频率,如产生100Hz的声音。思路:100Hz即每秒变换200次,每次的时间就是1\/200秒=0.005秒=5毫秒。计算定时器的初值:TH0 = 0x0EE; TL0 = 0x00;include <reg51.h> sbit BEEP=P0^0;\/\/蜂鸣器引脚 void main(void){ \/\/初始化定时器(晶振:11.0592MHz,12T)TMOD = 0x01;...

以下电路图,焊好以后,蜂鸣器的声音很小,有什么方法能提高蜂鸣器的声音...
试一下这种画法,用pnp8550三极管,我以前用的时候没出现过声音小的问题

求51单片机蜂鸣器程序
51单片机,编写延时程序,控制蜂鸣器发声:很简单的#include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit fengmingqi=P0^0; \/\/声明IO口void delay(uint x)\/\/延时子函数{ uint i,j;for(i=x;i>0;i--)for(j=50;j>0;j--);}void main(void){while(1) \/\/循环{...

为什么我的51单片机蜂鸣器程序需要加延时才响呢?
迸一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。

求教,怎样控制51单片机的蜂鸣器发出不同频率的声音
蜂鸣器是不能发出不同频率的声音的,要发出不同频率的声音,你需要选择speaker,比如:include<reg51.h> define uchar unsigned char define uint unsigned int sbit SPK=P1^0;sbit K1=P1^7;\/\/发声函数 void Alarm(uchar t){ uchari,j;for(i=0;i<200;i++){ SPK=~SPK;for(j=0;j<t;j...

51单片机控制蜂鸣器发出911声音c程序如下,求老师详细讲解,谢谢(最好可 ...
看程序应该是发出的声音频率越来越高,然后突然降低,再越来越高,如此循环 main(){ TMOD = 0x01; \/\/设定时方式1,16位定时器 frq = 0x00;TH0 = 0x00; \/\/赋初值 TL0 = 0xff; \/\/赋初值 TR0 = 1; \/\/开始计数 IE = 0x82; \/\/允许中断 while(1){ frq++; \/\/每...

相似回答