wang1jin带您从零学单片机(蜂鸣器)
单片机蜂鸣器工作原理单片机驱动蜂鸣器原理与编程

单片机蜂鸣器工作原理单片机驱动蜂鸣器原理与编程蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
下面是电电磁式蜂鸣器实物图:磁式蜂鸣器的外形图片及结构图。
电磁式蜂鸣器结构示意图:图1电磁式蜂鸣器内部构成:1.防水贴纸2.线轴3.线圈4.磁铁图25.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引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
单片机蜂鸣器电路原理

单片机蜂鸣器电路原理咱先来说说蜂鸣器是个啥。
蜂鸣器呀,就像是一个小小的音乐精灵,能发出各种声音。
它有两种类型哦,一种是有源蜂鸣器,一种是无源蜂鸣器。
有源蜂鸣器呢,就像是一个自带电池的小喇叭(哈哈,当然不是真的带电池啦,就是个比喻),只要给它通上电,它就能自己欢快地唱歌啦,发出固定频率的声音。
无源蜂鸣器就有点像个小懒虫,你得给它特定频率的信号,它才肯发出声音,就像你得给它个特定的指令,它才知道要怎么唱歌。
那单片机和蜂鸣器是怎么凑到一块儿的呢?单片机就像是一个超级大脑,它可以控制很多东西,蜂鸣器就是它控制的小跟班之一。
在电路里,单片机要给蜂鸣器发送信号。
比如说,对于无源蜂鸣器,单片机要通过一个引脚来发送方波信号。
这个方波信号的频率就决定了蜂鸣器发出声音的高低。
就像你唱歌的时候,高音和低音是不一样的频率,蜂鸣器也是这样。
如果单片机发送的频率高,蜂鸣器就发出比较尖锐的声音;频率低呢,声音就比较低沉。
咱们再看看电路连接的部分。
一般来说,会有一个限流电阻。
这个限流电阻可重要啦,就像是一个交通警察,控制着电流的大小。
如果没有这个限流电阻,电流就可能像脱缰的野马,一下子冲进蜂鸣器里,把蜂鸣器给弄坏了。
而且,电路的连接方式也有讲究呢。
要确保连接正确,就像拼图一样,每一块都要放在正确的位置。
如果接错了,蜂鸣器可能就不响了,或者发出一些奇怪的声音,就像一个人唱歌跑调跑得十万八千里。
还有哦,电源的选择也很关键。
电源就像是蜂鸣器的能量源泉。
如果电源电压不合适,蜂鸣器也不能好好工作。
就像你人要是没吃饱饭,就没力气干活一样,蜂鸣器没有合适的电源,也没力气发出好听的声音。
当我们在程序里控制蜂鸣器的时候,那更是像在指挥一场小音乐会。
我们可以让蜂鸣器发出简单的滴滴声,就像在给我们发送简单的信号,比如说报警或者提示。
也可以通过巧妙的编程,让蜂鸣器演奏出一小段旋律呢。
想象一下,一个小小的单片机和蜂鸣器组合,就能演奏出像小星星这样的简单曲子,是不是超级酷?这就像是我们用魔法棒(其实就是代码啦)指挥着蜂鸣器这个小音乐家。
51单片机项目教程项目 5 蜂鸣器实验

图5- 9蜂鸣器实物结果
当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和 RXD脚分别用于发送和接收数据。
5.2技术准备
方式1发送时,数据位由TXD端输出,发送一帧信息为10位:1位起始 位0,8位数据位(先低位)和1位停止位1。当CPU执行一条数据写 SBUF的指令,就启动发送。发送开始时,内部发送控制信号变为有 效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期, 便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部 发送完毕后,中断标志位TI置1。 方式1接收时(REN = 1),数据从RXD(P3.1)引脚输入。当检测到 起始位的负跳变,则开始接收。当一帧数据接收完毕后,同时满足以 下两个条件,接收才有效。 (1)RI = 0,即上一帧数据接收完成时,RI = 1发出的中断请求已被 响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 (2)SM2 = 0或收到的停止位 = 1(方式1时,停止位已进入RB8), 则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标 志RI置“1”。
5.2技术准备
5.2.2 了解实验板蜂鸣器电路
图5- 3蜂鸣器电路
5.2技术准备
5.2.3 蜂鸣器驱动电路
蜂鸣器驱动电路如图5-4所示。
图5- 4蜂鸣器驱动电路
5.2技术准备
5.2.4串行口的结构
单片机串口结构如图5-5所示。有两个物理上独立的接收、发送缓冲器 SBUF(属于特殊功能寄存器),可同时发送、接收数据。控制寄存器共 有两个:特殊功能寄存器SCON和PCON。发送和接收引脚分别是TXD (P3.0)和RXD(P3.1)。
SM0 0 0 1 1 SM1 0 1 0 1 工作 方式 0 1 2 3 功能简介 移位寄存器 8位UART 9位UART 9位UART 比特率 OSC/12 可变 OSC/32或 OSC/64 可变
51单片机通过按键控制蜂鸣器发生详解

单片机开发报告院系:电子工程学院专业:自动化班级:自动化1401学号:姓名:赵越指导老师:刘星光2018年01 月04 日一.系统任务按键控制蜂鸣器发声二.电路原理图三.程序设计内容“叮咚”电子门铃实验程序:常见的家用电子门铃在有客人来访时候,如果按压门铃按钮时,室内会发出“叮咚”声音,本实验程序模拟电子门铃的发音,当我们按压实验板上的K1按钮时候,蜂鸣器发出“叮咚”音乐声,是一个比较实用的程序。
使用无源蜂鸣器输出7个基本音阶声音是由物体振动所产生的。
只是由于物体的材料以及振幅、频率不同,而产生不同的声音。
声音的响度是由振幅决定的,而音调则是由频率决定的,那么我们只需要控制物体振动的频率,就可以发出固定的声调。
五.汇编程序ORG 0000HAJMP STARTORG 000BHINC 20H ;中断服务,中断计数器加1MOV TH0,#0D8HMOV TL0,#0F0H 12M晶振,形成10毫秒中断RETIORG 001BHLJMP INTT1 ;跳转到T1中断服务程序START: MOV DPTR,#00H ;初始化程序MOV A,#00HOBUF1 EQU 30HOBUF2 EQU 31HOBUF3 EQU 32HOBUF4 EQU 33HFLAGB BIT 00HSTOPB BIT 01HMOV SP,#50HMOV TH0,#0D8HMOV TL0,#0F0HMOV TMOD,#21HMOV TH1,#09HMOV TL1,#09HMOV IE,#8AHAJMP LOOPLOOP: JNB P3.2,MUSIC0JNB P3.1,MAINAJMP LOOPMAIN:JB P3.1,MAIN ;检测p3.1按钮LCALL YS10M ;延时去抖动JB P3.1,MAINSETB TR1 ;按钮有效MOV OBUF1,#00HMOV OBUF2,#00HMOV OBUF3,#00HMOV OBUF4,#00HCLR FLAGBCLR STOPBJNB STOPB,$AJMP START ;发出“叮咚”完毕,返回重新检测按钮YS10M: ;10ms延时子程序MOV R6,#20MOV R7,#100DJNZ R7,$DJNZ R6,D1RETTING: AJMP STARTINTT1: ;定时器T1中断服务程序INC OBUF3 ;中断服务程序中发出一声“叮咚”响声MOV A,OBUF3CJNE A,#100,NEXTMOV OBUF3,#00HINC OBUF4MOV A,OBUF4CJNE A,#20,NEXTMOV OBUF4,#00HJB FLAGB,PGSTPCPL FLAGBAJMP NEXTPGSTP:SETB STOPBCLR TR1LJMP INT0RETJB FLAGB,SOU2INC OBUF2MOV A,OBUF2CJNE A,#04H,INT0RETMOV OBUF2,#00HCPL P1.5LJMP INT0RETSOU2:INC OBUF1MOV A,OBUF1CJNE A,#05H,INT0RETMOV OBUF1,#00HCPL P1.5INT0RET:RETIMUSIC0: JB p3.2,MUSIC0LCALL YS10MJB p3.2,MUSIC0NOPMOV DPTR,#DAT 表头地址送DPTRMOV 20H,#00H ;中断计数器清0MOV B,#00H ;表序号清0 MAIN2: JNB P3.3,TINGCLR AMOVC A,@A+DPTR ;查表取代码JZ END0 ;是00H,则结束CJNE A,#0FFH,MUSIC5LJMP MUSIC3MUSIC5:NOPMOV R6,AINC DPTRMOV A,BMOVC A,@A+DPTR ;取节拍代码送R7MOV R7,ASETB TR0 ;启动计数MUSIC2:NOPCPL P1.5MOV A,R6MOV R3,ALCALL DELMOV A,R7CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否;不等,则继续循环MOV 20H,#00H ;等于,则取下一代码INC DPTRINC BLJMP MAIN2MUSIC3: ;休止100毫秒NOPCLR TR0MOV R2,#0DHMUSIC4:NOPMOV R3,#0FFHLCALL DELDJNZ R2,MUSIC4INC DPTRLJMP MAIN2END0:NOPMOV R2,#0FFH ;歌曲结束,延时MUSIC6:MOV R3,#00HLCALL DELDJNZ R2,MUSIC6CLR TR0LJMP LOOPDEL:NOPDEL3:MOV R4,#03HDEL4:NOPDJNZ R4,DEL4NOPDJNZ R3,DEL3RETDENG1: MOV R3,#64HDJNZ R3,$AJMP MAINDAT:DB 30h,30h,26h,26h,20h,20h,1ch,1ch,1ah,1ah,18h,18h,00hEND六、程序下载及调试步骤:1.点击translate 按钮预编译2.点击build 按钮编译3.点击rebuild 按钮编译所有目标4.打开普中烧录软件四.程序流程图。
【傻瓜51单片机讲义】第11课蜂鸣器演奏继电器驱动实验教学.ppt

1.2 三极管的输出特性曲线
1.3 三极管工作区的判断
2. 继电器驱动电路
2.2 续流二极管
在三极管截止的瞬间,由于线圈中的电流不能突 变为零,继电器线圈两端会产生一个较高电压的 感应电动势,线圈产生的感应电动势则可以通过 二极管IN4148释放,从而保护了三极管免被击穿, 也消除了感应电动势对其他电路的干扰,这就是
二极管D11的保护作。
继电器驱动实验验证
3. 蜂鸣器工作原理
3.1 常用蜂鸣器分类
1.有源蜂鸣器,内部含有振荡电路。通过电流
就响。响声不变。
2.无源蜂鸣器,内部没有振荡电路。需要用方
波来驱动。
3.2 PNP 三极管应用电路
4. 蜂鸣程序分析和实验演示
蜂鸣器20Hz~20KHz蜂鸣程序分析 蜂鸣器20Hz~20KHz蜂鸣实验演示。
一气呵成学51
姜老师
主 讲
第11课 蜂鸣器继电器教学实验
1.
三极管工作原理。
2.
3. 4.
继电器驱动电路分析。
蜂鸣器工作原理。 实际操作,验证程序。
1. 三极管工作原理
1.1 三极管常用的两种用途:
1.数字电路中 开关管 工作在截止区和饱和区。 2.模拟电路中 放大管 工作在放大区。
蜂鸣器演奏歌曲程序。
蜂鸣器演奏歌曲实验演示。
一气呵成学51
51单片机驱动无源蜂鸣器

51单片机驱动无源蜂鸣器在学习过程中遇到如下例题:8 个发光管由上至下间隔1s 流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
流水灯的程序相对我个人来说比较简单,但是蜂鸣器有些难度,正常给I/0 口一个信号,蜂鸣器既然不响,后经查证是无源蜂鸣器;无源的蜂鸣器,就要通过IO 口输出振荡信号来驱动蜂鸣器蜂鸣器简介:蜂鸣器根据结构不同分为压电式蜂鸣器和电磁式蜂鸣器;而两种蜂鸣器又分为有源蜂鸣器和无源蜂鸣器,这里的源特指振荡源;有源蜂鸣器直接加电就可以响起,无源蜂鸣器需要我们给提供振荡源。
理想的振荡源为一定频率的方波。
由于系统采用了无源蜂鸣器,所以需要我们通过编程来控制I/0 口的翻转来产生一定频率的方波信号。
本文采用默认频率0.5KHZ 的标准方波。
可以算出周期T = 2ms 脉宽t = 1ms,因此我们可以通过简单的延时函数延时1ms。
然后控制P3.7 口的电平高低产生0.5KHZ 的方波信号;本程序只是通过简单延时达到驱动蜂鸣器的效果。
#include sbit buzzer = P1 ;void delayms(unsigned int xms)//延时函数,延时xms{unsigned int i , j;for(i = 0; i#include#define uint unsigned int#define uchar unsigned charsbit buzzer=P1 ;sbitD1=P1;void delay(uint z)//延时1ms{uint x,y;for(x=z;x>0;x--){for(y=0;y<114;y++){}}}fasheng() //发声子程序{unsigned int a,x;for (a=0;a<456;a++){buzzer=!buzzer;for(x=0;x<45;x++); //45 为蜂鸣器发声频率}}void main(){while (1){D1=0;fasheng();D1=1;delay(200);}}tips:感谢大家的阅读,本文由我司收集整编。
从零开始学单片机(八)蜂鸣器唱歌

1,2,2, 1,2,2, 5,2,2, 5,2,2, 6,2,2, 6,2,2, 5,2,4, 4,2,2, 4,2,2, 3,2,2, 3,2,2, 2,2,2, 2,2,2, 1,2,4, 5,2,2, 5,2,2, 4,2,2, 4,2,2, 3,2,2, 3,2,2, 2,2,4, 5,2,2, 5,2,2, 4,2,2, 4,2,2, 3,2,2, 3,2,2, 2,2,4, 1,2,2, 1,2,2, 5,2,2, 5,2,2, 6,2,2, 6,2,2, 5,2,4, 4,2,2, 4,2,2, 3,2,2, 3,2,2, 2,2,2, 2,2,2, 1,2,4 }; //定时器计时初值,高八位,代表不同音符的频率 code unsigned char FREQH[]={ 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC, 0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;
delay(duration); }
{ unsigned int i; unsigned char j=80; for(i=0; i while(j--); TR0=0; } void song() { TH0 = byteTH0; TL0 = byteT0L; TR0 = 1;
ET0=1; while(1) { step=0; while(step<126) { index = music[step] + 7 * music[step+1] - 1; byteTH0 = FREQH[index]; byteT0L = FREQL[index]; duration = music[step+2]; step += 3; song();
51单片机蜂鸣器代码理解

51单片机蜂鸣器代码理解1.引言1.1 概述概述:蜂鸣器是一种广泛应用于电子设备中的声音输出装置,它通过控制某个频率的电信号使蜂鸣器发出特定的声音。
而51单片机,则是一种常见的单片机芯片,具有广泛的应用领域。
本文将主要探讨51单片机蜂鸣器的代码理解和应用。
通过对其基本原理的概述以及相关代码的解析,希望读者能够深入理解51单片机蜂鸣器的工作原理和实现方式。
在第二部分中,我们将介绍单片机蜂鸣器的基本原理。
包括如何通过单片机控制蜂鸣器的电信号频率和时长,从而实现不同的声音效果。
接着,在第二点中,我们将详细解析51单片机蜂鸣器的代码。
通过对代码的分析,读者可以了解到如何使用51单片机的引脚功能和定时器功能来控制蜂鸣器。
最后,在结论部分,我们将对所述内容进行总结,并展望51单片机蜂鸣器在未来的应用前景。
蜂鸣器作为一种重要的声音输出装置,具有广泛的应用前景,可以应用于报警系统、提醒装置等领域。
通过本文的阅读,读者将能够全面了解51单片机蜂鸣器的工作原理和代码实现方式,为相关领域的应用开发提供参考和指导。
让我们开始探索吧!1.2 文章结构文章结构的部分主要介绍了本文的组织和分类方式,以帮助读者更好地理解文章的内容和思路。
本文按照以下结构进行组织:1. 引言部分:介绍了文章的概述、结构和目的。
通过引言部分,读者可以初步了解到本文的内容和主题,并对文章的结构和目的有一个整体的认识。
2. 正文部分:主要分为两个小节,分别是"单片机蜂鸣器的基本原理"和"51单片机蜂鸣器代码解析"。
2.1 单片机蜂鸣器的基本原理:该部分将详细介绍单片机蜂鸣器的基本工作原理,包括蜂鸣器的构成和工作原理,以及单片机如何控制蜂鸣器发出指定的声音。
2.2 51单片机蜂鸣器代码解析:该部分将对51单片机蜂鸣器的代码进行解析,包括如何初始化引脚、设置定时器和中断等相关代码。
通过对代码的逐行解析和说明,读者可以更加深入地理解代码的功能和实现原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技术支持:/bbs
单片机如何输出频率
为了让单片机发出不同频率的声音,我 们采用定时中断来计算延时时间,我们只需 将定时器预置不同的定时值就可实现不同时 间的定时。那么怎样确定一个频率所对应的 定时器的定时值呢?以标准音高A为例: A的频率f=440Hz,其对应的周期为: T=1/f=1/440=2272us
主 讲:wang1jin
技术支持:/bbs
单片机如何输出频率
单片机控制蜂鸣器的波形图,通 过对端口P17循环的置位、清零来达到输出 固定频率波形,相对于A音频率440Hz图 T=2272us,那么 t=T/2=2272/2=1136us 所以,我们只要在程序中将P17置为高电 平,延时1136us,再置为低电平,延时 1136us,如此循环,就可以得到440Hz频 率的声音。 这个延时,可以用定时器中断来做,假设单片机晶振频率为12MHz,以 定时器工作方式1来做定时中断,可以得到定时器计数器初值为 TH = (65536 – 1136 ) /256 =0xFB TL = (65536 – 1136 )%256 =0x90
主 讲:wang1jin
技术支持:/bbs
音乐中的音调
以1—i八音区为例,12个半音是: 1—#1、#1—2、2—#2、#2—3、3— 4、4—#4,#4—5、5一#5、#5—6、 6—#6、#6—7、7—i。这12个音阶的分 度基本上是以对数关系来划分的。如果我 们只要知道了这十二个音符的音高,也就 是其基本音调的频率,我们就可根据倍频 程的关系得到其他音符基本音调的频率。
主 讲:wang1jin
技术支持:/bbs
连音,顿音,符点
音乐中较为常见的还有连音、顿音、符 点等,连音就是乐谱上用连线连起来的 音,它是用连线来标记的,表示连线内不 同音高的音要奏的连贯,即中间不需要停 顿。顿音是用三角符标记在音符的上面, 在演奏或表演上要表现得短促而又轻巧有 弹性。符点就是记在音符右边的小圆点, 表示增加前面音符时值的一半,带符点的 音符叫符点音符。
主 讲:wang1jin
技术支持:/bbs
音乐基础
其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。 1 、2的时长为四分音符的一半,即为八分音符长,3、4的 时长为八分音符的一半,即为十六分音符长,5的时长为四 分音符的一半,即为八分音符长,6的时长为四分音符长。 那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说 明,一拍的时长大约为400~500ms 。我们以一拍的时长为 400ms为例,则当以四分音符为节拍时,四分音符的时长就 为400ms,八分音符的时长就为200ms,十六分音符的时长 就为100ms。
主 讲:wang1jin
技术支持:/bbs
音符频率及定时器初值对照表
主 讲:wang1jin
技术支持:/bbs
单片机频率音频计算方法 从上图中可以看出,高、中、低音的音 符频率存在倍频关系,比如1其低音频率是 262Hz,中音频率是523Hz,中音是低的2 倍频率,高音频率是1045Hz,高音又是中 音的2倍频率,所以,我们可以根据其中的 12个音符频率来推算出其它的音符频率。 这种可推算的频率关系有利于我们在程序 采用运算方法来确定音符的频率。
主 讲:wang1jin
技术支持:/bbs
音乐基础知识
A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表 示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 除了这些标准间外,还有5个半音,#1B2-#6B7。 升C调:1=#C,也就是降D调:1=BD;277(频率) 升D调:1=#D,也就是降E调:1=BE;311 升F调:1=#F,也就是降G调:1=BG;369 升G调:1=#G,也就是降A调:1=BA;415 升A调:1=#A,也就是降B调:1=BB。466,
主 讲:wang1jin
技术支持:/bbs
主 讲:wang1jin
技术支持:/bbs
实例练习1
实例练习1:4*4电子琴程序的实现。利用 WJ-V4.0音。松开按键声音即停 止。实现简单的电子琴功能。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的工作原理
蜂鸣器发声原理是电流通过电磁线圈, 使电磁线圈产生磁场来驱动振动膜发声 的,因此需要一定的电流才能驱动它,单 片机IO引脚输出的电流较小,单片机输出 的TTL电平基本上驱动不了蜂鸣器,因此需 要增加一个电流放大的电路。实验板通过 一个三极管Q1来放大驱动蜂鸣器。
主 讲:wang1jin
技术支持:/bbs
音符演奏长度控制实现
在单片机上控制一个音符唱多长可采用循环延 时的方法来实现。首先,我们确定一个基本时长 的延时程序,为了使这个时间更精确,使用定时 器来实现,设定定时器为10ms中断一次,那么, 我们需要多少延长时间就延时多少次中断。比如 说十六分音符的时长为100ms,八分音符的时长 就为200ms,那么,对于一个音符,如果它为十 六分音符,则只需产生10次中断,延时时间就刚 好是100ms,如果它为八分音符,则只需产生20 次中断,依次类推。
主 讲:wang1jin
技术支持:/bbs
音乐基础
所谓1=A,就是说,这首歌曲的“导”要 唱得同A一样高,人们也把这首歌曲叫做A 调歌曲,或叫“唱A调”。1=C,就是说,这 首歌曲的“导”要唱得同C一样高,或者说“这 歌曲唱C调”。同样是“导”,不同的调唱起来 的高低是不一样的。
主 讲:wang1jin
技术支持:/bbs
有源和无源蜂鸣器的区别
实验板中,单片机P17脚输出接Q1基极,通过 控制Q1导通或截止来控制蜂鸣器上是否有电流,从 而发出声音,要用单片机控制蜂鸣器发出不同频率的 声音,最好采用无源的蜂鸣器,如果用有源蜂鸣 器,可以会因为二种不同频率声音(有源蜂鸣器本 身固有发音频率与单片机驱动频率)互相叠加,造 成效果混乱、发音不清。 不过为了照顾初学者,我们的开发板上的是有源 的蜂鸣器.(因为有源的驱动很简单,无源的则很复杂.)
Wang1jin 带您从零学单片机
第 6 章:蜂鸣器部分
配套开发板:WJ-V4.0 AVR+51开发板
主 讲:wang1jin
技术支持:/bbs
本章目录:
Ø 蜂鸣器简介 Ø 蜂鸣器硬件结构与原理 Ø 蜂鸣器驱动方法 Ø 单片机如何输出一定频率 Ø 蜂鸣器唱歌原理 Ø 蜂鸣器小电子琴设计 Ø 蜂鸣器唱歌程序设计 Ø 课后作业
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的工作原理
蜂鸣器的正极接到Q1的集电极C极上面,蜂鸣器的负 极地,三极管发射极E极接电源VCC,基级B经过限流电 阻R33后由单片机的P1.7引脚控制,当P1.7输出高电平 时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声; 当P17输出低电平时,三极管导通,这样蜂鸣器的电流形 成回路,发出声音。 因此,我们可以通过程序控制P1.7脚的电平来使蜂鸣 器发出声音和关闭。程序中改变单片机P1.7引脚输出波形 的频率,就可以调整控制蜂鸣器音调,产生各种不同音 色、音调的声音。另外,改变P1.7输出电平的高低电平占 空比,则可以控制蜂鸣器的声音大小。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的分类
蜂鸣器按其是否带有信号源又分为有源和 无源两种类型。有源蜂鸣器只需要在其供电 端加上额定直流电压,其内部的震荡器就可 以产生固定频率的信号,驱动蜂鸣器发出声 音。无源蜂鸣器可以理解成与喇叭一样,需 要在其供电端上加上高低不断变化的电信号 才可以驱动发出声音。
主 讲:wang1jin
技术支持:/bbs
音乐中的音调
在音乐中所谓“音调”,其实就是我们常 说的“音高”,实质就是频率不同的声音。音 乐中以ABCDEFG来表示音高,A音定为标 准音高,其频率f=440Hz。当两个声音信号 的频率相差一倍时,也即f2=2f1时,则称f2 比f1高一个倍频程, 在音乐中1(do)与,2 (来)与……正好相差一个倍频程,在音 乐学中称它相差一个八度音。在一个八度 音内,有12个半音。
主 讲:wang1jin
技术支持:/bbs
有源蜂鸣器的驱动方法
对于有源和无源的驱动方式,略有不 同,我们先讲解一下有源蜂鸣器的驱动方 法。有源蜂鸣器因为内含有信号源,因此 只要加上额定的工作电压就可以发出固定 频率的声音,因此,我们在实验板中,只 要将P17端口置成低电平,就可以使Q1导 通,蜂鸣器得电工作。
主 讲:wang1jin
技术支持:/bbs
音乐基础
音调的确定,我们在前面已经详细讲解过,这 里就不再重复。对于一个音符,确定了它的发音 频率后,就要确定这个音符发音要发多长时间, 也就是节拍,在一张乐谱中,我们经常会看到这 样的表达式,如1=C 、1=G…… 等等,这里 1=C、1=G表示乐谱的曲调,和我们前面所谈的 音调有很大的关联,、就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节 拍,每一小结有三拍。
主 讲:wang1jin
技术支持:/bbs
音乐基础知识
如果驱动无源蜂鸣器发出频率、持续时间不同的声 音,就可以达到单片机控制演奏歌曲的目的。一般说来, 单片机演奏音乐基本都是单音频率,因为单片机的IO端 口,只能输出高电平或低电平,相当于方波信号,它虽然 谐波很丰富,但不包含足够幅度的谐波频率,也就是说不 能象电子琴那样能奏出多种音色的声音,这也就是为什么 单片机演奏歌曲听起来声音单调的原因。 因此单片机用于演奏歌曲,只需搞清楚两个概念即 可,也就是“音调”和“节拍”。音调表示一个音符该唱的频 率,节拍表示一个音符该唱多长的时间。
主 讲:wang1jin
技术支持:/bbs
蜂鸣器的种类
蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣 器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振 动膜片及外壳等组成。接通电源后,振荡器产生的音频信号 电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁 线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹 配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电 路构成,当接通电源后(1.5~15V直流工作电压),多谐 振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动 压电蜂鸣片发声。