当前位置:文档之家› 蜂鸣器

蜂鸣器

蜂鸣器
蜂鸣器

蜂鸣器驱动模块

在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。这里对中颖电子的单片机在蜂鸣器驱动上的应用作一下描述。

1.驱动方式

由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用1/2duty的方波信号进行驱动的他激蜂鸣器进行说明。

单片机驱动他激蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。

PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置PWM口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开PWM输出,PWM输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。比如频率为2000Hz的蜂鸣器的驱动,可以知道周期为500μs,这样只需要把PWM的周期设置为500μs,占空比电平设置为250μs,就能产生一个频率为2000Hz的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。

而利用I/O定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的I/O口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为1/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。

2.蜂鸣器驱动电路

由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。

蜂鸣器的驱动电路有很多种,这里举两个常用的例子,也是建议使用的驱动电路:

1.1.无源压电式蜂鸣器、无源电磁式蜂鸣器(他激)

图1-1 无源压电式蜂鸣器、无源电磁式蜂鸣器驱动电路

1.2.有源压电式蜂鸣器、有源电磁式蜂鸣器(自激)

图1-2 有源压电式蜂鸣器、有源电磁式蜂鸣器驱动电路

3.蜂鸣器驱动设计

由于这里要介绍两种驱动方式的方法,所以在设计模块系统中将两种驱动方式做到一块,即程序里边不仅介绍了PWM输出口驱动蜂鸣器的方法,还要介绍I/O口驱动蜂鸣器的方法。所以,我们将设计如下的一个系统来说明单片机对蜂鸣器的驱动:系统有两个他激蜂鸣器,频率都为2000Hz,一个由I/O口进行控制,另一个由PWM输出口进行控制;系统还有两个按键,一个按键为PORT按键,I/O口控制的蜂鸣器不鸣叫时按一次按键I/O口控制的蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为PWM按键,PWM口控制的蜂鸣器不鸣叫时按一次按键PWM 输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。

电路原理图

如图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口开内部上拉电阻。

图1-3 SH69P43驱动蜂鸣器原理图

软件设计方法

先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2duty的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。

软件设计上,我们将根据两种驱动方式来进行说明。

a)PWM输出口直接驱动蜂鸣器方式

由于PWM只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM的输出波形进行设置。

首先根据SH69P43的PWM输出的周期宽度是10位数据来选择PWM时钟。系统使用4MHz的晶振作为主振荡器,一个t

osc

的时间就是0.25μs,若是将PWM的

时钟设置为t

osc

的话,则蜂鸣器要求的波形周期500μs的计数值为

500μs/0.25μs=(2000)

10=(7D0)

16

,7D0H为11位的数据,而SH69P43的PWM

输出周期宽度只是10位数据,所以选择PWM的时钟为t

osc

是不能实现蜂鸣器所要的驱动波形的。

这里我们将PWM的时钟设置为4t

osc

,这样一个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/2duty。

以后只需要打开PWM输出,PWM输出口自然就能输出频率为2000Hz、占空比为1/2duty的方波。

b)I/O口定时翻转电平驱动蜂鸣器方式

使用I/O口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500μs,占空比为1/2duty的方波,只需要每250μs进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。

在程序上,可以使用TIMER0来定时,将TIMER0的预分频设置为/1,选择TIMER0的始终为系统时钟(主振荡器时钟/4),在TIMER0的载入/计数寄存器的高4位和低4位分别写入00H和06H,就能将TIMER0的中断设置为250μs。

当需要I/O口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0中断的时候对该I/O口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O口的电平设置为低电平即可。不鸣叫时将I/O口的输出电平设置为低电平是为了防止漏电。

程序

以下是带有两种驱动方式的蜂鸣器驱动模块程序,其中黄色背景的内容是关于I/O口定时翻转电平驱动方式的,绿色背景的内容则是关于PWM输出口直接驱动方式的:

例[1-1]

LIST P=69P43

ROMSIZE=3072

;************************************************

; 系统寄存器

;************************************************

IE EQU 00H ;中断使能标志

IRQ EQU 01H ;中断请求标志

TM0 EQU 02H ;Timer0模式寄存器

TL0 EQU 04H ;Timer0装入/记数寄存器低四位

TH0 EQU 05H ;Timer0装入/记数寄存器高四位

PORTA EQU 08H ;Port A数据寄存器

PORTC EQU 0AH ;Port C数据寄存器

TBR EQU 0EH ;查表寄存器

INX EQU 0FH ;间接寻址伪索引寄存器

DPL EQU 10H ;INX数据指针低四位

DPM EQU 11H ;INX数据指针中三位

DPH EQU 12H ;INX数据指针高三位

PACR EQU 18H ;PortA输入/输出控制寄存器

PCCR EQU 1AH ;PortC输入/输出控制寄存器

PWM0 EQU 20H ;位0:选择PWM输出, 位2-1:设置PWM0时钟, 位3:设置PWM0占空比输出模式

PP0L EQU 22H ;PWM0周期低四位

PP0M EQU 23H ;PWM0周期中四位

PP0H EQU 24H ;PWM0周期高二位

PD0L EQU 25H ;PWM0占空比低四位

PD0M EQU 26H ;PWM0占空比中四位

PD0H EQU 27H ;PWM0占空比高二位

;************************************************

; 用户定义寄存器(Bank0)

;************************************************

AC_BAK EQU 30H ;AC值备份寄存器

PA_BAK EQU 31H ;PortA缓冲寄存器

PC_BAK EQU 32H ;PortC缓冲寄存器

TMP_T0 EQU 33H ;临时寄存器用于TIMER0

;--------------------------------------

F_TIMER EQU 34H

;位0=1, 5ms到

FLAG1 EQU 35H

;位0=1, 按键未松开

;位3=1, 需使用I/O口驱动蜂鸣器

;--------------------------------------

KCODE_NEW EQU 36H ;旧的按键码

KCODE_OLD EQU 37H ;新的按键码

KEYS_CT EQU 38H ;按键扫描次数

;--------------------------------------

T5MS_CT1 EQU 39H ;5ms计数器低位

T5MS_CT2 EQU 3AH ;5ms计数器高位

;************************************************

; 程序

;************************************************

ORG 0000H

JMP RESET

RTNI

JMP TIMER0_ISP

RTNI

RTNI

;*******************************************

; 子程序: TIMER0中断服务程序(250us中断)

;*******************************************

TIMER0_ISP:

STA AC_BAK,00H ;备份AC值

ANDIM IRQ,1011B ;清TIMER0中断请求标志

;****************************

; 模块: I/O口驱动蜂鸣器模块

;****************************

PORT_BUZ:

ADI FLAG1,1000B

BA3 PORT_BUZ_NO ;不需要I/O口驱动蜂鸣器,跳转

EORIM PC_BAK,1000B

STA PORTC,00H ;PORTC.3翻转电平

JMP PORT_BUZ_END

PORT_BUZ_NO:

ANDIM PC_BAK,0111B

STA PORTC,00H ;PORTC.3口驱动的蜂鸣器未鸣叫时,输出低电平以保证不漏电 PORT_BUZ_END:

;****************************

J5MS: ;判断5ms到

SBIM T5MS_CT1,01H

LDI TMP_T0,00H

SBCM T5MS_CT2,00H

OR T5MS_CT1,00H

BNZ TIMER0_ISP_END ;5ms未到,跳转

LDI T5MS_CT1,04H

LDI T5MS_CT2,01H ;重新加载5ms计数值

ORIM F_TIMER,0001B ;设置"5ms到"标志

TIMER0_ISP_END:

LDI IE,0100B ;开TIMER0中断

LDA AC_BAK,00H ;恢复AC值

RTNI ;返回

;*******************************************

; 上电程序

;*******************************************

RESET:

NOP

;--------------------------------------

; 清用户寄存器

POWER_RESET:

LDI DPL,00H

LDI DPM,02H

LDI DPH,00H

POWER_RESET_1:

LDI INX,00H

ADIM DPL,01H

LDI TBR,00H

ADCM DPM,00H

BA3 POWER_RESET_2

JMP POWER_RESET_3

POWER_RESET_2:

ADIM DPH,01H

POWER_RESET_3:

SBI DPH,01H

BNZ POWER_RESET_1

SBI DPM,04H

BNZ POWER_RESET_1

;--------------------------------------

; 初始化系统寄存器

SYSTEM_INITIAL:

;TIMER0初始化

LDI TM0,07H ;设置TIMER0预分频为/1

LDI TL0,06H

LDI TH0,00H ;设置中断时间为250us

LDI T5MS_CT1,04H

LDI T5MS_CT2,01H

;I/O口初始化

LDI PORTC,0011B

LDI PCCR,1100B ;设置PORTC.2和PORTC.3为输出口

LDI PORTA,0FH ;打开PORTA上拉电阻

;PWM初始化

LDI PWM0,04H ;设置PWM0时钟为4tosc,占空比输出模式为正常模式

LDI PP0H,01H

LDI PP0M,0FH

LDI PP0L,04H ;设置周期为500us

LDI PD0H,00H

LDI PD0M,0FH

LDI PD0L,0AH ;设置占空比电平为250us,得频率为2KHz,占空比为1/2duty的

;信号

;--------------------------------------

MAIN_PRE:

LDI IRQ,00H

LDI IE,0100B ;打开Timer0中断

;************************************************

MAIN:

ADI F_TIMER,0001B

BA0 HALTMODE ;未到5ms, 跳转

ANDIM F_TIMER,1110B ;清"5ms到"标志

;**************************************

; 按键扫描

;**************************************

KEYSCAN:

LDA PORTA,00H

STA TBR,00H

SBI TBR,0FH

BAZ NO_KEY ;没有扫描到按键按下,跳转

LDA FLAG1,00H

BA0 KEYSCAN_END ;之前的按键未松开,不再扫描按键,跳转

SBI TBR,0111B

BAZ KS_PORT ;PORT键按下,跳转

SBI TBR,1011B

BAZ KS_PWM ;PWM键按下,跳转

JMP KEYSCAN_END

KS_PORT:

LDI KCODE_NEW,0001B ;设置PORT键的键码为01H

JMP KEYSCAN_1

KS_PWM:

LDI KCODE_NEW,0010B ;设置PWM键的键码为02H

KEYSCAN_1:

ADIM KEYS_CT,01H ;扫描次数加一

SBI KEYS_CT,01H

BAZ KEYSCAN_2 ;第一次扫描到该按键,无需与旧按键进行比较,跳转

LDA KCODE_OLD,00H

SUB KCODE_NEW,00H ;新扫描的按键码与上次扫描的按键码比较

BAZ KEYSCAN_2 ;同一个按键,跳转

LDI KEYS_CT,01H ;不是同一按键,将扫描次数置为1,为新按键 KEYSCAN_2:

LDA KCODE_NEW,00H

STA KCODE_OLD,00H ;将新的按键码赋值给旧的按键码

SBI KEYS_CT,0AH

BNC KEYSCAN_END ;扫描未到10次(50ms), 跳转

;已扫描到该按键10次

LDI KEYS_CT,00H ;清按键扫描次数

ORIM FLAG1,0001B ;设置"按键未松开"标志

LDA KCODE_OLD,00H

BA0 KEY_PORT

KEY_PWM: ;PWM键

EORIM PWM0,0001B ;PWM输出开启或关闭,PWM口驱动的蜂鸣器鸣叫或停止

JMP KEYSCAN_END

KEY_PORT: ;PORT键

EORIM FLAG1,1000B ;I/O定时翻转电平开启或停止翻转

;I/O口驱动的蜂鸣器鸣叫或停止

JMP KEYSCAN_END

NO_KEY:

ANDIM FLAG1,1110B ;清"按键未松开"标志

LDI KEYS_CT,00H ;清按键扫描次数

KEYSCAN_END:

;*************************************

HALTMODE:

NOP

HALT ;进入HALT模式

NOP

NOP

JMP MAIN END

蜂鸣器工作原理介绍及并联电阻原理

蜂鸣器工作原理介绍及并联电阻原理 目前市场上广泛使用的蜂鸣器有电磁式与压电式,我司使用的蜂鸣器以压电式为主。 压电式蜂鸣器主要由多谐振荡器,压电蜂鸣片(以压电陶瓷为主,如下图所示),阻抗匹配器及共鸣箱,外壳等组成。其主要原理是以压电陶瓷的压电效应,来带动金属片的震动而发声。 压电陶瓷其实是一能够将机械能和电能互相转换的功能陶瓷材料。 所谓压电效应是指某些介质在受到机械压力时,哪怕这种压力微小得像声波振动那样小,都会产生压缩或伸长等形状变化,引起介质表面带电,便会产生电位差,这是正压电效应。反之,施加激励电场或电压,介质将产生机械变形,产生机械应力,称逆压电效应。如果压力是一种高频震动,则产生的就是高频电流。而高频电信号加在压电陶瓷上时,则产生高频声信号(机械震动),这就是我们平常所说的超声波信号。也就是说,压电陶瓷具有机械能与电能之间的转换和逆转换的功能。压电式蜂鸣器就是运用其将电能转换问机械能的逆压电效应。 压电蜂鸣器的主要应用电路如下图所示,R为阻抗匹配电阻。 当脉冲信号为高电平时,通过三级管导通,则在蜂鸣器两端形成一个VDC的电压,使压电陶瓷产生形变。当脉冲信号为低电平时,通过三极管关断。此时压电陶瓷形变复原,则在其两端产生一个由机械能转换为电能的电压,此时的电压需要通过阻抗匹配电阻进行释放,从而可使蜂鸣器产生一个稳定频率的声音信号。如下图所示,幅值与VDC相等,频率与芯片控制端口频率相等。 压电蜂鸣片

蜂鸣器端口信号主控芯片端口信号 R=1K时蜂鸣器两端信号

蜂鸣器两端,以及当R=1K时,其等效电容的放电时间为46us 蜂鸣器两端,以及当R=100Ω时,其等效电容的放电时间为6.8us

单片机蜂鸣器播放音乐

#include #define uchar unsigned char #define uint unsigned int sbit speaker = P1^7; uint j; uchar m=1; uchar flag; uchar line; uchar code * data song; // 休止符低6 低7 中1 中2 中3 中4 中5 中 6 中7 高 1 低 3 低 5 低 4 高3 uchar code yin[30]={0xFF,0xFF,0xFB,0x90,0xFC,0x0C,0xFC,0x44,0xFC,0xAC,0xFD,0x09,0xFD,0x34,0xF D,0x82,0xFD,0xC8,0xFE,0x06,0xFE,0x22,0xFA,0X15,0XFB,0x04,0xFA,0x67,0xFE,0x85}; uchar code song1[97]={0x34,0x32,0x32,0x34,0x42,0x51, //<<干杯,朋友>> 0x62,0x52,0x42,0x32,0x34,0x04, 0x74,0x74,0x62,0x62,0x64, 0x3c,0x04, 0x64,0x62,0x52,0x42,0x32,0x34, 0x33,0x31,0x32,0x72,0x76,0x72, 0x83,0x81,0x82,0x82,0x82,0x74,0x72, 0x7c,0x04, 0x63,0x61,0x62,0x62,0x64,0x72,0x82, 0x72,0x74,0x72,0x62,0x52,0x42,0x32, 0x42,0x44,0x42,0x42,0x52,0x62,0x52, 0x5c,0x04, 0x64,0x62,0x62,0x64,0x72,0x82, 0x72,0x74,0x72,0x62,0x52,0x42,0x32, 0x42,0x46,0x53,0x41,0x42,0x32, 0x3c,0x04, 0x44,0x48,0x02,0x32, 0x3f, 0x44,0x48,0x02,0x32, 0x3f, 0x34,0x0c, 0xFF}; uchar code song2[46]={0x12,0x52,0x52,0x52,0x56,0x42, //<<兰花草>>

蜂鸣器有关知识

蜂鸣器的简单介绍: 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。 1.分类: 蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器与无源蜂鸣器的区别: 注意:这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。 无源蜂鸣器的优点是: 1). 便宜 2). 声音频率可控,可以做出“多来米发索拉西”的效果 3). 在一些特例中,可以和LED复用一个控制口 有源蜂鸣器的优点是:程序控制方便。 2.蜂鸣器的驱动方式: 由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用1/2duty 的方波信号进行驱动的他激蜂鸣器进行说明。 单片机驱动他激蜂鸣器的方式有两种:一种是PWM 输出口直接驱动,另一种是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。 PWM 输出口直接驱动是利用PWM 输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置PWM 口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开PWM 输出,PWM 输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。比如频率为2000Hz 的蜂鸣器的驱动,可以知道周期为500μs,这样只需要把PWM 的周期设置为500μs,占空比电平设置为250μs,就能产生一个频率为2000Hz 的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。 而利用I/O 定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为2500Hz 的蜂鸣器的驱动,可以知道周期为400μs,

蜂鸣器歌唱原理以及代码

3.3 蜂鸣器播放歌曲原理 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 1)音调的确定 音调就是我们常说的音高。它是由频率来确定的!我们可以查出各个音符所对应的相应的频率,那么现在就需要我们来用51来发出相应频率的声音!我们常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。 2)节拍的确定 一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。 3.3 蜂鸣器播放歌曲程序 #include sbit speaker = P1^5; //定义蜂鸣器端口 unsigned char timer0h, timer0l, time; //-------------------------------------- //单片机晶振采用11.0592MHz

// 频率-半周期数据表高八位本软件共保存了四个八度的28个频率数据code unsigned char FREQH[] = { 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, //高音 234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; //超高音 1234567 // 频率-半周期数据表低八位 code unsigned char FREQL[] = { 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, //低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, //高音 234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16}; //超高音 1234567 //-------------------------------------- //世上只有妈妈好数据表要想演奏不同的乐曲, 只需要修改这个数据表 code unsigned char sszymmh[] = { 6, 2, 3, 5, 2, 1, 3, 2, 2, 5, 2, 2, 1, 3, 2, 6, 2, 1, 5, 2, 1, //一个音符有三个数字。前为第几个音、中为第几个八度、后为时长(以半拍为单位)。 //6, 2, 3 分别代表:啦, 中音, 3个半拍; //5, 2, 1 分别代表:嗦, 中音, 1个半拍; //3, 2, 2 分别代表:咪, 中音, 2个半拍; //5, 2, 2 分别代表:嗦, 中音, 2个半拍; //1, 3, 2 分别代表:哆, 高音, 2个半拍; 6, 2, 4, 3, 2, 2, 5, 2, 1, 6, 2, 1, 5, 2, 2, 3, 2, 2, 1, 2, 1, 6, 1, 1, 5, 2, 1, 3, 2, 1, 2, 2, 4, 2, 2, 3, 3, 2, 1, 5, 2, 2, 5, 2, 1, 6, 2, 1, 3, 2, 2, 2, 2, 2, 1, 2, 4, 5, 2, 3, 3, 2, 1, 2, 2, 1, 1, 2, 1, 6, 1, 1, 1, 2, 1, 5, 1, 6, 0, 0, 0}; //-------------------------------------- void t0int() interrupt 1 //T0中断程序,控制发音的音调 { TR0 = 0; //先关闭T0 speaker = !speaker; //输出方波, 发音 TH0 = timer0h; //下次的中断时间, 这个时间, 控制音调高低 TL0 = timer0l; TR0 = 1; //启动T0 } //-------------------------------------- void delay(unsigned char t) //延时程序,控制发音的时间长度 { unsigned char t1; unsigned long t2;

蜂鸣器的介绍

蜂鸣器的介绍 推荐 一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 一、常规电磁蜂鸣器产品是如何工作的? 无源电磁蜂鸣器工作原理是:交流信号通过绕在支架上的线包在支架的芯柱上产生一交变的磁通,交变的磁通和磁环恒定磁通进行叠加,使钼片以给定的交流信号频率振动并配合共振腔发声。产品的整个频率和声压的响应曲线与间隙值、钼片的固有振动频率(可粗略折射为小钼片的厚度)、外壳(亥姆霍兹共振声腔)频率、磁环的磁强漆包线的线径有直接关系。 二、常规电磁无源蜂鸣器产品由哪些材料组成? 三、常规压电蜂鸣器产品是如何工作的?

蜂鸣器工作基本知识介绍及并联电阻基础知识

压电蜂鸣器的主要应用电路如下图所示, R 为阻抗匹配电阻 蜂鸣器工作原理介绍及并联电阻原理 目前市场上广泛使用的蜂鸣器有电磁式与压电式,我司使用的蜂鸣器以压电式为主。 压电式蜂鸣器主要由多谐振荡器,压电蜂鸣片(以压电陶瓷为主,如下图所示),阻抗匹 配器及共鸣箱,外壳等组成。其主要原理是以压电陶瓷的压电效应, 来带动金属片的震动而发声。 压电陶瓷其实是一能够将机械能和电能互相转换的功能陶瓷材料 质在受到机械压力时,哪怕这种压力微小得像声波振动那样小, 都会产生压缩或伸长等形状变化, 引起介质表面带电,便会产生电位差,这是正压电效应。反之,施加激励电场或电压,介质将产 生机械变形,产生机械应力,称逆压电效应。如果压力是一种高频震动, 则产生的就是高频电流。 而高频电信号加在压电陶瓷上时,则产生高频声信号(机械震动) ,这就是我们平常所说的超声 波信号。也就是说,压电陶瓷具有机械能与电能之间的转换和逆转换的功能。 压电式蜂鸣器就是 运用其将电能转换问机械能的逆压电效应。 压电蜂鸣片 所谓压电效应是指某些介

当脉冲信号为高电平时,通过三级管导通,则在蜂鸣器两端形成一个 陶瓷产生形变。当脉冲信号为低电平时,通过三极管关断。 此时压电陶瓷形变复原, 则在其两端 产生一个由机械能转换为电能的电压, 此时的电压需要通过阻抗匹配电阻进行释放, 从而可使蜂 鸣器产生一个稳定频率的声音信号。如下图所示,幅值与 VDC 相等,频率与芯片控制端口频率 VDC 的电压,使压电

R=1K时蜂鸣器两端信号 蜂鸣器两端,以及当R=1K 时,其等效电容的放电时间 为46us

若将其阻抗匹配电阻去除, 则压电陶瓷两端的电压无法释放, 定的电压,大小与 VDC 相等,具体如下图所示: 蜂鸣器两端,以及 间为6.8us 当R=100 Q 时,其 等效电容的放电时 蜂鸣器两端,以及 电完成 当R=10K 时,其等 效电容不能完全放 这样就会在其两端产生一个稳

几种驱动蜂鸣器的编程示例

几种驱动蜂鸣器的编程示例 以下介绍几种在S3F9454/9444下驱动蜂鸣器的编程示例,供参考 A.第一种,普通IO高低电平驱动法 ;运行环境: S3F9454,Fosc= 3.2MHz无分频 ;P2.0为蜂鸣输出端口 ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US BEEP: LD BTCON,#10100011B ;看门狗禁用 DI PUSH R5 PUSH R6 ;首先配置P2.0为普通推挽输出端口 AND P2CONL,#0FEH OR P2CONL,#02H LD R6,#0FAH ;R6设置输出方波个数,本例为250个(计时62.5MS) ONE_BEEP: LD R5,#27H ;R5为频率发生计时器,本例为近似125US(4KHZ) XOR P2,#01H _LOOP: DEC R5 JR NZ,_LOOP DEC R6 JR NZ,ONE_BEEP LD BTCON,#02H ;恢复看门狗运行 EI POP R6 POP R5 RET ;----------------------------------------------------------- B.利用P2.0配置为T0定时器匹配输出方式产生 ;注: 该方式可用于带多位数码显示扫描的软件中,可有效避免因蜂鸣器 ;输出而造成的数码显示抖动闪烁 ;因定时器T0被分配作为T0匹配输出定时器,所以本例中利用看门狗定时器 ;的实时计时器BTCNT作为数码显示实时扫描计时器 ;R0为蜂鸣时间长短计时器,由主调用程序进行予设置 ;运行环境: S3F9454,Fosc= 3.2MHZ无分频 ;P2.0为蜂鸣输出端口 ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US ;----------------------- BEEP: DI PUSH R1 PUSH T 0CON PUSH T0DATA ;在蜂鸣输出前首先扫描一次数码显示 CALL LED_SCAN OR P2CONL,#03H ;set P2.0 as T0 match output/every 12 5us LD T0CON,#10001000B ;set T0 input cLOCk=Fosc/8 LD T0DATA,#32H LD BTCON,#10100011B ;DISAble Watch-dog run, ;but btcnt clk input fxx/4096= 1.280ms NEXT_BEEP: LD R1,#0AH WAIT_CNT: OR BTCON,

有源与无源蜂鸣器的区别

一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 蜂鸣器的制作 (1)制备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了. (2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上. (3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路. (4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声.有源蜂鸣器和无源蜂鸣器 教你区分有源蜂鸣器和无源蜂鸣器 现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。 图:有源和无源蜂鸣器的外观

单片机驱动蜂鸣器原理与程序学习资料

单片机驱动蜂鸣器原 理与程序

单片机驱动蜂鸣器原理与设计 作者:mcu110 来源:51hei 点击数:12159 更新时间:2007年08月01日【字体:大中小】 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图:

图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 4. 磁铁 5. 底座 6. 引脚 7. 外壳 8. 铁芯 9. 封胶 10. 小铁片 11. 振动膜 12. 电路板 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图:

蜂鸣器介绍

蜂鸣器是如何分类的 BUZZER蜂鸣器的分类: 1、按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路)和无源蜂鸣器(外部驱动); 2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器; 3、按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器); 4、按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。 电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。 由于两种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。 蜂鸣器的工作原理 蜂鸣器的发声原理由振动装置和谐振装置组成,而蜂鸣器又分为无源他激型与有源自激型。 无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置转换为声音信号输出,无源他激型蜂鸣器的工作发声原理图如下: 有源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号,有源自激型蜂鸣器的工作发声原理图如下:

三极管在蜂鸣器用的作用? 三极管的作用是放大声音信号.三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压UB有一个微小的变化时,基极电流IB 也会随之有一小的变化,受基极电流IB的控制,集电极电流IC会有一个很大的变化,基极电流IB越大,集电极电流IC也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。

蜂鸣器驱动程序的设计说明

蜂鸣器驱动 课程设计 专业: xxxxxxxxxxxxxx 班级: xxxxxxxxx 学号: xxxxxxxxx 姓名: xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数................................................................... ...................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试............................................................................. (9)

六.综合设计总结与思考................................................................... .. (10) 一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210 开发板,核部分 Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux核,但实际上人们已经习惯了用Linux来形容整个基于Linux核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块

蜂鸣器音乐工具

51单片机蜂鸣器音乐简谱转换工具-输入简谱就能自动生成音乐程序的工具Music Encode 2013-12-07 14:29:35| 分类:51单片机编程| 标签:|举报|字号大中小订阅 相信您在作蜂鸣器发声实验时肯定为复杂的频率与音调之间的转换而伤脑筋,这里向大家介绍一款工具可以大大简化转换操作,只需要输入简谱就能自动生成音乐播放程序代码。 以下此程序的主界面: 程序范例可以点主界面上的“关于”按钮后就能找到,但是代码也不全,需要加入对音乐程序的调用代码,其它范例里也写的很清楚了,只需要调用Play函数就行了,其调用格式如下: Play(乐曲名,调号,升降八度,演奏速度); 经过实践,此函数的的后三个参数分别设为0,2和350时演奏出的音乐比较符合“原味”,下面给出本站的入门型51实验板结合此工具作的音乐程序: //51单片机播放音乐库文件 /************************************************************************** SOUND PLAY FOR 51MCU COPYRIGHT (c) 2005 BY JJJ. -- ALL RIGHTS RESERVED --

Created: 2005/5/16 Modified: NO Revision: 1.0 *******************************************************************************/ /*说明************************************************************************** 曲谱存贮格式unsigned char code MusicName{音高,音长,音高,音长...., 0,0}; 末尾:0,0 表示结束(Important) 音高由三位数字组成: 个位是表示1~7 这七个音符 十位是表示音符所在的音区:1-低音,2-中音,3-高音; 百位表示这个音符是否要升半音: 0-不升,1-升半音。 音长最多由三位数字组成: 个位表示音符的时值,其对应关系是: |数值(n): |0 |1 |2 |3 | 4 | 5 | 6 |几分音符: |1 |2 |4 |8 |16 |32 |64 音符=2^n 十位表示音符的演奏效果(0-2): 0-普通,1-连音,2-顿音 百位是符点位: 0-无符点,1-有符点 调用演奏子程序的格式 Play(乐曲名,调号,升降八度,演奏速度); |乐曲名: 要播放的乐曲指针,结尾以(0,0)结束; |调号(0-11) : 是指乐曲升多少个半音演奏; |升降八度(1-3) : 1:降八度, 2:不升不降, 3:升八度; |演奏速度(1-12000): 值越大速度越快; ***************************************************************************/ #ifndef __SOUNDPLAY_H_REVISION_FIRST__ #define __SOUNDPLAY_H_REVISION_FIRST__ #include //************************************************************************** #define SYSTEM_OSC 11059200//12000000 //定义晶振频率12000000HZ #define SOUND_SPACE 4/5 //定义普通音符演奏的长度分率,//每4分音符间隔 sbitBeepIO = P3^5; //定义输出管脚 unsigned int code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表 unsigned char code SignTab[7] = { 0,2,4,5,7,9,11 }; //1~7在频率表中的位置 unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 }; unsigned char Sound_Temp_TH0,Sound_Temp_TL0; //音符定时器初值暂存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1; //音长定时器初值暂存 //************************************************************************** void InitialSound(void) { BeepIO = 1; Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; // 计算TL1应装入的初值(10ms的初装值) Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; // 计算TH1应装入的初值 TH1 = Sound_Temp_TH1; TL1 = Sound_Temp_TL1; TMOD |= 0x11; ET0 = 1; ET1 = 0; TR0 = 0;

蜂鸣器驱动程序设计

蜂鸣器驱动 课程设计 专业:xxxxxxxxxxxxxx 班级:xxxxxxxxx 学号:xxxxxxxxx 姓名:xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数......................................................................................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试 (9) 六.综合设计总结与思考 (10)

一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210开发板,内核部分Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块 PWM(脉冲宽度调制)简单的讲是一种变频技术之一,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。来看看我们实际生活中的例子,我们的电风扇为什么扭一下按扭,风扇的转速就会发生变化;调一下收音机的声

和弦音蜂鸣器

前言:现在一些带按键显示控制面板的家电(比较常见的是柜式空调)在按键操作的时候会有悦耳的和弦 音发出,特别是开关机或操作上下键时会有不同变调的和弦音,相比普通的嘀嘀声给人更愉悦的操作体验。
1.控制方式说明
此处以型号为 SH2225T2PA 的蜂鸣器(谐振频率 2.6KHz)为例。蜂鸣器模块有两个驱动引脚与 MCU 相连,一个是振荡信号输入引脚,由 MCU 提供相应频率的方波信号驱动蜂鸣器发声,一个是供电控制端, 供电切断后蜂鸣器靠电解电容放电维持其发声,会有音量渐渐变小的效果。
原理图如下所示, MC9 为供电控制端,MC8 为振荡信号输入端。MC9 为高电平时,三极管 Q4 导通, 然后 Q2 导通,蜂鸣器开始供电,同时电容 CD2 充电。若 MC8 有一定频率的方波信号发出,则蜂鸣器可 发出鸣叫。若此时先关掉供电,即 MC9 置低电平,MC8 依然发出方波信号,则蜂鸣器可依靠 CD2 放电 发出声音,但随着电容电量减少,音量会逐渐减小,形成蜂鸣声渐隐的和弦音效果。要实现变调的效果, 则可通过短时间内切换发出几种不同频率的蜂鸣声来实现。

以下是 3 种比较典型的和弦音的实现细节:(符号说明:Tf:频率给定持续时间(ms) Tv:电压给定持 续时间(ms) F:输出频率(KHz))
单声和弦音:短暂鸣响后音量渐隐
?
F=2.6,Tv=200,Tf=1000
开机和弦音:三升调,按音调分 3 个阶段
1. F=2.3,Tv=200,Tf=200 2. F=2.6,Tv=200,Tf=200 3. F=2.9,Tv=100,Tf=2100
关机和弦音:三降调,按音调分 3 个阶段
1. F=2.9,Tv=200,Tf=200 2. F=2.6,Tv=200,Tf=200 3. F=2.3,Tv=100,Tf=2100
2.编程实例
MCU:STM8S903K3 开发环境:STVD 4.1.6+Cosmic 4.2.8
/* buzzer.h 文件 */
?
[Copy to clipboard]View Code C
1 2 3 4 5 6 7 8 9
#ifndef __BUZZER_H #define __BUZZER_H #include "common.h" #include "beep.h" typedef enum { MONO = 0, //单音

蜂鸣器

蜂鸣器驱动模块 在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。这里对中颖电子的单片机在蜂鸣器驱动上的应用作一下描述。 1.驱动方式 由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用1/2duty的方波信号进行驱动的他激蜂鸣器进行说明。 单片机驱动他激蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。 PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置PWM口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开PWM输出,PWM输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。比如频率为2000Hz的蜂鸣器的驱动,可以知道周期为500μs,这样只需要把PWM的周期设置为500μs,占空比电平设置为250μs,就能产生一个频率为2000Hz的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。 而利用I/O定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的I/O口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为1/2duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。 2.蜂鸣器驱动电路 由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。 蜂鸣器的驱动电路有很多种,这里举两个常用的例子,也是建议使用的驱动电路: 1.1.无源压电式蜂鸣器、无源电磁式蜂鸣器(他激)

蜂鸣器电路及其原理

蜂鸣器电路及其原理 蜂鸣器是一种一体化结构的电子讯响器,在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。蜂鸣器采用直流电压供电,其能发出单调的或者某个固定频率的声音,如嘀嘀嘀,嘟嘟嘟等。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,通常在计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件使用。下面为大家介绍的是蜂鸣器的工作原理。 蜂鸣器的工作原理 电路原理图使用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/2duty 的信号,所以一个周期内 的高电平和低电平的时间宽度都为250μs。软件设计上,将根据两种驱动方式来进行说明。 a)蜂鸣器工作原理:PWM 输出口直接驱动蜂鸣器方式 由于PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出波形进行设置。 首先根据SH69P43 的PWM 输出的周期宽度是10 位数据来选择PWM 时钟。系统使用4MHz 的晶振作为主振荡器,一个tosc 的时间就是0.25μs,若是将PWM 的时钟设置为tosc 的话,则蜂鸣器要求的波形周期500μs 的计数值为

有源与无源蜂鸣器的介绍及识别

有源与无源蜂鸣器的介绍及识别(驱动/电路) 一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 蜂鸣器的制作 (1)制备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了. (2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上. (3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路. (4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声.有源蜂鸣器和无源蜂鸣器 教你区分有源蜂鸣器和无源蜂鸣器

相关主题
文本预览
相关文档 最新文档