电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

简易电子琴的VHDL仿真与实现VIP免费

简易电子琴的VHDL仿真与实现_第1页
1/36
简易电子琴的VHDL仿真与实现_第2页
2/36
简易电子琴的VHDL仿真与实现_第3页
3/36
第1页共36页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共36页简易电子琴的VHDL设计与实现第2页共36页第1页共36页1234567编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共36页一.设计课题与任务要求:设计制作一个简易电子琴演奏器。原理概述:根据声乐知识,产生音乐的两个因素是音乐频率的持续时间,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为12个半音。每两个半音的频率比为4。另外,音名A(乐谱中的低音6)的频率为440HZ,音名B到C之间,E到F之间为半音,其余为全音。由此可以计算出乐谱中从低音1到高音1之间每个音名的频率如下表所示。表1简谱中的音名与频率的关系音名频率(Hz)音名频率(Hz)音名频率(Hz)低音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点亮表示音符“2”,依此类推,如下图所示。图1点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1234567”七个音符。当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。下图所示为按下BTN3按键时点阵的显示情况。第3页共36页第2页共36页1234567编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共36页图2按键按下后的点阵显示3、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。4、通过按键BTN0进行复位,控制点阵显示图1的初始状态。提高要求:1、可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能。2、增加手动演奏的音符存储、播放功能。二.系统设计(包括设计思路、总体框图、分块设计)1.设计思路说明:电子琴的设计包括七个模块:弹奏模块keyplay、自动演奏模块autoplay、查表及显示模块table、分频模块fenpin、存储模块store、七段数码管显示模块seg7和点阵的显示模块lattice。弹奏模块keyplay根据按键动作key,和高中低模式选择mode产生指示音调的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位存储相应输入音调对应的二进制编码。分频模块fenpin接收table输出的分频系数tone,并据此分频,将对应频率的信号buzz输出给扬声器供其发声。七段数码管显示模块seg7根据对应的按键button,replay选择采用index_key或index_auto或者index_store,分别对应不同的数码管显示输出。点阵的显示模块lattice根据对应的按键button,replay选择采用index_key或index_auto或者index_store,分别对应不同的数码管显示输出。这样可以保第4页共36页第3页共36页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共36页证在不同的模式下点阵以及数码管都可以对应显示输出。2.总体框图与流程图图1系统实现流程图第5页共36页第4页共36页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第5页共36页图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表示不发音。这样可以实现对不同按键...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

简易电子琴的VHDL仿真与实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部