用单片机驱动蜂鸣器唱歌的设计与原理_第1页
用单片机驱动蜂鸣器唱歌的设计与原理_第2页
用单片机驱动蜂鸣器唱歌的设计与原理_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用单片机驱动蜂鸣器唱歌的设计与原理1.蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,主要分为压电式蜂鸣器和电 磁式蜂鸣器两种类型,他广泛应用于计算机、打印机、复印机、报警器、 机等电子产品中作发声器件。2.单片机驱动单片机上面使用的蜂鸣器一般都是无源电磁式的蜂鸣器如下列图所 示。它由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源 后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振 动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振10引脚输出的电流较因此需要增加一个电流动膜发声的,因此需要一定的电流才能驱动它,单

2、片机 小,单片机输出的 TTL电平根本上驱动不了蜂鸣器, 放大的电路。单片机与蜂鸣器连接如图二所示。图中,蜂鸣器的正极接到VCC 5V 电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级 B经过限流电阻 R1后由单片机的 P3.7引脚控制,当 P3.7 输出高电平时,三极管 T1 截止,没有电流流过线圈,蜂鸣器不发声;当 P3.7 输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7 脚的电平来使蜂鸣器发出声音和关闭程序中改变单片机 P3.7 引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7 输出电

3、平的高低电平占空比,那么可以控制蜂鸣器的声音大小,这些我们都可以通过编程 实验来验证。下面就是一个能够发出音乐的单片机程序,例如中所播放的音乐是?两只老虎?。SPK EQU P3.7; 位定义ORG 0000H; 伪指令,指定程序从 0000H 开始存放LJMPSTART;程序跳转至 START 处执行ORG0030H; 伪指令,指定程序从0030H 开始存放START:MOV SP,#60H;堆栈初始化MOVR3,#00H;给 R3 赋值NEXT:MOVA,R3MOVDPTR,#TABLE; 查歌曲表MOVCA,A+DPTRJZSTART;为 00那么循环播放此歌MOVR7,A;R7/R2保

4、存连续相邻的表数据INCR3MOVA,R3MOVCA,A+DPTRMOVR2,AACALL SONGINCR3SJMP NEXT歌曲播放子程序 =SONG:MOVA,R2; 取出节拍RLAJNZKEEP;A 不等于零那么跳MOVA,#01H;A 等于零那么赋值为 1KEEP:MOVR2,A ;REPEAT:ACALLEIGHTH; 调用 1/8 拍延时程序DJNZR2,REPEATJRET= 产生 1/8 拍延时子程序 =EIGHTH:MOVA,R7; 查表取出延时参数, 保存到R4MOVDPTR,#DELAY_TMOVCA,A+DPTRMOVR4,AMOVA,R7; 查表取出1/8 拍周期数

5、,保存到 R5MOVDPTR,#S_PARAMOVCA,A+DPTRMOVR5,ANEXTCYC:ACALL SOUNDDJNZ R5,NEXTCYCRET发声子程序 =SOUND:SETB SPKACALL SDELAYCLRSPKACALL SDELAYRET延时子程序 =SDELAY:MOVA,R4; 延时值在R4 内MOVR0,AXL2:MOVR1,#03HDL1:NOPDJNZR1,DL1DJNZR0,XL2RET;=1/8 拍周期表 =,一 一一 一一一 一一一 一一一 一一一 一一一 一一一 一一一 一一一 一一一S_PARA:DS 1DHDB 15H,16H,00DB 19H,

6、00H,1CH,00H,1FH,21H,00H,25HDB 00H,29H,2CH,00H,31H,34H,37H,00HDB 3EH,41H,00H,49H,00H,52H,57H,00HDB 62H;=延时参数表 ,一一 一一一 一一一 一一一 一一一 一一一 一一一 一一一 一一.DELAY_T:DS1DHDB7EH,77H,00HDB6AH,00H,5EH,00H,54H,4FH,00H,46HDB00H,3FH,3BH,00H,35H,32H,2FH,00HDB2AH,27H,00H,23H,00H,1FH,1DH,0C0HDB1AH;=歌曲表 ,一一 一一一 一一一 一一一 一一一

7、 一一一 一一一 一一一 TABLE:DW2504H,2704H,2904H,2504HDW2504H,2704H,2904H,2504HDW2904H,2A04H,2C08HDW2904H,2A04H,2C08HDW2C02H,2E02H,2C02H,2A02H,2904H,2504HDW2C02H,2E02H,2C02H,2A02H,2904H,2504H6DW2904H,2004H,2508HDW2904H,2004H,2508HDW0000HEND童鞋们可能发现了,数据表 TABLE 里面的数据才是歌曲数据。也就是 说,只要我们改变 TABLE 表里面的数据,就可以播放不同的歌曲了。比

8、 如下面这一首?兰花草?:歌曲表 =TABLE:DW2202H,2902H,2902H,2902H,2906H,2702H; 我从山中来DW2502H,2702H,2502H,2402H,2208H; 带着兰花草DW2E02H,2E02H,2E02H,2E02H,2E06H,2C02H; 种在小园中DW2902H,2C02H,2D02H,2A02H,2908H; 祈祷花开早DW2902H,2E02H,2E02H,2C02H,2906H,2702H; 一日看三回DW2502H,2702H,2502H,2402H,2206H,1D02H;看得花时过DW1D02H,2502H,2502H,2402H,2206H,2902H;兰花却依然DW2702H,2502H,2402H,2002H,2208H;苞也无一个DW0000HEND2 个 DB在 TABLE 表里面的数据都是字类型的,也就是说可以拆分成数据。前一个 DB 数据,我们用来存放音色,也就是 “;后一个 DB 我们用来 存放音长,就是每个音的长度。对于音色, 可以查下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论