⑴ 单片机驱动蜂鸣器电路
单片机驱动蜂鸣器电路如下:
蜂鸣器经常用于电脑、打印机、万用表这些设备上做提示音,提示音一般也很简单,就是简单发出个声音就行,我们用程序简单做了个 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; //反转蜂鸣器控制电平
}
⑵ 这个蜂鸣器电路很简单,好久也没弄明白
你所说的情况并不限制与蜂鸣器的驱动,包括常用的继电器,指示灯等很多情况(布尔控制器件)都会遇到。
设计这种电路,首先是要考察驱动的对象,看其正常工作的额定电流和电压。根据电流和电压参数选择三极管的,一般要保证三极管的最大Ic要大于等于1.5倍驱动对象的额定电流,Vce要大于等于1.2倍驱动器件的额定电压,如果是感性负载(如继电器),还必须在负载上反向并联吸收二极管,以防止感生电压过高损坏三极管。
选择好三极管后,根据三极管手册给出的最小放大倍数和驱动器件的最大工作电流计算所需要的Ib,根据这个Ib查询三极管数据手册,看看是否在三极管的安全工作范围中,如果超出就必须要重新选择三极管,如果合用,则计算Rb。
三极管的Vbe基本上可以取一个定值0.7V,查询单片机手册在既定工作电压下IO端口的高电平输出电压,用此电压减去0.7V,再除以之前所得的Ib,得出所需的Rb,这个Rb可能不是标准电阻,取最接近的标准电阻,记住,只能取小值(以保证三极管能处于饱和状态),验算实际Ib是不是在三极管的安全范围之内。
⑶ 蜂鸣器可以用NPN三极管驱动吧,我用npn,实物做出来之后蜂鸣器就是不响。下面是我的电路图
可以的,只要三极管导通给蜂鸣器通电就会响。NPN和PNP的都可以。
三极管基极驱动电压在足够,基极电阻不能太大。不然驱动不了,就是不能使三极管导通。
单片机的输出口通过一个电阻接到基极,集电极接蜂鸣器的正极,蜂鸣器负极接电源。当单片机的管脚SPEAK为高电平时,PN结发生正向偏置,三极管处于导通状态,蜂鸣器两个管脚得电,发声。
记住:NPN三极管的基极为高电平时三极管导通。
(3)蜂鸣片驱动电路图扩展阅读:
1、R1,R2的阻值应该对调,因为是采用电压控制的PMOS管,阻值可以适当加大,减少功耗,如R1:10K,R2:200K,而且这样还有一个好处,大幅的减轻Q11的负载,也减轻了单片机I/O口的输出电流要求。
2、因为不清楚要求和整体电路,单从这个局部电路来说,暂时无法对加稳压管这方面提供什么建议。
3、另,电路带“电”,调试小心。
4、FM是一个蜂鸣器,8550是一个PNP型的三极管,C端接地,B端由单片机控制,E端通过FM接VCC。根据箭头的方向,E端高电压的时候,当B端也是高电压,那么E和C之间是断开的,当B端是低电压,那么E和C直接导通,实现开关的作用。简单的技巧:三极管上箭头所在方向的二极管,只要二极管正向导通,那么三极管上下就能导通。
5、NPN的三极管也是同样的道理,这里不做过多解释。
6、这里可以看到,三极管用作开关管的时候非常简单,根本不会涉及到任何所谓的公式、放大倍数计算等等。
⑷ 求大神解释下51单片机蜂鸣器的工作原理 下面是原理图 急!
工作原理非常简单:图示电路为灌电流驱动方式(低电平有效),Q5为开关三极管,平时I/O口P3.6输出高电平,因Q5为PNP型三极管,故高电平使得基极电位接近Vcc,三极管截止处于集电极回路的蜂鸣器不响,当P3.6输出低电平时Q5经由Vcc-Q5eb-R17-P3.6到地回路获得基极电流而饱和导通,蜂鸣器得电发出鸣响。
⑸ protues中蜂鸣器如何发出声音 给个电路图
电路图如下:
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动回膜发声的,因此需答要一定的电流才能驱动它,单片机IO引脚输出的电流较小。
单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。
有源蜂鸣器和无源蜂鸣器的区别:
这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。
而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
无源蜂鸣器的优点是:便宜且声音频率可控,可以做出“多来米发索拉西”的效果。在一些特例中,可以和LED复用一个控制口 有源蜂鸣器的优点是:程序控制方便 。
⑹ 蜂鸣器的电路原理图
如图1-3 所示,使用SH69P43 为控制芯片,使用4MHz 晶振作为主振荡器。
PORTC.3/T0 作为I/O 口通过三极管Q2 来驱动蜂鸣器LS1,而PORTC.2/PWM0 则作为PWM 输出口通过三极管Q1 来驱动蜂鸣器LS2。另外在PORTA.3 和PORTA.2 分别接了两个按键,一个是PWM 按键,是用来控制PWM 输出口驱动蜂鸣器使用的;另一个是PORT 按键,是用来控制I/O 口驱动蜂鸣器使用的。连接按键的I/O 口开内部上拉电阻。
软件设计方法
先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2ty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。软件设计上,我们将根据两种驱动方式来进行说明。
a) PWM 输出口直接驱动蜂鸣器方式
由于PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出波形进行设置。
首先根据SH69P43 的PWM 输出的周期宽度是10 位数据来选择PWM 时钟。系统使用4MHz 的晶振作为主振荡器,一个tosc 的时间就是0.25μs,若是将PWM 的时钟设置为tosc 的话, 则蜂鸣器要求的波形周期500μs 的计数值为500μs/0.25μs=(2000)10=(7D0)16,7D0H 为11 位的数据,而SH69P43 的PWM
输出周期宽度只是10 位数据,所以选择PWM 的时钟为tosc 是不能实现蜂鸣器所要的驱动波形的。
这里我们将PWM 的时钟设置为4tosc,这样一个PWM 的时钟周期就是1μs 了,由此可以算出500μs 对应的计数值为500μs/1μs=(500)10=(1F4)16,即分别在周期寄存器的高2 位、中4 位和低4 位三个寄存器中填入1、F 和4,就完成了对输出周期的设置。再来设置占空比寄存器,在PWM 输出中占空比的实现是
通过设定一个周期内电平的宽度来实现的。当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。250μs 的宽度计数值为250μs/1μs=(250)10=(0FA)16。只需要在占空比寄存器的高2 位、中4 位和低4 位中分别填入0、F 和A 就可以完成对占空比的设置了,设置占空比为1/2ty。
以后只需要打开PWM 输出,PWM 输出口自然就能输出频率为2000Hz、占空比为1/2ty 的方波。
b) I/O 口定时翻转电平驱动蜂鸣器方式
使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500μs,占空比为1/2ty 的方波,只需要每250μs 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程序上,可以使用TIMER0 来定时,将TIMER0 的预分频设置为/1,选择TIMER0 的始终为系统时钟(主振荡器时钟/4),在TIMER0 的载入/计数寄存器的高4 位和低4 位分别写入00H 和06H,就能将TIMER0 的中断设置为250μs。当需要I/O 口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0 中断的时候对该I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O 口的电平设置为低电平即可。不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。
⑺ 压电式蜂鸣器工作原理及驱动电路
压电式蜂鸣器的结构图
⑻ 蜂鸣器电路工作原理设计是怎样的
蜂鸣器电路的工作原理
蜂鸣器 电路原理图使用SH69P43 为控制芯片,使用4MHz 晶振作为主振荡器。
PORTC.3/T0 作为I/O 口通过三极管Q2 来驱动蜂鸣器LS1,而PORTC.2/PWM0 则作为PWM 输出口通过三极管Q1 来驱动蜂鸣器LS2。另外在PORTA.3 和PORTA.2 分别接了两个按键,一个是PWM 按键,是用来控制PWM 输出口驱动蜂鸣器使用的;另一个是PORT 按键,是用来控制I/O 口驱动蜂鸣器使用的。连接按键的I/O 口开内部上拉电阻。
先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2ty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。软件设计上,将根据两种驱动方式来进行说明。
a) 蜂鸣器工作原理:PWM 输出口直接驱动蜂鸣器方式
由于PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出波形进行设置。
首先根据SH69P43 的PWM 输出的周期宽度是10 位数据来选择PWM 时钟。系统使用4MHz 的晶振作为主振荡器,一个tosc 的时间就是0.25μs,若是将PWM 的时钟设置为tosc 的话, 则蜂鸣器要求的波形周期500μs 的计数值为500μs/0.25μs=(2000)10=(7D0)16,7D0H 为11 位的数据,而SH69P43 的PWM
输出周期宽度只是10 位数据,所以选择PWM 的时钟为tosc 是不能实现蜂鸣器所要的驱动波形的。
这里将PWM 的时钟设置为4tosc,这样一个PWM 的时钟周期就是1μs 了,由此可以算出500μs 对应的计数值为500μs/1μs=(500)10=(1F4)16,即分别在周期寄存器的高2 位、中4 位和低4 位三个寄存器中填入1、F 和4,就完成了对输出周期的设置。再来设置占空比寄存器,在PWM 输出中占空比的实现是
通过设定一个周期内电平的宽度来实现的。当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。250μs 的宽度计数值为250μs/1μs=(250)10=(0FA)16。只需要在占空比寄存器的高2 位、中4 位和低4 位中分别填入0、F 和A 就可以完成对占空比的设置了,设置占空比为1/2ty。
以后只需要打开PWM 输出,PWM 输出口自然就能输出频率为2000Hz、占空比为1/2ty 的方波。
b) 蜂鸣器工作原理:I/O 口定时翻转电平驱动蜂鸣器方式
使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500μs,占空比为1/2ty 的方波,只需要每250μs 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程序上,可以使用TIMER0 来定时,将TIMER0 的预分频设置为/1,选择TIMER0 的始终为系统时钟(主振荡器时钟/4),在TIMER0 的载入/计数寄存器的高4 位和低4 位分别写入00H 和06H,就能将TIMER0 的中断设置为250μs。当需要I/O 口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0 中断的时候对该I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O 口的电平设置为低电平即可。不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。
⑼ 蜂鸣器可以用NPN三极管驱动吧,我用npn,实物做出来之后蜂鸣器就是声音太小。下面是我的电路图
当然可以。
蜂鸣器只要得到额定的工作电压就会发出正常的响声,检查蜂鸣器是不是5V的、三极管是否饱和。
但图中画的不是蜂鸣器而是喇叭,要确实用的是喇叭就复杂些。喇叭阻抗较大时5V电压下得不到狡大的功率,阻抗较小则需要注意三极管能否饱和。
⑽ 请教蜂鸣器电路图
用单片机任意端口按音阶频率输出方波信号,通过三极管驱动无源蜂鸣器,把音乐版分解成音权阶和音阶的时长的组合存在芯片中,就可以实现音乐的输出。
程序上用两个定时器,一个产生音阶频率,一个控制音阶的长度。
电路,就是把晶振12M和震荡电容22P接上,EA接电源,RST接上拉电容10u和下拉电阻10K,VCC和VSS接上电源,任意找一个IO口,外接上拉电阻4K7,再通过一个限流电阻100欧姆接到三极管8050的基极,发射极接地,集电极接无源蜂鸣器,无源蜂鸣器另一端接电源。
你说的东西,就这么简单即可实现~~~
这里可以下载到音阶频率表
http://wenku..com/view/b3921b22192e45361066f5b3.html