基于AT89C51单片机电子音乐制作.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文档。上传文档
查看更多
基于AT89C51单片机电子音乐制作

基于AT89C51单片机电子音乐制作   【摘要】本文以AT89C51单片机为核心,利用C语言设计制作了《祝你生日快乐》歌曲的电子音乐。并在播放音乐的同时伴随发光二极管的闪烁。   【关键词】单片机;电子音乐   1.引言   以单片机为核心制作的电子音乐结构简单、成本经济、工作效果好,在儿童玩具、礼物等很多场合都能得到大规模的应用。而利用单片机设计制作电子音乐对于高校学生理解、掌握单片机结构与原理,熟悉编写、调试程序,搭建硬件电路都有很大帮助。   2.单片机产生音乐的原理   声音是通过物体的振动产生的。如果单片机通过某一I/O口以一定的频率输出高电平、低电平,这一引脚便产生了一定频率的方波。该方波经放大电路放大,加到扬声器便会产生一定频率的声音。若方波频率发生变化,则声音频率也随之变化。通过控制输出方波时间的长短,声音的长短就会得到相应控制。因此根据乐谱,单片机就可以产生电子音乐。   3.方波的产生   8051单片机产生固定频率方波可以使用定时器/计数器T0或T1的溢出中断。在中断发生时,将P口引脚的电压取反使其输出方波。本文采用T1溢出中断。在T1的溢出中断服务程序中,执行重新装入计数初值,然后将输出引脚电压取反,在下次T1中断时,P口引脚再取反,即可输出方波。音乐节拍也可以利用延时程序来控制。   4.音符频率与定时器初始值   本文单片机采用12MHZ脉冲,则一个几周为1us,所以需要多长的时间(频率),就可以个定时器装入一个对应的初始值。   5.音符节拍选择   节拍就是音符演奏时间段长短。设一拍的十年为0.4秒,则其余拍数均可以此节拍推算出。而节拍的时间也可以通过延时实现。   6.音符代码   程序中使用一个字节来表示音符和该音符的节拍,音符代码的高4位是简码,由它可以找到对应的定时器T1初始值;低4位代表音符节拍,其也可以通过查找节拍代码表获得。所以,我们只要找到《祝你生日快乐》这首乐曲的乐谱,找到其所对应的“简谱码”做高4位,再找到对应的节拍码做低4位,把高4位和低4位合成一个音符代码即可。   现将根据《祝你生日快乐》乐曲简谱转换后的音符代码表示如下:0x42,0x01,0x41,0x54, 0x44,0x74,0x64,0x42,x01,0x41,0x54,0x44,0x84, 0x74,0x74,0x42,0x01,0x41,0xB4,0x84,0x74, 0x64,0xC4,0xA2,0x01,0xA1,x94,0x74,0x84,0x74, 0x74。   将此代码存入程序存储器,程序执行时将音符代码按字节逐一读出,高4位是简谱码,低4为是音符节拍码,并根据T1计数器的初始值来设置时间,由此控制每一个音符的演奏时间,最终行动一段乐曲。   7.电子音乐电路设计   如图1所示,电路中使用20脚的AT80C2051为音乐电路核心。Q1、Q2组成复合管电路。P3.5端是音频信号的输出端,输出的方波信号经复合管电路驱动后驱动扬声器发声;发光二极管DS1~DS7和三极管Q3~Q9等元件组成音符显示电路,分别显示1、2、~7音符;P1.0~P1.6端经过R4~R10电阻分别连接Q3~Q9基极。当P1.0~P1.6端有输出低电平时,三极管饱和导通,对应的发光二极管点亮。S2与R3构成启动电路,按下S2给P3.7引脚送入低电平,启动放音。   图1 电子音乐电路图   8.源程序设计   #includelt;reg51.hgt;   sbit sp=P3^5;sbit sw=P3^7;unsigned char i=0;   un,signed char hi_note=0;unsigned char low_note=0;   code unsigned song[ ]={0x42,0x01,0x41, 0x54,0x44,0x74,0x64,0x42,x01,0x41,0x54, 0x44,0x84,0x74,0x74,0x42,0x01,0x41,0xB4, 0x84,0x74,0x64,0xC4,0xA2,0x01,0xA1,x94,0x74,0x84,0x74,0x74,   0x42,0x01,0x41,0x54,0x44,0x74,0x64, 0x42,x01,0x41,0x54,0x44,0x84,0x74,0x74,0x42, 0x01,0x41,0xB4,0x84,0x74,0x64,0xC4,0xA2, 0x01,0xA1,x94,0x74,0x84,0x74,0x74,0x00};   code int note[ ]={0x0000,0xFB03,0xFB83, 0xFC0B,0xFC43,0xFCAB,0xFD08,0x

文档评论(0)

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

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

1亿VIP精品文档

相关文档