简易电子琴vhdl仿真与实现

简易电子琴vhdl仿真与实现

ID:22727133

大小:757.50 KB

页数:35页

时间:2018-10-31

简易电子琴vhdl仿真与实现_第1页
简易电子琴vhdl仿真与实现_第2页
简易电子琴vhdl仿真与实现_第3页
简易电子琴vhdl仿真与实现_第4页
简易电子琴vhdl仿真与实现_第5页
资源描述:

《简易电子琴vhdl仿真与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、简易电子琴地VHDL设计与实现35一.设计课题与任务要求:设计制作一个简易电子琴演奏器.原理概述:根据声乐知识,产生音乐地两个因素是音乐频率地持续时间,音乐地十二平均率规定,每两个八音度之间地频率相差一倍,在两个八音度之间,又可分为12个半音.每两个半音地频率比为4.另外,音名A(乐谱中地低音6)地频率为440HZ,音名B到C之间,E到F之间为半音,其余为全音.由此可以计算出乐谱中从低音1到高音1之间每个音名地频率如下表所示.表1简谱中地音名与频率地关系音名频率(Hz)音名频率(Hz)音名频率(Hz)低音

2、1261.63中音1523.25高音11046.50低音2293.67中音2587.33高音21174.66低音3329.63中音3659.25高音31318.51低音4349.23中音4698.46高音41396.92低音5391.99中音5783.99高音51567.98低音6440中音6880高音61760低音7493.88中音7987.76高音71975.52基本要求:1、用8×8点阵显示“1234567”七个音符构成地电子琴键盘.其中点阵地第一列用一个LED点亮表示音符“1”,第二列用二个LED

3、点亮表示音符“2”,依此类推,如下图所示.1234567图1点阵显示地电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时地“1234567”七个音符.当某个按键按下时,数码管显示相应地音符,点阵上与之对应地音符显示列全灭,同时蜂鸣器演奏相应地声音;当按键弹开时数码管显示地音符灭掉,点阵显示恢复,蜂鸣器停止声音地输出.下图所示为按下BTN3按键时点阵地显示情况.351234567图2按键按下后地点阵显示1、由拨码开关切换选择高、中、低音,并用数码管进行相应地显示.2、通过按键BTN0进行复位,控

4、制点阵显示图1地初始状态.提高要求:1、可通过一个拨码开关进行手动/自动演奏地切换,并与点阵显示配合增加自动演奏乐曲地功能.2、增加手动演奏地音符存储、播放功能.二.系统设计(包括设计思路、总体框图、分块设计)1.设计思路说明:电子琴地设计包括七个模块:弹奏模块keyplay、自动演奏模块autoplay、查表及显示模块table、分频模块fenpin、存储模块store、七段数码管显示模块seg7和点阵地显示模块lattice.弹奏模块keyplay根据按键动作key,和高中低模式选择mode产生指示音

5、调地index_key.自动演奏模块autoplay接收50MHz地时钟信号,输出index_auto.存储录音模块store根据store1选择录音,用数组存储index_key,并将其传输给index_store,作为录音存储地数据.查表及显示模块table根据按键button,replay选择采用index_key或index_auto或者index_store来查分频系数表,输出分频系数tone.对于tone地编码,采用了五位编码方式,高2位存储高中低音对应地11、01、00编码,低3位存储相应输

6、入音调对应地二进制编码.分频模块fenpin接收table输出地分频系数tone,并据此分频,将对应频率地信号buzz输出给扬声器供其发声.七段数码管显示模块seg7根据对应地按键button,replay选择采用index_key或index_auto或者index_store,分别对应不同地数码管显示输出.点阵地显示模块lattice根据对应地按键button,replay选择采用index_key或index_auto或者index_store,分别对应不同地数码管显示输出.这样可以保证在不同地模式

7、下点阵以及数码管都可以对应显示输出.352.总体框图与流程图图1系统实现流程图35图2系统设计框图3.分块设计系统总体设计:图3顶层设计Keyplay模块设计:将输入key[6..0],mode编码为index_key[4..0].index_key[4..0]地高两位表示高、中、低音,00表示低音,01表示中音、11表示高音.index_key[4..0]低三位表示音调,001表示do,010表示re,以此类推,000表示不发音.这样可以实现对不同按键模式下地编码,而这些编码会为后续模块例如seg7,l

8、attice所使用.35图4keyplay模块设计autoplay模块设计:把50MHz地输入时钟分频为16Hz,作为节拍.将要自动演奏地歌曲预先写为index_auto地格式(index_auto格式与index_key格式相同).以16Hz地频率将index_auto输出.这里需要用到计数器,此计数器地长度由演奏地歌曲长度而定.图5autoplay模块设计查表及显示模块table设计:(1)输入按键button,repla

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。