和弦音蜂鸣器
蜂鸣器的作用和工作原理
![蜂鸣器的作用和工作原理](https://img.taocdn.com/s3/m/e0cc1066580102020740be1e650e52ea5518ce02.png)
蜂鸣器的作用和工作原理
蜂鸣器是一种声音生成器,用于产生连续或间断的声音信号。
它通常由振荡器、放大器和扬声器等组成。
其工作原理如下:
1. 振荡器:含有一个电容元件和一个可振动的发生器。
当输入电压施加到电容上时,它开始充电并随着时间的流逝而增加。
当电容充电到一定程度时,振荡器会触发,导致电容放电并开始重新充电。
这个过程以一定频率循环进行,形成了一个振荡信号。
2. 放大器:振荡器输出的振荡信号被输入到放大器中,用于增大信号的幅度。
这样可以确保信号足够强大以驱动扬声器。
3. 扬声器:放大器输出的信号被传送到扬声器中,其中包含一个薄膜或振动元件。
当信号通过扬声器时,薄膜或振动元件会振动,从而产生声音。
蜂鸣器通过不断重复这个过程,产生连续或间断的声音信号,用于提醒、警报、指示和其他应用。
蜂鸣器和弦音发声控制
![蜂鸣器和弦音发声控制](https://img.taocdn.com/s3/m/1885ae6caf1ffc4ffe47acc0.png)
蜂鸣器和弦音发声控制前言:现在一些带按键显示控制面板的家电(比较常见的是柜式空调)在按键操作的时候会有悦耳的和弦音发出,特别是开关机或操作上下键时会有不同变调的和弦音,相比普通的嘀嘀声给人更愉悦的操作体验。
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=2002.F=2.6,Tv=200,Tf=2003.F=2.9,Tv=100,Tf=2100关机和弦音:三降调,按音调分3个阶段1.F=2.9,Tv=200,Tf=2002.F=2.6,Tv=200,Tf=2003.F=2.3,Tv=100,Tf=21002.编程实例MCU:STM8S903K3 开发环境:STVD 4.1.6+Cosmic 4.2.8/* buzzer.h文件*/[Copy to clipboard]View Code C1 2 3 4 5 6 #ifndef __BUZZER_H #define __BUZZER_H#include "common.h" #include "beep.h" typedef enum7 8 91011121314151617181920212223 {MONO =0,//单音POLY_ON =1,//开机和弦POLY_OFF =2//关机和弦}Tone_Type;//蜂鸣器声音类型typedef struct{FREQ_Type Freq;//频率u8 OSCTime;//振荡持续时间,最小单位为10ms u8 PWRTime;//供电持续时间,最小单位为10ms } TONE_Def;//音调结构体void BuzzerStart(Tone_Type ToneType); void BuzzerCtrl(void);#endif /* __BUZZER_H *//* buzzer.c文件*/[Copy to clipboard]View Code C1 2 3 4 5 6 7 8 910111213141516171819 #include "buzzer.h"const TONE_Def Tone1[]={{FREQ_2K6,100,20},{FREQ_NO,0,0}};//单音const TONE_Def Tone2[]={{FREQ_2K3,20,20},{FREQ_2K6,20,20},{FREQ_2K9,210,10},{FREQ_NO,0,0}};//开机和弦音const TONE_Def Tone3[]={{FREQ_2K9,20,20},{FREQ_2K6,20,20},{FREQ_2K3,210,10},{FREQ_NO,0,0}};//关机和弦音TONE_Def * pTone;static u8 BuzzerStatus =0;//蜂鸣器启动,需要发声时调用void BuzzerStart(Tone_Type ToneType){switch(ToneType){case MONO:pTone = Tone1;break;case POLY_ON:20212223242526272829303132333435363738 pTone = Tone2;break;case POLY_OFF:pTone = Tone3;break;default:pTone = Tone1;break;}BuzzerStatus =0;}//蜂鸣器控制,每10ms执行一次void BuzzerCtrl(void){static TONE_Def Tone;switch(BuzzerStatus){39404142434445464748495051525354555657case0:Tone =*pTone;if(Tone.Freq!= FREQ_NO)//非结束符{//先判断供电持续时间if(Tone.PWRTime!=0){Tone.PWRTime--;BeepPwrOn();}else{BuzzerStatus =2;break;}//再判断振荡持续时间if(Tone.OSCTime!=0){Tone.OSCTime--;58596061626364656667686970717273747576 BEEP_SetFreq(Tone.Freq);BEEP_On();}else{BeepPwrOff();BuzzerStatus =2;break;}//判断完成,开始递减计时BuzzerStatus =1;}else/* Tone.Freq == FREQ_NO *///是结束符{BuzzerStatus =2;}break;case1:if(Tone.PWRTime!=0)77787980818283848586878889909192939495{Tone.PWRTime--;}else{BeepPwrOff();}if(Tone.OSCTime!=0){Tone.OSCTime--;}else{BEEP_Off();pTone ++;//取下一个音调 BuzzerStatus =0;}break;default:9697break; }}以上代码中,BEEP_Off(),BEEP_On(),BeepPwrOff(),BEEP_SetFreq()都在头文件beep.h中声明,由底层代码实现。
蜂鸣器的工作原理
![蜂鸣器的工作原理](https://img.taocdn.com/s3/m/9ad52522ae1ffc4ffe4733687e21af45b207fe67.png)
蜂鸣器的工作原理
首先,蜂鸣器的核心部件是振膜。
振膜是一个薄膜状的材料,通常由金属或塑
料制成。
当电流通过线圈时,线圈周围会产生一个磁场,这个磁场会对振膜上的磁铁产生作用力,使得振膜产生振动。
这种振动会产生压缩空气的波动,从而形成声音。
其次,线圈也是蜂鸣器中不可或缺的部件。
线圈通常由绕制在绝缘骨架上的导
线组成,当电流通过导线时,会在线圈周围产生磁场。
这个磁场会对附近的磁铁产生作用力,使得磁铁和振膜产生相对运动,从而产生声音。
最后,磁铁也是蜂鸣器的重要组成部分。
磁铁通常由永磁材料制成,当线圈中
通电时,产生的磁场会对磁铁产生作用力,使得磁铁和振膜产生相对运动,从而产生声音。
总的来说,蜂鸣器的工作原理就是利用电磁感应产生声音。
当电流通过线圈时,产生的磁场会对附近的磁铁和振膜产生作用力,使得它们产生相对运动,从而产生声音。
这种工作原理使得蜂鸣器成为了各种电子产品中不可或缺的部件,如手机、电脑、家电等。
它在提醒、报警、提示等方面起着非常重要的作用。
总之,蜂鸣器作为一种常见的电子元件,其工作原理是利用电磁感应产生声音。
通过线圈产生的磁场作用于磁铁和振膜,使得它们产生相对运动,从而产生声音。
这种工作原理使得蜂鸣器在各种电子产品中发挥着重要作用,为人们的生活和工作提供了便利。
单片机蜂鸣器音乐
![单片机蜂鸣器音乐](https://img.taocdn.com/s3/m/93aa25b4bb0d4a7302768e9951e79b89680268d9.png)
单片机蜂鸣器音乐单片机在我们的生活中无处不在,它被广泛地应用在各种电子产品中,为我们的生活带来了便利。
今天,我要向大家介绍的是一种基于单片机的蜂鸣器音乐播放器。
一、硬件部分1、单片机:我们选用的是AT89C51单片机,它具有低功耗、高性能的特点,非常适合用于音乐播放器。
2、蜂鸣器:蜂鸣器是用来发出声音的,我们将其连接在单片机的输出口上。
3、存储芯片:为了能够播放存储在芯片中的音乐,我们需要将音乐以某种格式存储在芯片中。
常用的存储芯片有EEPROM和Flash芯片。
4、按键:为了能够选择播放不同的音乐,我们需要添加一个按键。
二、软件部分1、音乐编码:我们需要将音乐转换成二进制编码,这样才能被单片机读取并播放。
常用的音乐编码格式有MIDI、WAV等。
2、音乐播放:当按下按键时,单片机读取存储芯片中的音乐数据,并通过蜂鸣器播放。
3、音乐选择:通过按键可以选择不同的音乐进行播放。
4、音量控制:我们可以通过编程来控制蜂鸣器的音量大小。
三、调试与测试1、硬件调试:检查连接是否正确,确保没有短路或断路的情况。
2、软件调试:将程序下载到单片机中进行调试,确保能够正常播放音乐。
3、综合测试:将所有硬件和软件都连接起来进行测试,确保能够正常工作。
四、总结与展望通过本次实验,我们成功地制作了一个基于单片机的蜂鸣器音乐播放器。
它具有简单、实用的特点,可以用来播放存储在芯片中的音乐。
未来,我们可以进一步扩展其功能,例如添加更多的按键来选择不同的音乐、添加显示屏来显示歌曲名称等。
我们也可以将其应用到其他领域,例如智能家居、智能安防等。
单片机蜂鸣器唱歌程序在许多应用中,单片机蜂鸣器经常被用来发出声音或音乐。
下面是一个使用单片机蜂鸣器唱歌的程序示例。
我们需要确定单片机和蜂鸣器的连接方式。
通常,单片机具有一个内置的蜂鸣器输出引脚,可以将蜂鸣器连接到这个引脚上。
在以下的示例中,我们将假设单片机具有一个内置蜂鸣器输出引脚,并将其连接到P1.0端口上。
和弦蜂鸣器原理
![和弦蜂鸣器原理](https://img.taocdn.com/s3/m/4456719648649b6648d7c1c708a1284ac950054b.png)
和弦蜂鸣器原理
和弦蜂鸣器是一种电子发声器,其原理是通过控制不同频率的音频信号来合成和弦音乐。
和弦蜂鸣器通常由多个频率不同的压电陶瓷片或电磁线圈组成,每个陶瓷片或线圈都对应一个特定的频率。
当音频信号输入到和弦蜂鸣器时,它会根据输入信号的频率和强度,驱动相应的陶瓷片或线圈振动,从而发出相应的声音。
通过控制输入信号的频率和强度,和弦蜂鸣器可以合成各种不同的和弦音乐,并且可以通过调整蜂鸣器的结构和材料来改变其音色和音质。
和弦蜂鸣器通常用于电子音乐制作、玩具、报警器等领域。
蜂鸣器功能
![蜂鸣器功能](https://img.taocdn.com/s3/m/6f18fe97c0c708a1284ac850ad02de80d4d806ee.png)
蜂鸣器功能
蜂鸣器是一种能够发出高频声音的设备,主要用于提醒、警示和报警功能。
它的基本原理是通过电流通过蜂鸣器内部的线圈产生磁场,使得内部的振膜震动,进而产生声音。
蜂鸣器的功能主要有以下几个方面:
1. 提醒功能:蜂鸣器可用作提醒工具,例如在设备发生故障或异常时,蜂鸣器会发出持续或间歇的声音,提醒用户注意。
比如在车辆的电池电量过低时,蜂鸣器会发出警示声音,提醒驾驶员需要及时充电或更换电池。
2. 警示功能:蜂鸣器可用作警示工具,例如在危险场合或紧急情况下,通过发出高频声音来警示人们。
比如在火灾发生时,建筑物内的火灾报警器会发出剧烈而刺耳的声音,提醒人们迅速撤离。
3. 报警功能:蜂鸣器还可用作安全报警系统的一部分。
比如,在金融机构的防抢劫系统中,当有人持枪进入时,蜂鸣器会发出高频警报声,引起警方的注意,同时也提醒周围群众注意安全。
4. 玩具和电子设备功能:蜂鸣器也广泛应用于玩具和电子设备中,例如电子琴、手机、电子钟等。
它们通过发出不同音调的声音来增加玩具或设备的趣味性和使用体验。
5. 环境监测功能:蜂鸣器在环境监测领域也有重要应用。
例如
在工业生产中,若某些设备或系统发生故障,蜂鸣器会发出预警声音,提醒工人及时处理问题。
此外,在疏散演练或紧急情况下,蜂鸣器可以作为声音指示器,帮助人们迅速找到安全出口。
总之,蜂鸣器在提醒、警示、报警以及与人类交互的功能方面有重要作用。
它的使用范围广泛,从日常生活中的提醒功能到紧急情况下的警报和报警系统,都发挥着不可替代的作用。
它在各个领域中的应用也得到了不断的拓展和创新,为人们生活和工作带来了更多便利和安全。
蜂鸣器简介介绍
![蜂鸣器简介介绍](https://img.taocdn.com/s3/m/7d45e49785254b35eefdc8d376eeaeaad1f316c0.png)
一个PWM驱动电路
包含一个单片机,一个PWM模块和一个蜂鸣器。
05
蜂鸣器的应用案例与前景展望
电脑硬件
01
蜂鸣器在电脑硬件中常用于提示 音和报警,例如在电脑启动、关 机、异常情况等情况下发出声音 。
02
蜂鸣器还可以用于检测硬件故障 ,例如在电脑启动过程中通过蜂 鸣器的不同响声来判断硬件是否 正常工作。
PWM驱动
通过调节占空比来控制蜂鸣器的 音量。
蜂鸣器的电路设计
简单电路
一个电阻和一个蜂鸣器串联,再接到 电源上。
复杂电路
使用集成电路或者单片机来控制蜂鸣 器。
蜂鸣器的驱动电路示例
一个简单的方波驱动电路
包含一个NPN三极管,一个电阻和一个蜂鸣器 。
一个正弦波驱动电路
包含一个运放,一个电阻和一个蜂鸣器。
尺寸大小
根据实际安装空间和使用需求 选择合适的尺寸。
价格因素
在满足性能需求的前提下,选 择价格合理的蜂鸣器可以降低
成本。
蜂鸣器的使用注意事项
正确连接电路
在使用蜂鸣器时,需要正确连接电路 ,确保工作电压和电流在规定范围内 。
注意声音频率和分贝
在使用蜂鸣器时,需要注意发出的声 音频率和分贝数是否符合要求,避免 对周围环境造成干扰。
甚至损坏。
频率范围
蜂鸣器的频率范围指的 是其发出声音的频率范 围,需要根据应用需求
进行选择。
声音分贝
蜂鸣器的声音分贝数也 是重要的性能参数,高 分贝的蜂鸣器可以发出
更大的声音。
蜂鸣器的选择依据
01
02
03
04
应用场景
不同的应用场景需要不同类型 的蜂鸣器,如报警、提示、驱
动等。
蜂鸣器音乐课程设计
![蜂鸣器音乐课程设计](https://img.taocdn.com/s3/m/74efcb6a11661ed9ad51f01dc281e53a5902514c.png)
蜂鸣器音乐课程设计一、教学目标本课程旨在通过蜂鸣器音乐的学习,让学生掌握基本的音乐知识和技能,培养他们对音乐的兴趣和鉴赏能力。
具体目标如下:知识目标:了解蜂鸣器音乐的基本概念、历史和流派;掌握音乐的基础理论知识,如音阶、和弦、节奏等。
技能目标:能够运用蜂鸣器演奏简单的曲目;学会基本的音乐编曲和创作方法;提高音乐表达和交流的能力。
情感态度价值观目标:培养学生的音乐审美能力,使他们能够欣赏和理解不同类型的音乐;培养学生的团队合作精神,通过合奏、合唱等形式,增强集体荣誉感。
二、教学内容本课程的教学内容主要包括蜂鸣器音乐的基本概念、音乐理论、演奏技巧和创作实践。
具体安排如下:第一章:蜂鸣器音乐概述,介绍蜂鸣器音乐的历史、流派和特点。
第二章:音乐理论知识,包括音阶、和弦、节奏等基础知识。
第三章:蜂鸣器演奏技巧,学习基本的演奏方法、技巧和练习曲目。
第四章:音乐编曲与创作,学习基本的编曲方法,进行创作实践。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
讲授法:用于传授音乐理论和基础知识,通过讲解和示范,让学生理解和掌握。
讨论法:用于探讨蜂鸣器音乐的特点和流派,引导学生进行思考和交流。
案例分析法:通过分析典型的蜂鸣器音乐作品,让学生了解其编曲和创作方法。
实验法:通过实际操作,让学生掌握蜂鸣器的演奏技巧和编曲方法。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:教材:选用权威、实用的蜂鸣器音乐教材,为学生提供系统的学习材料。
参考书:提供相关的音乐理论书籍,供学生深入学习和参考。
多媒体资料:收集蜂鸣器音乐的音频、视频资料,为学生提供直观的学习体验。
实验设备:准备蜂鸣器、音响等设备,方便学生进行实际操作和创作实践。
五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业、考试等。
安威士
![安威士](https://img.taocdn.com/s3/m/8a8bd57002768e9951e7388c.png)
彩屏
D200 台式挂壁一体式指纹考勤机
· 独特的挂壁+桌面二合一设计,满足不同的安装需求 · 高质量人性化语音提示,操作便捷 · 标准USB通讯,首创USB接口供电模式,与电脑通讯一线实现 · 内置1100mAH高性能锂电池,待机时间长达6小时 · 比对方式:单指纹、工号+指纹、工号+密码、指纹+密码 · 指纹容量:2000枚,记录容量:50000条
C2 彩屏指纹考勤机
· 精致外观设计,全球最薄 · 3寸TFT-LCD宽屏高清真彩液晶显示器,显示图像逼真 · 16种自定义考勤状态,考勤状态可自动切换 · 支持1-6位工种码,支持短消息功能 · 标准USB通讯、U盘通讯、TCP/IP通讯(支持DHCP和DNS) · 韦根信号输入输出、继电器信号输出 · 比对方式:指纹、密码和卡多种组合认证方式 · 指纹容量:3000枚,记录容量:50000条
智能锁
Fingerprint Keypad Lock
B 系列 挂壁式指纹考勤机
· 产品外观采用独有的人性化15°倾角设计,视觉效果舒适 · 独特的手指定位设计,指纹验证轻松 · 外置1100mAH手机式高性能锂电池,待机时间长达6小时 · 标准USB通讯、U盘通讯、TCP/IP通讯 · 比对方式:单指纹、工号+指纹、工号+密码、指纹+密码 · 指纹容量:2000枚,记录容量:50000条
贴片蜂鸣器用途
![贴片蜂鸣器用途](https://img.taocdn.com/s3/m/926e0e1276232f60ddccda38376baf1ffc4fe31a.png)
贴片蜂鸣器用途贴片蜂鸣器是一种常见的电子元件,可以将电信号转换为声音信号。
它被广泛应用于各种电子设备和产品中,具有多种用途。
首先,贴片蜂鸣器可以用于警报和提醒功能。
在许多应用场景中,需要通过声音信号向用户传递重要信息,如警报系统、安防设备、火警报警器等。
贴片蜂鸣器可以发出高音频的声音,能够吸引用户的注意力并起到警报的作用。
例如,在家庭安防系统中,当检测到入侵或有人非法闯入时,系统会触发蜂鸣器发出警报声,以提醒用户。
另外,贴片蜂鸣器还可以用于医疗设备中,如心率监测仪、病床报警器等,在需要提醒护理人员或患者的情况下,触发蜂鸣器发出声音信号。
其次,贴片蜂鸣器常用于电子仪器设备中的提醒和指示功能。
在现代化的电子仪器设备中,经常需要向用户提供操作指导或提示信息。
贴片蜂鸣器可以发出特定的声音信号,用于提示用户设备的工作状态、操作结果或错误信息。
举个例子,智能家电设备如冰箱、洗衣机和空调等,往往会通过贴片蜂鸣器发出相应提示信息。
例如,当冰箱的温度太高或门未关好时,贴片蜂鸣器会发出警告声音,提醒用户采取相应的措施。
类似地,洗衣机在洗完衣物后会通过蜂鸣器发出完成的提示音,让用户知晓。
这些提示和指示声音可以更方便地与用户进行互动,提升用户体验。
此外,贴片蜂鸣器也可以应用于交通工具中。
例如,在汽车领域,贴片蜂鸣器常用于车辆的倒车辅助系统中。
当倒车时,系统会检测到接近障碍物的距离并将其转换为声音信号,然后通过贴片蜂鸣器发出相应的蜂鸣声,以提示驾驶员注意障碍物和安全行驶。
类似地,贴片蜂鸣器也可用于其他交通工具如电动车和自行车,为行车提供安全保障。
此外还有一些其他应用场景,例如游戏、玩具和音乐设备等。
在游戏和玩具中,贴片蜂鸣器可以用于产生各种声音效果,增加乐趣和娱乐性。
在音乐设备中,贴片蜂鸣器可以作为声音模块的一部分,发出音乐、和弦或节拍等声音,为用户提供音乐体验。
总之,贴片蜂鸣器在电子设备中有广泛的用途。
它可以用于警报和提醒功能,用于电子仪器设备的指示和提示,用于交通工具的安全警示,以及用于游戏、玩具和音乐等领域。
蜂鸣器和弦音发声控制
![蜂鸣器和弦音发声控制](https://img.taocdn.com/s3/m/620af4ea84868762caaed5d3.png)
蜂鸣器和弦音发声控制 Final approval draft on November 22, 2020蜂鸣器和弦音发声控制前言:现在一些带按键显示控制面板的家电(比较常见的是柜式空调)在按键操作的时候会有悦耳的和弦音发出,特别是开关机或操作上下键时会有不同变调的和弦音,相比普通的嘀嘀声给人更愉悦的操作体验。
1.控制方式说明此处以型号为SH2225T2PA的蜂鸣器(谐振频率)为例。
蜂鸣器模块有两个驱动引脚与MCU相连,一个是振荡信号输入引脚,由MCU提供相应频率的方波信号驱动蜂鸣器发声,一个是供电控制端,供电切断后蜂鸣器靠电解电容放电维持其发声,会有音量渐渐变小的效果。
原理图如下所示, MC9为供电控制端,MC8为振荡信号输入端。
MC9为高电平时,三极管Q4导通,然后Q2导通,蜂鸣器开始供电,同时电容CD2充电。
若MC8有一定频率的方波信号发出,则蜂鸣器可发出鸣叫。
若此时先关掉供电,即MC9置低电平,MC8依然发出方波信号,则蜂鸣器可依靠CD2放电发出声音,但随着电容电量减少,音量会逐渐减小,形成蜂鸣声渐隐的和弦音效果。
要实现变调的效果,则可通过短时间内切换发出几种不同频率的蜂鸣声来实现。
以下是3种比较典型的和弦音的实现细节:(符号说明:Tf:频率给定持续时间(ms) Tv:电压给定持续时间(ms) F:输出频率(KHz))单声和弦音:短暂鸣响后音量渐隐F=,Tv=200,Tf=1000开机和弦音:三升调,按音调分3个阶段1.F=,Tv=200,Tf=2002.F=,Tv=200,Tf=2003.F=,Tv=100,Tf=2100关机和弦音:三降调,按音调分3个阶段1.F=,Tv=200,Tf=2002.F=,Tv=200,Tf=2003.F=,Tv=100,Tf=21001 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18#ifndef __BUZZER_H#define __BUZZER_H#include ""#include ""typedef enum{MONO =0,//单音POLY_ON =1,//开机和弦POLY_OFF =2//关机和弦}Tone_Type;//蜂鸣器声音类型typedef struct{FREQ_Type Freq;//频率u8 OSCTime;//振荡持续时间,最小单位为10ms u8 PWRTime;//供电持续时间,最小单位为10ms } TONE_Def;//音调结构体void BuzzerStart(Tone_Type ToneType);void BuzzerCtrl(void);1920212223#endif /* __BUZZER_H */1 2 3 4 5 6 7 8 9 10 11 12 13#include ""const TONE_Def Tone1[]={{FREQ_2K6,100,20},{FREQ_NO,0,0}};//单音const TONE_Def Tone2[]={{FREQ_2K3,20,20},{FREQ_2K6,20,20},{FREQ_2K9,210, 10},{FREQ_NO,0,0}};//开机和弦音const TONE_Def Tone3[]={{FREQ_2K9,20,20},{FREQ_2K6,20,20},{FREQ_2K3,210, 10},{FREQ_NO,0,0}};//关机和弦音TONE_Def * pTone;static u8 BuzzerStatus =0;//蜂鸣器启动,需要发声时调用void BuzzerStart(Tone_Type ToneType){switch(ToneType){case MONO:14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 pTone = Tone1;break;case POLY_ON:pTone = Tone2;break;case POLY_OFF:pTone = Tone3;break;default:pTone = Tone1;break;}BuzzerStatus =0;}//蜂鸣器控制,每10ms执行一次void BuzzerCtrl(void){static TONE_Def Tone;switch(BuzzerStatus){case0:35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 Tone =*pTone;if!= FREQ_NO)//非结束符{//先判断供电持续时间if!=0){--;BeepPwrOn();}else{BuzzerStatus =2;break;}//再判断振荡持续时间if!=0){--;BEEP_SetFreq;BEEP_On();}56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76else{BeepPwrOff();BuzzerStatus =2;break;}//判断完成,开始递减计时BuzzerStatus =1;}else/* == FREQ_NO *///是结束符{BuzzerStatus =2;}break;case1:if!=0){--;}else{77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 BeepPwrOff();}if!=0){--;}else{BEEP_Off();pTone ++;//取下一个音调 BuzzerStatus =0;}break;default:break;}}以上代码中,BEEP_Off(),BEEP_On(),BeepPwrOff(),BEEP_SetFreq()都在头文件中声明,由底层代码实现。
最简单蜂鸣器工作原理
![最简单蜂鸣器工作原理](https://img.taocdn.com/s3/m/7c8bdb05bf23482fb4daa58da0116c175f0e1ee3.png)
最简单蜂鸣器工作原理
嘿,朋友们!今天咱就来讲讲这最简单蜂鸣器工作原理,可别小瞧它,虽然简单但却超有意思呢!
你想想看啊,蜂鸣器就像是一个会发出声音的小魔术盒。
它的工作原理其实不难理解。
就好比你吹口哨,你吹气进去,就能发出声音。
蜂鸣器也是差不多的道理呀!它里面有个小部件,就像个小喇叭,当有电流通过的时候呢,“嘟”的一声,声音就出来啦!嘿,这不就跟你高兴的时候会尖叫一声差不多嘛!
比如说,在你家的门铃里就有蜂鸣器呀!有人按门铃的时候,电流传过去啦,蜂鸣器就“叮叮”响起来,提醒你有人来了。
还有那些电子玩具,你一按按钮,“嘀嘀”声响起,这里面可少不了蜂鸣器的功劳哟!
那这蜂鸣器咋就能发出声音呢?其实就是电流让它里面的小部件震动起来啦,就像你拍皮球一样,皮球会弹起来,这蜂鸣器的小部件一震动,声音可不就出来了嘛!哎呀,这多好理解呀!难道不是吗?
你看,这小小的蜂鸣器,虽然看起来不起眼,但是在我们生活中用处可大啦!它能给我们提示,能给我们带来乐趣,多棒呀!所以说啊,别小看这些小小的东西,它们可都有着大大的能量呢!
总之,最简单蜂鸣器工作原理就是这么神奇又有趣!它以一种简单却又不可或缺的方式存在于我们的生活中,给我们的生活增添了许多方便和乐趣呢!。
音乐蜂鸣器
![音乐蜂鸣器](https://img.taocdn.com/s3/m/cf792c573c1ec5da50e27071.png)
第一章 美音蜂鸣器的应用美音蜂鸣器在空调中的应用主要是通过不同的音乐来表达控制器不同状态,或者,对不同操作用不同音乐响应。
而不同的 音乐是通过控制芯片内的两个蜂鸣器管脚来控制。
一个是控制蜂鸣器的工作情况。
而音乐的尾音则是通过关闭控制蜂鸣器,从而附带着 的电容放电所造成的。
另一个则是控制蜂鸣器的音乐情况。
具体是从晶振到预分频再到分频个计数器的一连 串的控制,进而达到人们想发的音阶、音乐的实现。
第二章 程序设计2.1 用东芝807芯片组成的空调控制器是单片机在家电应用中的一个典型例子。
现对该控制器进行二次应用开发,对空调系统的蜂鸣器部份进行再设计修改,使其产生新的控制感觉。
本设计课题是用科龙柜机对原蜂鸣器进行修改设计。
2.2 美音蜂鸣器的发音原理:1)按照曲目音阶用定时器中断产生相应的中断频率2)按照曲目音阶的节拍,用定时器控制相应的延时3)在蜂鸣器控制程序按曲目顺序调出要发音的音阶和节拍延时,完成完整的曲目发音2.3美音蜂鸣器的设计安排:1)先设定好要选的曲目(1-15)。
2)根据定好的曲目列出音谱表。
因查表语句 LD (HL+C)中变址寄存器C的有效范围是 –128 ..+127, 为防止查表过限,分为两个表处理: Sound_TBL1:DB 3,1DB 1,1,5,5,6,6,5 ;一闪一闪亮晶晶DB 5,6,3,7,7,1,7,6,6 ;爱你一万年DB 3,5,5,5,5,3,5,6,6,6,6,6,3,5 ;忘情水DB 1,2,3,2,3,2,1,2,5 ;铁达尼号DB 5,5,1,6,5,6,5,5,5,5,3,5 ; 冰雨DB 1,1,1,5,6,6,6,2 ; 命运交响曲DB 3,5,3,1,7,7,6,6,5,6 ; 我不够爱你Sound_TBL2:DB 6,6,3,5,4,3,2,3 ; 小草DB 1,7,7,5,4,3,2,1 ;她比我丑DB 6,6,7,6,6,7 ;雪绒花DB 5,3,3,1,2,3,2,3,3,6,5,1,2,1 ;军港之夜DB 3,3,2,1,1 ;送战友DB 3,2,3,4,3,1,7,5,6 ;祖国啊,我的母亲DB 5,5,5,3,6,6,4 ;请到天涯海角来DB 3,2,1,5,1,1,6,6,6,7,6,5 ;快乐老家;---------------------------------------------------------------3)根据定好的音谱,列出节拍延时表,同样,分为两个表处理:Delay_TBL1:DB 4,4DB 8,8,8,8,8,8,8 ;1. 一闪一闪亮晶晶DB 4,4,4,6,2,6,2,2,8 ;2. 爱你一万年DB 2,2,2,2,6,2,8,2,2,2,2,6,2,8 ;3. 忘情水DB 4,4,8,2,2,2,2,4,8;4. 铁达尼号DB 4,4,4,4,4,6,2,4,6,2,4,4 ;5. 冰雨DB 2,2,2,8,2,2,2,8 ;6. 命运交响曲DB 4,4,4,4,4,4,4,4,6,8 ;7. 我不够爱你Delay_TBL 2:DB 2,2,4,4,4,2,2,8 ;8. 小草DB 6,2,4,4,6,2,4,8 ;9. 她比我丑DB 4,4,8,4,4,8 ;10.雪绒花DB 4,4,4,4,2,2,6,2,8,4,4,2,2,8 ;11.军港之夜DB 8,6,4,2,8 ;12. 送战友DB 2,2,2,2,2,2,6,2,8 ;13.祖国啊,我的母亲DB 6,2,2,2,6,2,2 ;14. 请到天涯海角来DB 4,2,2,2,2,8,6,2,2,2,2,8 ;15. 快乐老家4)按照音谱频率,列出所对应的中断分频和溢出计数器初值表蜂鸣器音调输出使用T807芯片的TC3定时器中断,其设置如下:;------------------------------------------------------------------------- ;TC3CR 地址:001A( Timer Conter 3 Control); ┏━━┳━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ; ┃名称┃ TFF3 │ TC3CK │ TC3S │ TC3M ┃ ; ┠──╂───┼───────────┼───┼───────────┨ ; ┃ 0 ┃PPG 清│ TC3 频率选择 │ 停止 │ TC3 模式选择 ┃ ; ┠──╂───┤ ├───┤ ┃ ; ┃ 1 ┃PPG 置│ │ 启动 │ ┃ ; ┠──╂───┼───┬───┬───┼───┼───┬───┬───┨ ; ┃复位┃ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 ┃ ; ┗━━┻━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┷━━━┛ ; TC3CK TC3M; 条件 DV7CK=0; 000 fc/2.11 000 8位计时器; 001 fc/2. 7 001 8位可编程分频输出(PDO) ; 010 fc/2. 5 010 8位脉宽调制输出(PWM) ; 011 fc/2. 3 011 16位模式(由TC4M选择) ; 100 fs; 101 fc/2. 2; 110 fc/2. 0; 111 无效;------------------------------------------------------------------------ 现TC3M 选择 000 :把TC3作为8位计时器使用现TC3CK 选择 010 (音调 1,2) 32分频011 (其他音调) 8分频; 晶振频率 8MHz;------------------------------------------------------------------------- ; 音调 #G #A C #C #D #F G #G; 简谱 1 2 3 4 5 6 7 高1; 音调频率 1661 1865 2093 2217 2489 2794 3136 3322; 分频 32 32 8 8 8 8 8 8; 计数初值 75 67 239 226 201 179 159 151;------------------------------------------------------------------------- ; 中断分频表;------------------------------------------------------------------------- Divider_tbl:DB 0Y00000000 ;DB 0Y00101000 ;2 '5 32分频 音调 1DB 0Y00101000 ;2 '5 32分频 音调 2DB 0Y00111000 ;2 '3 8分频 音调 3DB 0Y00111000 ;2 '3 8分频 音调 4DB 0Y00111000 ;2 '3 8分频 音调 5DB 0Y00111000 ;2 '3 8分频 音调 6DB 0Y00111000 ;2 '3 8分频 音调 7DB 0Y00111000 ;2 '3 8分频 音调 高1;------------------------------------------------------------------------- ; 溢出中断初值表;------------------------------------------------------------------------- Tune_tbl:DB 0,75,67,239,226,201,179,159,151; 音调 1 2 3 4 5 6 7 高1;-------------------------------------------------------------------------5)按15个曲目的音调数,列出发音音符数目表Tune_count1A:DB 2,7,9,14,9,12,8,10Tune_count2A:DB 8,8,6,14,5,9,7,12此表表示,第一个曲目,有16个音符,第二个曲目,有16个音符,第三个曲目,有21个音符,。
蜂鸣器原理
![蜂鸣器原理](https://img.taocdn.com/s3/m/db159723571252d380eb6294dd88d0d232d43c14.png)
蜂鸣器原理
蜂鸣器是一种常见的声音发生器,它主要由震动片、震动片支架、电磁铁、震
动片弹簧、震动片座、震动片座座、固定底座、震动片座螺丝、电磁铁铁芯、电磁铁线圈等部件组成。
它的工作原理是利用电磁感应产生声音。
下面我们来详细了解一下蜂鸣器的工作原理。
首先,当电流通过电磁铁线圈时,电磁铁产生磁场,使得电磁铁铁芯产生磁化。
这时,电磁铁铁芯会吸引震动片,使得震动片与电磁铁之间产生磁性吸引力,震动片被吸附在电磁铁上。
接着,电流方向发生变化,导致电磁铁磁场方向也发生变化。
由于震动片是铁
磁材料,它会随着电磁铁磁场方向的变化而产生震动。
这种震动以一定的频率传播,产生声音。
蜂鸣器的工作原理可以简单总结为,电流通过电磁铁线圈,产生磁场,使得电
磁铁铁芯产生磁化,吸引震动片,随后电流方向发生变化,导致电磁铁磁场方向也发生变化,使得震动片产生震动,最终产生声音。
蜂鸣器的工作原理与电磁感应密切相关,是一种利用电磁感应产生声音的装置。
它在电子产品中有着广泛的应用,如手机、电脑、家电等。
通过控制电流的方向和大小,可以控制蜂鸣器发出的声音的频率和音量,从而实现不同的声音效果。
总的来说,蜂鸣器是一种利用电磁感应产生声音的装置,其工作原理简单清晰。
它在现代电子产品中有着重要的应用,为这些产品提供了声音提示和警报功能。
希望通过本文的介绍,能够让大家对蜂鸣器的工作原理有更深入的了解。
51单片机蜂鸣器音阶所对应频率
![51单片机蜂鸣器音阶所对应频率](https://img.taocdn.com/s3/m/afc6bf6ee3bd960590c69ec3d5bbfd0a7956d53f.png)
在51单片机中,蜂鸣器音阶所对应的频率是相当重要的。
通过对频率的设定,可以在实际应用中实现不同的音调和音乐效果。
让我们先来了解一下51单片机蜂鸣器的工作原理。
51单片机蜂鸣器是一种被广泛应用于各种电子设备中的音频输出装置,它通过控制电流的频率和占空比来发出不同音调的声音。
在实际应用中,我们要根据需要来设定蜂鸣器的频率,从而实现不同的音阶和音乐效果。
接下来,让我们来详细探讨一下51单片机蜂鸣器音阶所对应的频率。
在音乐理论中,音阶是由一系列音符按特定的音程组成的音乐音阶体系。
常见的音阶包括C大调、D大调、E大调等,每个音阶都对应着特定的频率。
在51单片机蜂鸣器中,我们可以通过设置不同的频率来模拟出这些音阶,从而实现丰富的音乐效果。
以C大调音阶为例,我们可以将C4音符的频率设定为261.63Hz,D4音符的频率设定为293.66Hz,E4音符的频率设定为329.63Hz,以此类推。
通过逐个设置每个音符的频率,我们就可以在51单片机蜂鸣器上模拟出C大调音阶的音乐效果。
同样的方法也适用于其他音阶,只需要根据对应的频率来进行设置即可。
除了基本的音阶,我们还可以通过设置不同频率的音符来实现和弦、音阶、旋律等更复杂的音乐效果。
在实际应用中,我们可以根据具体的需求来调整蜂鸣器的频率,从而实现丰富多样的音乐效果。
总结回顾:在51单片机中,蜂鸣器的工作原理是通过控制电流的频率和占空比来发出不同音调的声音。
对应频率是实现不同音阶和音乐效果的关键。
通过设置不同频率的音符,我们可以模拟出各种音阶、和弦、旋律等丰富的音乐效果。
在实际应用中,可以根据具体的需求来调整蜂鸣器的频率,从而实现丰富多样的音乐效果。
个人观点:蜂鸣器音阶所对应的频率在51单片机中起着至关重要的作用,它不仅可以用于模拟各种音阶和音乐效果,还可以用于实现各种声音提示和警报。
在实际应用中,充分理解和掌握蜂鸣器频率与音阶的对应关系,可以为我们的电子设备带来更丰富、更灵活的音响功能。
蜂鸣器参数
![蜂鸣器参数](https://img.taocdn.com/s3/m/3c02163bdf80d4d8d15abe23482fb4daa58d1ddd.png)
蜂鸣器参数蜂鸣器是一种常见的声音发声装置,广泛应用于各种电子设备中。
它的参数对于声音的产生和控制起着重要的作用。
本文将详细介绍蜂鸣器的参数及其功能。
1. 音频频率(Frequency)音频频率是指蜂鸣器发出声音的频率,通常以赫兹(Hz)为单位。
蜂鸣器能够发出的声音频率范围较广,一般在几十赫兹到几千赫兹之间。
不同频率的声音会给人不同的感觉,例如低频声音会给人一种低沉的感觉,而高频声音会给人一种尖锐的感觉。
因此,在设计蜂鸣器时需要根据实际需求选择适当的音频频率。
2. 音频电压(Voltage)音频电压是指蜂鸣器工作时所需的电压,通常以伏特(V)为单位。
蜂鸣器需要通过外部电路来提供电压,以产生声音。
一般来说,蜂鸣器的工作电压范围较宽,可以在几伏到几十伏之间。
在实际应用中,需要根据蜂鸣器的工作电压范围选择合适的电源电压,并通过电路设计来保证电压的稳定输出。
3. 声音压力级(Sound Pressure Level)声音压力级是指蜂鸣器发出声音的强度,通常以分贝(dB)为单位。
蜂鸣器的声音压力级与其音频电压和音频频率有关。
一般来说,蜂鸣器的声音压力级越高,声音就越大。
因此,在设计蜂鸣器时需要选择适当的音频电压和音频频率,以满足所需的声音压力级。
4. 工作温度(Operating Temperature)工作温度是指蜂鸣器可以正常工作的温度范围。
蜂鸣器通常由于电子元件组成,对温度比较敏感。
如果超出了蜂鸣器的工作温度范围,可能会导致蜂鸣器的性能下降甚至损坏。
因此,在实际应用中需要注意选择适当的工作温度范围的蜂鸣器,并采取相应的散热措施。
5. 驱动方式(Driving Mode)驱动方式是指蜂鸣器与外部电路的连接方式。
蜂鸣器可以通过直流电源或交流电源来驱动。
其中,直流驱动方式是指通过给蜂鸣器施加直流电压来产生声音,而交流驱动方式是指通过给蜂鸣器施加交流电压来产生声音。
不同的驱动方式对应不同的电路设计,需要根据实际应用需求选择合适的驱动方式。
蜂鸣器和弦音驱动电路[实用新型专利]
![蜂鸣器和弦音驱动电路[实用新型专利]](https://img.taocdn.com/s3/m/82e3c72f58eef8c75fbfc77da26925c52cc591e5.png)
(10)授权公告号 (45)授权公告日 2013.11.13C N 203288237 U (21)申请号 201320311816.7(22)申请日 2013.05.31G10K 9/12(2006.01)(73)专利权人合肥龙多电子科技有限公司地址231600 安徽省合肥市肥东县新区金阳路北段龙多工业园(72)发明人夏运明 涂聚友(74)专利代理机构安徽合肥华信知识产权代理有限公司 34112代理人方琦(54)实用新型名称蜂鸣器和弦音驱动电路(57)摘要本实用新型公开了一种蜂鸣器和弦音驱动电路,包括有单片机,在所述的单片机的I/O1口和I/O2口之间依次串联有限流电阻R2、电压式蜂鸣器BUZZER 和限流电阻R3,在电压式蜂鸣器BUZZER与限流电阻R3的连接端设有引线并连接电解电容EC1的正极,电解电容EC1的负极接地,在电压式蜂鸣器BUZZER 的两端并联有偏压电阻R1。
本实用新型电路简单,和弦音效果好,只使用几个简单的电阻、电容器件,产生悦耳的和弦音,方案易于使用,软硬件都非常简练,易学易用,成本低,在常规蜂鸣器和弦音电路的基础上减少了多个三极管及外围器件。
(51)Int.Cl.权利要求书1页 说明书1页 附图1页(19)中华人民共和国国家知识产权局(12)实用新型专利权利要求书1页 说明书1页 附图1页(10)授权公告号CN 203288237 U*CN203288237U*1/1页1.一种蜂鸣器和弦音驱动电路,其特征在于:包括有单片机,在所述的单片机的I/O1口和I/O2口之间依次串联有限流电阻R2、电压式蜂鸣器BUZZER 和限流电阻R3,在电压式蜂鸣器BUZZER 与限流电阻R3的连接端设有引线并连接电解电容EC1的正极,电解电容EC1的负极接地,在电压式蜂鸣器BUZZER 的两端并联有偏压电阻R1。
权 利 要 求 书CN 203288237 U蜂鸣器和弦音驱动电路技术领域[0001] 本实用新型涉及电子技术领域,尤其涉及一种蜂鸣器和弦音驱动电路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前言:现在一些带按键显示控制面板的家电(比较常见的是柜式空调)在按键操作的时候会有悦耳的和弦 音发出,特别是开关机或操作上下键时会有不同变调的和弦音,相比普通的嘀嘀声给人更愉悦的操作体验。
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, //单音
10 11 12 13 14 15 16 17 18 19 20 21 22 23
POLY_ON = 1, POLY_OFF = 2 }Tone_Type;
//开机和弦 //关机和弦
//蜂鸣器声音类型
typedef struct { FREQ_Type Freq; //频率
u8 OSCTime; //振荡持续时间,最小单位为 10ms u8 PWRTime; //供电持续时间,最小单位为 10ms } TONE_Def; //音调结构体
void BuzzerStart(Tone_Type ToneType); void BuzzerCtrl(void); #endif /* __BUZZER_H */
/* buzzer.c 文件 */
?
[Copy to clipboard]View Code C
1 2 3 4 5 6 7 8 9 10
#include "buzzer.h" const TONE_Def Tone1[] = {{FREQ_2K6, 100, 20},{FREQ_NO, 0, 0}};//单音 const TONE_Def Tone2[] = {{FREQ_2K3, 20, 20},{FREQ_2K6, 20, 20},{FREQ_2K9, 210, 10},{FREQ_NO, 0, 0}};//开机和弦
音
const TONE_Def Tone3[] = {{FREQ_2K9, 20, 20},{FREQ_2K6, 20, 20},{FREQ_2K3, 210, 10},{FREQ_NO, 0, 0}};//关机和弦
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
音
TONE_Def * pTone; static u8 BuzzerStatus = 0;
//蜂鸣器启动,需要发声时调用 void BuzzerStart(Tone_Type ToneType) { switch (ToneType) { case MONO: pTone = Tone1; break; case POLY_ON: pTone = Tone2; break; case POLY_OFF: pTone = Tone3; break; default: pTone = Tone1; break; } BuzzerStatus = 0; }
//蜂鸣器控制,每 10ms 执行一次 void BuzzerCtrl(void) { static TONE_Def Tone; switch (BuzzerStatus) { case 0:
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
Tone = *pTone; if (Tone.Freq != FREQ_NO) //非结束符 { //先判断供电持续时间 if (Tone.PWRTime != 0) { Tone.PWRTime --; BeepPwrOn(); } else { BuzzerStatus = 2; break; } //再判断振荡持续时间 if (Tone.OSCTime != 0) { Tone.OSCTime --; BEEP_SetFreq(Tone.Freq); BEEP_On(); } else { BeepPwrOff(); BuzzerStatus = 2; break; } //判断完成,开始递减计时 BuzzerStatus = 1; } else /* Tone.Freq == FREQ_NO */ //是结束符
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
{ BuzzerStatus = 2; } break; case 1: if (Tone.PWRTime != 0) { Tone.PWRTime --; } else { BeepPwrOff(); } if (Tone.OSCTime != 0) { Tone.OSCTime --; } else { BEEP_Off(); pTone ++; //取下一个音调
BuzzerStatus = 0; } break; default: break; } }
以上代码中,BEEP_Off(),BEEP_On(),BeepPwrOff(),BEEP_SetFreq()都在头文件 beep.h 中声 明,由底层代码实现。
上层代码只需在主循环中每 10ms 调用一次 BuzzerCtrl()函数,在需要发音的地方调用一次 BuzzerStart()函数,即可实现和弦音的播放了。
思维拓展:依据以上代码的结构,可以很容易的通过定义 TONE_Def 数组实现任意节奏,任意曲调的输 出。
如下段:
?
[Copy to clipboard]View Code C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
const TONE_Def Tone4[] = {
//两只老虎(两只老虎两只老
虎 跑得快 跑得快)
{FREQ_2K, 25, 25},//1 {FREQ_2K3, 25, 25},//2 {FREQ_2K6, 25, 25},//3 {FREQ_2K, 25, 25},//1 {FREQ_2K, 25, 25},//1 {FREQ_2K3, 25, 25},//2 {FREQ_2K6, 25, 25},//3 {FREQ_2K, 25, 25},//1 {FREQ_2K3, 25, 25},//2 {FREQ_2K6, 25, 25},//3 {FREQ_2K9, 50, 25},//4 稍有停顿 {FREQ_2K3, 25, 25},//2 {FREQ_2K6, 25, 25},//3 {FREQ_2K9, 100, 25},//4 和弦效果 {FREQ_NO, 0, 0} //停止 };
当然,你可以添加一些按键,为每个按键设定一个特定音调的和弦音输出,就做成一个电子琴了,音质很 不错的哦:)。
。