简易电子琴设计_第1页
简易电子琴设计_第2页
简易电子琴设计_第3页
简易电子琴设计_第4页
全文预览已结束

下载本文档

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

文档简介

1、    简易电子琴设计    熊杰彭力薛德恒何小龙摘要:文章主要探讨利用单片机、8255a、8279等芯片设计一个简易电子琴系统,实现演奏和显示功能。针对声音产生的规律,系统建立了播放不同音调的音符所需的音阶表、音长表,并规定了音符的编码格式,由键盘控制,使电子琴系统具有自动演奏和手动弹奏功能。关键词:电子琴;8255a;8279:tn709:a:1006-8937(2009)10-0033-01音乐是由一个个音符组成,而音符可通过对定时器送入不同的初值,调节定时器的溢出时间,输出频率可控的方波产生。通常电子琴具备自动播放和手动弹奏的功能,本系统在此基础

2、上增加显示功能,从而使其功能更加完备。1系统的基本原理本设计主要利用单片机中的定时器中断、8279显示、8255a管理键盘以及喇叭实现了演奏和显示功能。针对声音有音阶、音调和音长三种基本特性,通过对定时器t1送入不同的初值,调节t1的溢出时间,输出频率可控的方波,从而控制不同音阶的音调高低。而对于音长的控制,则可以向定时器t0送入一个固定初值,通过控制定时器中断循环的次数,来实现对发音时间长短的控制。对于音符和曲目的显示,主要通过读入键值,判断所选曲目或音符,输出到8279上显示。无论是手动演奏还是自动演奏,都涉及到对键盘的扫描,本系统采用8255来管理键盘,实现相应的处理。2系统硬件电路组成

3、针对电子琴系统具有演奏和显示功能的要求,将整个系统的硬件电路主要分为显示电路、键盘输入电路和喇叭驱动电路三部分。其中,由8279控制曲目和音符的显示,将其数据口地址设置为0ff80h,状态口地址设为0ff82h。用8255来管理键盘,控制键值的读入,其片选端地址设置为8700h。另外,用拨动开关k1连接到p3.2口控制手动和自动状态的选取,将p3.5作为信号输出端,接喇叭驱动电路。3系统软件设计对音调的控制:根据不同的按键,对定时器t1送入不同的初值,调节t1的溢出时间,这样就可以输出不同音调频率的方波。不同音调下各个音阶的定时器初值如表1所示。对音长的控制:先向定时器t0送入一个固定初值,控

4、制中断循环的次数,从而得到成倍数关系的时间间隔。按一拍0.64s计算,取1/16拍为最小间隔,即0.04s,为此设定t0的初值为63c0。乐谱的编码规则:对于每个音符,定义用8位二进制数表示。其中,最高位为1的字符为结束符,当读到最高位为1时,停止播放;低3位存储音阶码,即音阶表的列数,可为000b111b (17和休止符),休止符表示停顿,不发音,只有时间长短属性;第3位和第4位存储音高码,即音阶表的行数,可为00b10b;第5位和第6位存储音长码,即中断次数,可为00b10b。对演奏的控制:在手动演奏时,规定先按音调键,后按音阶键。每次音阶键按下时,调用键盘扫描子程序,获得键值,查询音阶表,获取定时器t1的计时初值,向喇叭输入相应频率的驱动脉冲,发出相应的声音,若按键没有松开,则一直发声;若按键松开,则停止发声。在自动演奏时,通过选曲键来确定要播放的音乐,根据键值查询曲目表获取所点歌曲的首地址,依次读取歌曲的代码,获得音阶、音调和音长信息,播放相应的音乐。当读到结束符时,停止播放音乐。4结论本电子琴系统较好地实现了自动播放和手动演奏功能。通过键盘的控制,能随时在手动模式和自动模式间相互切换,并且在播放音乐的同时,将相应的字符在数码管上显示出来,而单音符的发音时间长短可由键盘按键所按时间控制。参考文献:1 刘同法.单片机外围接口电

温馨提示

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

评论

0/150

提交评论