PLD与数字系统实训设计--音乐发生器

PLD与数字系统实训设计--音乐发生器

ID:35604155

大小:95.00 KB

页数:16页

时间:2019-03-31

PLD与数字系统实训设计--音乐发生器_第1页
PLD与数字系统实训设计--音乐发生器_第2页
PLD与数字系统实训设计--音乐发生器_第3页
PLD与数字系统实训设计--音乐发生器_第4页
PLD与数字系统实训设计--音乐发生器_第5页
资源描述:

《PLD与数字系统实训设计--音乐发生器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、PLD与数字系统实训设计题目:音乐发生器系别:班级:指导老师:姓名:学号:完成时间:年月日课程设计题目、内容、要求设计题目音乐发生器设计要求利用PLD器件设计一个音乐发生器,可演奏“梁祝”片段,可重复演奏。设计过程根据音乐发生器原理框图,用可编程逻辑器件配一个扬声器设计。用各个频率分频来表示“梁祝”的音阶与音名,从而产生乐谱,预置计数器来置位。设置一个时长计数器使之能够循环演奏,通过数码管来动态显示乐曲演奏时对应的音符,最后通过二分频的分频作用再通过扬声器来发声。成绩评定指导教师评语设计等级目录1、课程设计题目、内容、要求………………

2、………………1.1设计目的………………………………………………11.2设计要求………………………………………………12、设计思路……………………………………………………12.1音名与频率的关系……………………………………22.2音长的控制……………………………………………32.3演奏时音名的动态显示………………………………33、VHDL代码…………………………………………………34、仿真结果……………………………………………………105、硬件下载验证………………………………………………116、心得体会(总结)…………………………………

3、………117、附录…………………………………………………………128、附图1………………………………………………………149、附图2………………………………………………………15题目:音乐发生器1.1设计目的:利用可编程逻辑器件和一个小扬声器设计一个音乐发生器。1.2设计要求:利用PLD器件设计一个音乐发生器,可演奏“梁祝”片段,可重复演奏。2.设计思路:组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过可编程逻辑器件的手段来利用这些数值所希望乐曲的演奏效果。

4、二分频预置计数器4MHz扬声器音名译初始计数值数码管乐谱产生器4Hz音乐产生器原理框图2.1音名与频率的关系音乐的十二平均率规定:每两个八音度(如简谱中的中音1与高音1)之间的频率相差一倍。在两个八音度之间,又可分为十二个半音,每两个半音的频率比为2的12方根。另外,音名(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每个音名的频率如下表所示。音名分频系数初始值音名分频系数初始值低音360672124中音23405478低音551023089中音3303451

5、57低音645453646中音525515640低音740504141中音622735918低音138224369中音119116280各音阶频率对应的分频值由于最大的分频系数诶6067,故采用13位二进制计数器已能满足分频要求。在上表中,除给出了分频比以外,还给出了对应于各个音阶频率时计数器不同的初始值。对于不同的分频系数,只要加载不同的初始值即可。采用加载初始值而不是将分频输出译码反馈,可以有效地减少本设计占用可编程逻辑器件的资源,这也是同步计数器的一个常用设计技巧。对于乐曲中的休止符,只要将分频系数设为0,即初始值为213-1=

6、8191即可,此时扬声器将不会发声。2.2音长的控制本例演奏的“梁祝”片段,最小的节拍为1/4拍。将1拍的时长定为1秒,则只需要再提供一个4Hz的时钟频率即可产生1/4拍的时长。演奏的时间控制通过记谱来完成,对于占用时间较长的节拍(一定是1/4拍的整数倍),如2/4拍,只需将该音名连续记录两次即可。本例要求演奏时能循环进行,因此需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。2.3演奏时音名的动态显示如果有必要,可以通过一个数码管或LED来显示乐曲演奏时对应的音符。如用三个数码管,分别显示本例中的高、中、低音名,就

7、可实现演奏的动态显示,且十分直观。本例设计通过三个数码管来显示演奏时的音名,其中HIGH显示为高音区音节(仅高音1),MED[2..0]显示的是中音区音节(中音6,5,3,2,1),LOW[2..0]显示的是低音区音节(低音7,6,5,3)。数码管显示的七段译码电路在此不作专门讨论。需要说明的是,七段译码电路输入为4位,而将HIGH、MED、LOW用作输入时,不足4位的高位均为低电平“0”。3.VHDL程序代码本设计的外部接口如下图所示,程序中定义了一个5位宽的zero[4..0],这是由于实验平台上连向数码管的引脚在不赋值的情况下,

8、这将导致显示音名错误,设置zero[4..0]就是要将没用到的引脚(高音的高3位、中音的高1位和低音的饿高1位)赋一个低电平,从而避免显示错误。CLK_4MHzDIGIT[6..0]CLK_4HzZERO[4..0]SP

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

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

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