




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目:题目: EDAEDA 课程设计课程设计 VHDL 设计乐曲硬件演奏电路的 一、一、 设计题目:设计题目: 乐曲硬件演奏电路的 VHDL 设计 二、二、 设计目标:设计目标: 1)能够播放“梁祝”乐曲。 2)能够通过 LED 显示音阶。 3)具有“播放/停止”功能,并在此基础上实现“按键演奏” 的电子琴功能。 三、三、 设计原理:设计原理: 1. 音乐基础知识 一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率, 节拍表示一个音符唱多长的时间。音符的节拍我们可以举例来说明。 43 在一张乐谱中, 我们经常会看到这样的表达式, 如 1=C4、 1=G4 3 等等。以4为例加以说明,它表示乐谱中以四分音符为节拍,每一小 结有三拍。比如: 图 1 其中 1 、2 为一拍,3、4、5 为一拍,6 为一拍共三拍。1 、 2 的时长为四分音符的一半,即为八分音符长,3、4 的时长为八 分音符的一半, 即为十六分音符长, 5 的时长为四分音符的一半, 即为八分音符长,6 的时长为四分音符长。那么一拍到底该唱多 长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为 400500ms 。我们以一拍的时长为 400ms 为例,则当以四分音 符为节拍时,四分音符的时长就为 400ms,八分音符的时长就为 200ms,十六分音符的时长就为 100ms。 2. 原理图框图: 图 2.框图 3. 原理图说明 音乐播放原理说明 音符的频率由数控分频器模块 Speakera 产生。ToneTaba模 块从 NoteTabs模块中输入的音符数据, 将对应的分频预置数据 传送给 Speakera 模块, 并将音符数据送到 LED 模块显示音阶。 NoteTabs模块中包含有一个音符数据 ROM,里面存有歌曲 “梁祝”的全部音调,在此模块中设置了一个 8 位二进制计数 器,作为音符数据 ROM 的地址发生器。这个计数器的计数频 率为 4Hz,即每一个数值的停留时间为 0.25 秒。例如: “梁祝” 乐曲的第一个音符为 “3” , 此音在逻辑中停留了 4 个时钟节拍, 即 1 秒钟时间,所对应的“ 3”音符分频预置数为 1036,在 Speakera 的输入端停留了 1 秒。随着 NoTabs 中计数器按 4Hz 的时钟速率作加法计数时,随着地址的递增,音符数据 ROM 中的音符数据将从 ROM 中通过输出端口输入到 ToneTaba模块, “梁祝”歌曲就开始连续自然地演奏起来。 键盘演奏原理说明 在模块 ToneTaba 中设置有八个键盘输入端口,分别对应基音 “1” 、 “2” 、 “3” 、 “4” 、 “5” 、 “6” 、 “7”和高音“1”八种音调。 当其中某个按键按下时,ToneTaba模块就将对应音符的分频预置 数送到数控分频模块 Speakera 模块产生相应音调,同送将音符送 到 LED 显示模块显示音节。 四、四、 设计内容设计内容 1) 取音调节拍模块 NoteTabs 图 5:NoteTabs实体图 模块实体由时钟输入信号 clk、 实现暂停与播放功能的使能 输入信号 en 和音符输出端 toneindex 组成。时钟输入端 clk 接 入 4Hz 信号,即 0.25 秒作为“梁祝”乐曲的基本时钟节拍。 NoteTabs模块设置有个计数器, 作为地址计数器, 用于从模块 内部的 music_rom 中取音符数据。 NoteTabs模块仿真图如下: 图 4 2) 音频预置数及演奏按键模块 ToneTaba 图 5:ToneTaba实体图 该模块的实体组成端口由音符数据输入端 index、音乐演奏或 音乐 播放选择输入端 口 yanzhou_en、八 个按键输入端 口 key_1key_8、 及音阶数据输出端口 code、音符分频数据输出端口 tone 组成。 当端口 yanzhou_en 置1时,进行按键音乐演奏功能,即将 对应按键的的音阶的分频数据送至模块 Speakera 产生音调;当端 口为0时,进行音乐播放功能,即将 NoteTabs 模块输入的音 符数据送至模块 Speakera 产生音调。 ToneTaba模块仿真图如下: 图 6 3) 数控分频模块 Speakera 图 7:Speakera 模块实体图 该模块由时钟输入信号端 clk、分频数据输入端 tone 以及 音调频率输出端spks 组成。 其 clk 端输入较高的频率 (12MHz) , 通过 Speakera 分频后由 spks 输出。 模块仿真图如下: 图 8 4) 软件流程图如下: 图 9 五、五、 仿真结果仿真结果 1. 原理图设计: 图 10 2.仿真结果图 仿真图 1:音乐播放 图 11 仿真图 1 说明: 音乐演奏或播放选择端 yanzhou_en 置0 ,音乐播放、暂停选择键 play_pause 置0 ,选择音乐播放功能,其中 code 端口输出的音符可送入译码 器模块显示音阶。 仿真图 2:音乐暂停 图 12 仿真图 2 说明: 音乐演奏或播放选择端 yanzhou_en 置0 ,选择音乐播放功能。当 音乐播放、暂停输入端口 play_pause 置1时,从图 12 与图 11 比较可知,其 中的图 12 的音符 6 因为暂停而被延长,音乐播放被暂停,当 play_pause 重新置 0时,音乐开始继续播放。 仿真图 3:按键演奏音乐 图 13 仿真图 3 说明: 音乐演奏或播放选择端 yanzhou_en 置 1 , 选择按键音乐演奏功能。 其中端口 tone_1 到 tone_7 对应1至7基音,端口tone_11 对应高音1 。 通过按不同的按键,即可从端口 spkout 输出不同的频率,即对应不同的音调。 演奏的音阶通过端口 code 送入译码器即可演示音阶。 六、总结六、总结 本设计完整地实现了音乐的播放、按键演奏音乐、音乐播放与暂 停功能,已基本符合课程设计的要求。通过本次课程设计,更熟练了 EDA 软件的使用,学会了怎么制作 LPM_ROM 元器件,加深了对 VHDL 语言的理解,熟练了利用原理图设计电路的方法, 体验到了将 自己的创意付诸实践的乐趣。 七、七、 附录附录 1、音调节拍模块 NoteTabs(实现了音乐播放与暂停功能) libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entitynotetabs is port( en,clk : in std_logic; -添加了使能端 toneindex: out std_logic_vector(3 downto 0); end; architecturebehav of notetabs is componentmusic_rom port( address :in std_logic_vector(7 downto 0); inclock: in std_logic; q: out std_logic_vector(3 downto 0) ); end component; signal counter : std_logic_vector(7 downto 0); begin cnt8: process(clk,counter,en) begin if en=1 then counter=counter;-使能音乐播放与暂停 elsif counter=138 then countertoneindex,inclock=clk); end; 2、音频预置数及演奏按键模块 ToneTaba libraryieee; use ieee.std_logic_1164.all; entitytonetaba is port(index : instd_logic_vector(3 downto 0); code: out std_logic_vector(3 downto 0); tone: out std_logic_vector(10 downto 0); yanzhou_en : in std_logic;-音乐演奏使能键 key_1,key_2,key_3,key_4,key_5,key_6,key_7,key_8:in std_logic); end; architecturebehav of tonetaba is signalabc:std_logic_vector(7 downto 0); signaltemp:std_logic; begin abc= key_8 process(index, abc,yanzhou_en) begin temp=0; ifyanzhou_en=1 then temp tone=01100000101;code tone=01110010000;code tone=10000001100;code tone=10010101101;code tone=10100001010;code tone=10101011100;code tone=10110000010;code tone tone=11111111111;code tone=01100000101;code tone=01110010000;code tone=10000001100;code tone=10010101101;code tone=10100001010;code tone=10101011100;code tone=101100000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年创新药研发靶点发现与验证技术标准化流程研究报告
- 航空航天高精度加工技术在2025年航空器试验设备加工中的应用报告
- 村级公路挡水墙合同协议
- 消防分包合同协议书范本
- 生鲜仓储配送承包协议书
- 电梯除尘垫采购合同范本
- 混凝土废渣处理合同范本
- 独栋写字楼出租合同范本
- 消费扶贫合作合同协议书
- 自动放弃工伤待遇协议书
- VMware双活数据心解决方案详解
- 管理学说课稿
- 办公用品及耗材采购服务投标方案(技术方案)
- 小学三年级数学下册计算题大全(每日一练共25份)
- SHT+3413-2019+石油化工石油气管道阻火器选用检验及验收标准
- 劳务招聘合作伙伴合同模板
- JT-T-329-2010公路桥梁预应力钢绞线用锚具、夹具和连接器
- 甄嬛传电子版剧本第01-10集
- 2024年职业卫生技术人员评价方向考试题库附答案
- 大学新生入学教育培训课件中的口才表达训练
- 脊髓电刺激术护理查房
评论
0/150
提交评论