首页>>科技 >>内容

单片机驱动蜂鸣器电路,如何使用单片机驱动蜂鸣器以及其驱动原理

发布时间:2023-11-07 20:52:16编辑:温柔的背包来源:

单片机驱动蜂鸣器电路,如何使用单片机驱动蜂鸣器以及其驱动原理

很多朋友对单片机驱动蜂鸣器电路,如何使用单片机驱动蜂鸣器以及其驱动原理不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

蜂鸣器是一种集成结构的电子蜂鸣器。本文介绍了如何用单片机驱动蜂鸣器。它被广泛用作计算机、打印机、复印机、警报器、电话和其他电子产品中的发声装置。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器。

电磁蜂鸣器由振荡器、电磁线圈、磁铁、振膜和外壳组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振膜在电磁线圈和磁铁的相互作用下周期性振动发声。

压电蜂鸣器主要由多谐振荡器、压电蜂鸣器、阻抗匹配器、谐振盒和外壳组成。多谐振荡器由晶体管或集成电路组成。接通电源(1.5~15V DC工作电压),多谐振荡器振动,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣器发声。下面是电磁蜂鸣器的外形图和结构图。电磁蜂鸣器物理图:图1电磁蜂鸣器结构示意图:图2电磁蜂鸣器内部组成:

1.防水贴2。线轴3。线圈4。磁铁5。基数6。引脚7。壳8。铁芯9。密封胶10。小铁片11。振动膜12。电路板一、电磁蜂鸣器驱动原理。

蜂鸣器的发声原理是电流通过电磁线圈,使电磁线圈产生磁场驱动振膜发声,所以需要一定的电流来驱动。单片机的IO引脚输出电流小,单片机输出的TTL电平几乎不能驱动蜂鸣器,需要增加电流放大电路。S51增强型单片机实验板通过三极管C8550放大驱动蜂鸣器,原理图如下图3所示:S51增强型单片机实验板蜂鸣器驱动原理图:图3。

如图所示,蜂鸣器的阳极接VCC (+5V)电源,蜂鸣器的阴极接三极管的发射极E,三极管的基极B经过限流电阻R1后由微控制器的P3.7引脚控制。P3.7输出高电平时,三极管T1关断,没有电流流过线圈,蜂鸣器不响;当P3.7输出低电平时,三极管导通,使蜂鸣器的电流形成回路,发出声音。所以我们可以通过程序控制P3.7引脚的电平来使蜂鸣器发声并关闭。

通过在程序中改变单片机P3.7脚输出波形的频率,可以调节控制蜂鸣器的音调,产生不同音色和音调的声音。另外,通过改变P3.7输出电平的高低电平占空比,可以控制蜂鸣器的声音大小,这一点可以通过编程实验来验证。二、蜂鸣器专栏接下来我们就给出几个单片机驱动的蜂鸣器的编程和电路设计的简单专栏。

1、简易蜂鸣器实验程序:该程序通过输出一个音频范围在P3.7的方波来驱动实验板上的蜂鸣器发出蜂鸣声,其中延时子程序的作用是使输出方波的频率在20KHZ以下,在人耳的听觉能力范围内。没有这个延迟程序,输出频率将大大超过人耳的听觉能力,我们将听不到声音。改变延迟常数可以改变输出频率,调整蜂鸣器的音调。

实验中可以把#228换成其他值,听蜂鸣音的变化。

ORG 0000H AJMP MAIN跳转到主程序ORG 0030h main:CPL p 3.7;蜂鸣器驱动电平反转LCALL延迟;延迟AJMP MAIN重复循环延迟:MOV R7,# 228;延时子程序,改变延时常数可以改变蜂鸣器发出的音调de1:DJ nzr 7,de1 ret end。

2、倒车警告声实验步骤:我们知道,各种货车、集装箱车倒车时,会发出蜂鸣警告声,同时警告黄灯会同步闪烁,提醒后面的人或车辆注意。该实验程序可以实现倒车报警的功能,实验板上的蜂鸣器发出报警声,同时实验板上的P1.2和P1.5两个黄色led发出黄色报警光。ORG 0000H AJMP START跳转到初始化程序ORG 0033HSTART:

MOV SP,# 60HSP初始化MOV P3,# 0FFH端口初始化MAIN: ACALL声音;蜂鸣器鸣响ACALL YS500M延时AJMP主音:MOV P1,# 11011011B点亮两个黄色警告发光二极管MOV R2,# 200;声音200周期sn D1:CLR p 3.7;输出低电平T1导通,蜂鸣器鸣响ACALL YS1ms延时SETB p 3.7;输出高电平T1关断,蜂鸣器不响ACALL YS1ms迪雷DJNZ R2,SND1 MOV P1,# 0FFH关闭黄色警告灯RET

YS1ms: 1 millisecond delay subroutine MOV R0, #2YL1: MOV R1, # 250; Changing the value of R0 can change the sound frequencies DJNZ R1, $ DJNZ R0, YL1, and Retis 500m: 500 millisecond delay subroutines MOV R0, #6YL2: MOV R1, #200YL3: MOV R2, # 250DNZR2, $ DNZR1, YL3DNZR0, YL2 RET END.

3、“叮咚”电子门铃实验方案:普通家用电子门铃在有客人来访时,会在室内发出“叮咚”的声音。这个实验程序模拟了电子门铃的发音,当我们按下实验板上的K1键时,蜂鸣器会发出“叮咚”的音乐声音,是一个比较实用的程序。“丁咚”电子门铃实验ASM源程序:“丁咚”电子门铃C语言源程序:ORG 0000H LJMP START跳转到初始化程序ORG 000BH。

LJMP PGT0跳转到T0中断服务程序开始:obu f1 EQU 30H;初始化程序obu F2 eq 31h obu F3 eq 32h obu F4 eq 33h flag bit 00 hs top bit 01h k1 bit p 3.2;将按钮K1定义为门铃按钮MOVTMOD,# 02H定时器初始化MOV TH0,#06H MOV TL0,# 06H SETB ET0;启动定时器到SETB EA;启动通用中断主程序:主程序JB K1,MAIN;检测K1按钮LCALL YS10M延时去抖JB K1,主SETB TR0;按钮有效。

MOV P1,# 00H点亮按钮指示灯MOVOBUF1、# 00hMOVOBUF2、# 00hMOVOBUF3、# 00hMOVOBUF4、# 00hCLR FLAGB CLR STOPB JNB STOPB、$ MOVP1、# 0fFH LJMP main“丁咚”发出后,返回复检按钮YS10M:10ms延时子程序movr6,# 20d1: movr7,# 248ddjnzr7,$ djnzr6,D1 ret pgt 0:定时器T0中断服务程序INC OBUF3中断服务程序里有一个“丁咚”音:MOV A,OBUF3 CJNEA,# 100,下一个MOV OBUF3,# 00h。

位stopb位flagbvoid main(void){无符号char i,j;TMOD=0x 02;//定时器T0初始化TH0=0x 06 TL 0=0x 06 et 0=1;EA=1;//允许总中断while(1){if(P3_2==0) //检测K1按键{ P1=0x 00;for(I=10;i0;I-)for(j=248;j0;j-);if(P3 _ 2==0){ obu f1=0;obu F2=0;obu F3=0;flagb=0;stopb=0;TR0=1;//启动定时器T0,发出"叮咚"声while(stopb==0);P1=0x ff;}}}}void t0(void)中断一使用0 { obu F3 if(obu F3==2000){ obu F3=0;if(flagb==0){ flagb=~ flagb;} else { stopb=1;TR0=0;

} } if(flagb==0){ obuf 2;if(obu F2==3){ obu F2=0;P3 _ 7=~ P3 _ 7;} } else { obu 1 if(obu f1==4){ obu f1=0;P3 _ 7=~ P3 _ 7;}}}

以上知识分享希望能够帮助到大家!