① 请问单片机三极管怎么控制蜂鸣器
首先,三极管是PNP,发射极E接5V,集电极C接蜂鸣器再接地是没错的,要导通的话是基极B接高电平就可以导通发声,低电平截止,而蜂鸣器如果是无源的话是由脉冲驱动的,因此,是需要在P3^7 I/O口输出脉冲就可以了,可以简单的利用软件延时实现,如果还有其他任务的话,还是用定时器吧,定时多久,定时中断就让I/O电平翻转一次就可以实现了,如果还要控制响度,再设定合适的占空比就可以实现了,这些都是很简单的,自己学习下“定时器”“占空比”相关的知识就知道了。
1.在这里,单片机只是相当于高速的开关一样,实现快速地打开或者关断蜂鸣器,电流要不了多大的,只要能驱动三极管就可以了,通常也就最多几个mA吧。
2.电流的话跟输出的频率和占空比都有关系吧,这个不用万用表测的话,只能大概估计了。
3.这里三极管不是放大作用,而是工作在饱和状态,相当于是开关,明白吗??
② 怎么使用单片机控制蜂鸣器发声
蜂鸣器有两种,一种是无源的,另一种为有源的,确认的方法为: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);//响一段时间
}
}
③ 在51单片机中怎样让中断控制蜂鸣器
让中断控制蜂鸣器,用定时器,一种应用是做电子钟,定点闹钟,整点报警都可以。第二种应用,用定时器控制蜂鸣器间断发声,产生各种效果。第三种应用是控制无源蜂鸣器,用定时器产生不同频率的信号,加到蜂鸣器上发出不同音调的声音。
④ 单片机可以直接驱动一个蜂鸣器吗
蜂鸣器的工作电流一般比较大,以致于单片机的i/o
口是无法直接驱动的(但avr可以驱动小功率蜂鸣器),所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。
⑤ 求助用51单片机用独立按键控制蜂鸣器
你这个要求太低了,如果就这一个要求,就不建议用单片机实现了,就用双稳态的触发器硬件电路就可以实现,555时基电路就可以做到;如果你正在学习单片机入门,做一个DEMO,就只需几个函数就可以实现上述功能,首先是初始化函数,用来初始化按键输入端口和蜂鸣器输出端口,接着是按键检测函数,以查询方式检测每当按键按下,一个状态变量就切换为0和1,注意防抖处理;最后一个是蜂鸣器控制函数,根据上面那个状态变量控制蜂鸣器的开或者关。
⑥ 单片机控制蜂鸣器问题
哈!这和蜂鸣器本身的特性有关了,它有二种,所谓一般称为直流的是定电压的,你工作电压是多少就选用多少工作电压的。再就是所谓的交流蜂鸣器了,那可用的电压广的,不过那你也可别急,因它是要你单片机输出的是脉冲信号他才会按你输出的频带率叫的。这电流也就大不了呢。所以,不用你算电流,只要你正确选用器件的了。
⑦ 单片机驱动蜂鸣器电路
单片机驱动蜂鸣器电路如下:
蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,我们用程序简单做了个 4KHZ 频率下的发声和 1KHZ 频率下的发声程序代码如下:
#include
sbit BUZZ = P1^6; //蜂鸣器控制引脚
unsigned char T0RH = 0; //T0 重载值的高字节
unsigned char T0RL = 0; //T0 重载值的低字节
voidOpenBuzz(unsigned int frequ);
void StopBuzz();
void main(){
unsigned int i;
TMOD = 0x01; //配置 T0 工作在模式 1,但先不启动
EA = 1;
while(1){ //使能全局中断
OpenBuzz(4000); //以 4KHz 的频率启动蜂鸣器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鸣器
for (i=0; i<40000; i++);
OpenBuzz(1000); //以 1KHz 的频率启动蜂鸣器
for (i=0; i<40000; i++);
StopBuzz(); //停止蜂鸣器
for (i=0; i<40000; i++);
}
}
/* 蜂鸣器启动函数,frequ-工作频率 */
void OpenBuzz(unsigned int frequ){
unsigned int reload;//计算所需的定时器重载值
reload = 65536 - (11059200/12)/(frequ*2); //由给定频率计算定时器重载值
T0RH = (unsigned char)(reload >> 8); //16 位重载值分解为高低两个字节
T0RL = (unsigned char)reload;
TH0 = 0xFF; //设定一个接近溢出的初值,以使定时器马上投入工作
TL0 = 0xFE;
ET0 = 1; //使能 T0 中断
TR0 = 1; //启动 T0
}
/* 蜂鸣器停止函数 */
void StopBuzz(){
ET0 = 0; //禁用 T0 中断
TR0 = 0; //停止 T0
}
/* T0 中断服务函数,用于控制蜂鸣器发声 */
void InterruptTimer0()interrupt1{
TH0 = T0RH; //重新加载重载值
TL0 = T0RL;
BUZZ = ~BUZZ; //反转蜂鸣器控制电平
}
⑧ 单片机蜂鸣器工作原理是什么哪位高手可以指教一下
蜂鸣器工作发声原理:
蜂鸣器的发声原理由振动装置和谐振装置组成,而蜂鸣器又分为无源他激型与有源自激型。
无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置转换为声音信号输出。
有源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号。
电路原理:PORTC.3/T0 作为I/O 口通过三极管Q2 来驱动蜂鸣器LS1,而PORTC.2/PWM0 则作为PWM 输出口通过三极管Q1 来驱动蜂鸣器LS2。另外在PORTA.3 和PORTA.2 分别接了两个按键,一个是PWM 按键,是用来控制PWM 输出口驱动蜂鸣器使用的;另一个是PORT 按键,是用来控制I/O 口驱动蜂鸣器使用的。连接按键的I/O 口开内部上拉电阻。
(8)单片机控制蜂鸣器扩展阅读:
蜂鸣器的应用领域
蜂鸣器广泛应用领域:计算机行业(主板蜂鸣器,机箱蜂鸣器,电脑蜂鸣器)打印机(控制板蜂鸣器)、复印机、报警器行业(报警蜂鸣器,警报蜂鸣器)、电子玩具(音乐蜂鸣器)、农业、汽车电子设备行业(车载蜂鸣器,倒车蜂鸣器,汽车蜂鸣器,摩托车蜂鸣器)电话机(环保蜂鸣器)、定时器,空调,医疗设备等电声行业。
⑨ 1 无源蜂鸣器用单片机控制,最高能发出多高频率的声,有上限没 2 蜂鸣器发出声的大小和电流有关么
蜂鸣器可发出高至超声波的声音,当然,超声波不为一般人所听到。所以说,你可不必考虑声音上限,或者将超声波下限20kHz作为频率上限即可。
蜂鸣器发出声音大小与电流有关,但是一般蜂鸣器所需电流很小,如果输出功率足够的话,主要与输出电压相关,一般加一个9012之类就足够了,电压按蜂鸣器标称取。
某些频率的声音,你会感觉较小,某些频率声音感觉较大,这是正常情况,这种情况下,提高电压或加大输出功率无济于事。