毕业论文-基于fpga简易乐器演奏器设计说明书

毕业论文-基于fpga简易乐器演奏器设计说明书

ID:13082241

大小:425.50 KB

页数:44页

时间:2018-07-20

毕业论文-基于fpga简易乐器演奏器设计说明书_第1页
毕业论文-基于fpga简易乐器演奏器设计说明书_第2页
毕业论文-基于fpga简易乐器演奏器设计说明书_第3页
毕业论文-基于fpga简易乐器演奏器设计说明书_第4页
毕业论文-基于fpga简易乐器演奏器设计说明书_第5页
资源描述:

《毕业论文-基于fpga简易乐器演奏器设计说明书》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、乐曲演奏设计实验任务:采用VHDL来实现的简易乐曲演奏器。它能实现自动演奏已存歌曲。且要求实现如下功能:(1)演奏时可以通过按键选择是自动演奏,自动演奏则是演奏已存入的固定乐曲;(2)至少保存一首自动演奏的乐曲,且自动演奏的乐曲能重复播放;(3)进行自动演奏时,数码管上要同时能显示演奏乐曲的乐谱;(4)自动播放时,设置低速,中速,快速控制键,能实现乐曲不同速度的播放。1乐曲演奏电路原理声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一

2、个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。当一个20MHz的时钟脉冲来到时,乐谱发生器模块输出一个音符数据给分频系数模块,分频系数模块输出此音符相应的分频系数,将分频系数送给数控分频器模块,当20MHz的时钟脉冲来到时,

3、数控分频器就根据分频系数输出相应的频率(即此音符所对应的发生频率)给扬声器,扬声器就可发出对应音符的声音来.连续的4Hz的时钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分频系数模块,再经过数控分频模块,最后扬声器一个接一个的发出音符数据所对应的声音来。曲子也就流畅的播放出来了。2整体设计思想根据设计要求,系统组成方框图3-1所示,它由乐曲选择模块、数码显示模块、蜂鸣器模块、模式选择模块组成。28图3-1乐曲演奏电路结构方框图基准时钟20MHz模式选择选歌,控制FPGA时钟电路峰鸣器电路乐曲选择电路数码显示电路4Hz20

4、MHz扬声器数码管3乐曲演奏电路模块3.1乐曲选择模块1乐曲选择模块在此模块中设置了一个9位二进制计数器((计数最大值为511),作为音符数据ROM的地址发生器。这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25s,恰为当全音符设为1s时,四四拍的4分音符持续时间。同时为了实现对歌曲选择得控制以及对播放速度的要求,可以多分出几个频率,然后由控制开关来选择歌曲和播放频率。随着音调发生器模块中的计数器按不同的时钟速率作加法计数时,乐曲就开始连续自然地依据不同的速度演奏起来了。2乐曲选择模块的仿真图图3-2乐曲选择模块仿真

5、图通过仿真图可以清楚的看到,时钟clk由0开始计数,每计一次数输出toneindex的值随之发生一定的变化,只不过根据乐谱的不同,输出的变化也不尽相同。由于选择开关的控制可以看出,在不同模式下播放的歌曲是不同的,实现了选歌的功能。3乐曲选择模块生成的逻辑符号图28图3-3乐曲选择模块逻辑符号图3.2数码显示模块1数码显示模块该编码模块的作用为将输入的音符数据翻译为音乐产生模块的所需要的分频系数,并且显示音符的数字码型和高音阶,通过对照表各音名对应的分频系数值及初始值,根据输入得到初始值,从而得到分频系数以便进行分频,得到所需的频率

6、。2音数码显示模块的仿真图图3-4数码显示模块仿真图在此程序中index为音乐节拍产生模块输出的音符数据,经过翻译后将tone输出到数控分频模块为其提供分频系数的初始值,code为数码管显示的字符数,high1为高音显示,当乐谱中有高音时,就会相应地以二进制的形式表现出来。3数码显示模块生成的逻辑符号图图3-5数码显示生模块逻辑符号图3.3模式选择模块1模式选择模块根据设计的要求,该简易乐曲演奏器能实现自动演奏乐曲的功能。与此同时,还需要一个整体复位信号rst来控制该演奏器是否工作,当rst为1时,停止演奏,为0时,可以演奏。2模

7、式选择模块仿真图由仿真图可以看出,当rst为1时,输出为0,电路停止工作。28图3-6模式选择模块仿真图3模式选择模块生成的逻辑符号图图3-7模式模块逻辑符号图3.4蜂鸣器模块1蜂鸣器模块该模块的clk端输入一个具有较高频率(本实验为20MHz)的信号,通过分频后由spks输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲信号,为了便于驱动喇叭,需另加一个D触发器均衡其占空比,也即作二分频处理。speak对clk输入信号的分频比由11位预置数tone[10..0]决定。spks的输出频率将决定每一音符的音调,这样分频计数器

8、的预置数tone[10..0]与spks的输出频率就有了对应关系。228蜂鸣器模块的仿真图图3-10蜂鸣器模块仿真图在此仿真图中,输入clk是一个频率较大的时钟信号,输入tone代表着某个音符的分频初始值,输出spks则代表将输入clk先经过12次

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

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

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