任务510 蜂鸣器和音乐发生器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.10 蜂鸣器和音乐发生器 PAGE PAGE 1 任务5.10 蜂鸣器的原理和驱动 5.9.1 任务介绍 在实际应用中,经常利用利用单片机控制蜂鸣器产生各种音乐用于报警和提示,如手机的铃声、时钟的音乐报时和按键提示音等。 本节的任务是: 通过单片机I/O控制开发板上的蜂鸣器演奏音乐。 5.9.2 知识准备 蜂鸣器的原理和分类 蜂鸣器按结构分有压电式蜂鸣器和电磁式蜂鸣器两种类型。压电蜂鸣器内部有压电陶瓷和金属片,是利用压电陶瓷的压电效应,带动金属片的振动来发声,频率在1KHz~10KHz。电磁式蜂鸣器内部有磁铁和线圈,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声,频率在0.5KHz~5KHz。压电蜂鸣器结构简单耐用,声音大,多用于报警器等设备。电磁蜂鸣器音色好,多用于语音、音乐等设备。 蜂鸣器按其是否带有振荡器又分为有源和无源两种类型。有源蜂鸣器内部带有振荡器,只需要在其供电端加上额定直流电压,其内部的振荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源蜂鸣器内部没有振荡器,需要在其供电端上加上高低不断变化的电信号 才可以驱动发出声音。 开发板上的蜂鸣器属于电磁式无源蜂鸣器。 开发板蜂鸣器驱动电路 开发板蜂鸣器驱动电路如图5.10.1所示。 5.10.1 开发板蜂鸣器驱动电路 蜂鸣器的驱动和继电器相似,需要几十mA的电流,通常借助于三极管来作为中间功率驱动。图5.10.1中,蜂鸣器接在PNP三极管(8550)的集电极上,单片机I/O接三极管的基极,电阻R10是三极管基极限流电阻,电阻R11是上拉电阻。蜂鸣器内部线圈是感性器件,二极管D10并联在蜂鸣器两端,起到限制反峰电压的作用。 3、无源蜂鸣器的程序驱动 无源蜂鸣器本身不带振荡器,只有让蜂鸣器不停的处于“通电-断电”的状态,才能发出声音。对于开发板上蜂鸣器驱动电路而言,只需要让控制蜂鸣器的I/O口不停的“置1-置0”就可以了。下面是利用51单片机P.20驱动蜂鸣器的程序。 #inclduereg52.h #inclduereg52.h #define uchar unsigned char #define uint unsigend int sbit Buzzer=P2^0; //蜂鸣器接口定义 #define BuzzerOn Buzzer=0 #define BuzzerOff Buzzer=1 //ms级延时函数 void DelayMs(uint xms) { uint i,j; for(i=0;ixms;i++) for(j=0;j122;j++); } //主函数 void main() { while(1) { BuzzerOn; DelayMs(1); BuzzerOff DelayMs(1); } } 在程序中,1ms让蜂鸣器通电,1ms让蜂鸣器断电,频率500Hz。程序编译下载后,蜂鸣器引脚控制端接P2.0引脚,蜂鸣器发出“嗡嗡”的声音。然后在把延时改为2ms、3ms、5ms,蜂鸣器会发出不同频响的声音。 4、蜂鸣器程序改造和按键提示音 利用延时函数来驱动蜂鸣器显然不是个好的办法,下面的程序通过定时器驱动蜂鸣器,开发板上2个独立按键,每个按键按下时,蜂鸣器响一声,持续时间为0.3秒。2个按键对应的频率分别为500Hz和1KHz。要求程序不堵塞CPU,效率高。 工程结构和主函数 工程结构图如图5.10.2所示。除了主函数外,还有按键模块、定时器模块和键值处理模块。 图5.10.2 工程结构图 主函数如下: #includereg52.h #includereg52.h #includeMicroDefine.h #includeTimer.h #includeIndependentKey.h #includeKeyProcess.h /*************************************************************************** *函数名称:main() *功能 :主函数 *入口参数:无 *出口参数:无 *说明 :按键被按下时,蜂鸣器产生0.5S提示音。 按键A提示音频率:500Hz 按键B提示音频率:1KHz ***************************************************************************/ void main() void mai

文档评论(0)

44422264 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档