乐曲硬件演奏电路设计

乐曲硬件演奏电路设计

ID:16150382

大小:542.34 KB

页数:14页

时间:2018-08-08

乐曲硬件演奏电路设计_第1页
乐曲硬件演奏电路设计_第2页
乐曲硬件演奏电路设计_第3页
乐曲硬件演奏电路设计_第4页
乐曲硬件演奏电路设计_第5页
资源描述:

《乐曲硬件演奏电路设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《在系统编程技术》项目设计报告课程名称在系统编程技术任课教师设计题目乐曲硬件演奏电路设计班级姓名学号成绩日期13目录目录1前言:21.题目分析21.1功能要求21.2性能指标22.设计方案32.1顶层实体描述32.2模块划分42.3模块描述42.3.1Speakera模块42.3.2ToneTaba模块42.3.3NoteTabs模块52.4顶层电路图63.方案实现63.1NoteTabs模块仿真及描述63.2ToneTaba模块仿真及描述63.3Speakera模块仿真及描述73.4顶层电路仿真及描述74.硬件测试及说

2、明75.结论86.课程总结87.附录913前言:这次设计实验我做的是乐曲硬件演奏电路设计,通过在系统编程技术课程的学习,我已经学会了用VHDL语言来实现系统要求的电路设计。VHDL语言具有良好的电路行为描述和系统描述的能力,用VHDL语言进行电子系统的设计非常方便和实用,而基于VHDL的自顶向下的设计方法是其很大的一个优点。1.题目分析1.1功能要求(1)播放歌曲(2)简谱码输出显示在数码管显示(3)通过LED灯显示音阶1.2性能指标(1)乐曲硬件演奏电路的基本原理乐曲都是由一连串的音符组成,每一音符对应着一个确定的频率

3、,按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,所以,掌握好一首歌曲的节奏,就能完整地演奏出来。(2)音符频率和乐曲节奏多个不同频率的信号可通过对某个基准频率进行分频器获得,本设计中选取750KHz的基准频率,由于clk端输入的是较高频率12MHz信号,可以对其进行16分频。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速

4、度自然降低。简谱音符和频率关系:132.设计方案自顶向下的设计框图乐曲硬件电路设计数控分频器音乐节拍和音调发生器预置数查表电路2.1顶层实体描述顶层实体图当一个4Hz的时钟脉冲来到时,乐谱发生器模块输出一个音符数据给分频系数模块,分频系数模块输出此音符相应的分频系数,将分频系数送给数控分频器模块,当12MHz的时钟脉冲来到时,数控分频器就根据分频系数输出相应的频率(即此音符所对应的发生频率)给扬声器,扬声器就可发出对应音符的声音来.连续的4Hz的时钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分频系数模块,再经

5、过数控分频模块,最后扬声器一个接一个的发出音符数据所对应的声音来。曲子也就流畅的播放出来了,当乐曲一遍演奏完成后,乐曲发生器能自动从头开始循环演奏。132.2模块划分主系统由三个模块组成,分别为Speakera模块、ToneTaba模块、NoteTabs模块。(1)Speakera是数控分频模块;(2)ToneTaba是分频预置数查找表电路模块;(3)NoteTabs音调发生器模块。2.3模块描述2.3.1Speakera模块Speakera模块实体图音符的频率可以由此模块获得,这是一个数控分频器,由其clk端输入一具有

6、较高频率的信号,通过Speakera分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉冲极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。Speakera对clk输入信号的分频比由11位预置数Tone[10..0]决定。SPKOUT的输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone[10..0]与SPKOUT的输出频率就有了对应关系。例如在ToneTaba模块中若取Tone[10..0]=1036,将发出音符为“3”音的信号频率。2.3.

7、2ToneTaba模块ToneTaba模块实体图13音符的持续时间需根据乐曲的速度及每个音符的节拍数来确定,ToneTaba的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间即为此音符的节拍值。ToneTaba模块是乐曲简谱码对应的分频预置数查找表电路,其中设置了乐曲全部音符对应的分频预置数,每一个音符的停留时间由音乐节拍和音调发生器模块NoteTabs的clk输入频率决定。分频预置数的输出对应4位输入值Index[3..0]确定,而当乐曲全部分频预置数不止16个时,可以

8、用5位输入值Index[4..0]。输向ToneTaba中的Index[3..0]的值ToneIndex[3..0]的输出值与持续的时间由NoteTabs模块觉定。2.3.3NoteTabs模块NoteTabs模块实体图在NoteTabs中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器,计数最大值为138

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

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

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