欢迎来到天天文库
浏览记录
ID:10789538
大小:418.50 KB
页数:17页
时间:2018-07-08
《《友谊地久天长》乐曲演奏电路设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、黑龙江科技学院课程设计任务书一、设计题目:二、设计的主要内容:指导教师:日期:教师评语:评阅成绩:评阅人:日期:摘要与利用微处理器(CPU或MCU)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。如何使用EDA工具设计电子系统是人们普遍关心的问题,本设计在美国ALTERA公司MAX+plusⅡ的EDA软件平台上,使用层次化设计方法,实现了乐曲发生器的设计。本系统是利用硬件描述语言VHDL
2、的设计思想设计的一个乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现。系统由音调发生模块和数控分频模块两个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。本系统功能比较齐全,有一定的使用价值。关键词:乐曲;4MHz时钟;VHDL;EDA第1章《友谊地久天长》乐曲演奏电路设计概述1.1系统设计目的本系统是利用硬件描述语言VHDL的设计思想设计的一个乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现。系统
3、由音调发生模块和数控分频模块两个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合,本系统功能比较齐全,有一定的使用价值。1.2设计要求1.2.设计任务(1)音高与频率的对应关系见下表1_1:1234567低音131147165175196221248中音262294330350393441496高音525589661700786882990音高与频率的对应关系见下表1_1(2)《友谊地久天长》乐谱见图1_2:第2章《友谊地久天长》乐曲演奏电路设计思想2.1系统
4、设计方案2.1.1音符与频率的关系我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素,首先让我们来了解音符与频率的关系。乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12√2。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率,如表1所示:产生各音符所需的频率可用一分频器实现
5、,由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但会增加分频器的分频级数。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。本文设计的乐曲发生器选取4MHz的基准频率。若无4MHz的时钟频率,则可以先分频得到4MHz或换一个新的基准频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会"走调"。表1_1中的分频系数
6、是从8MHz频率二分频得到的4MHz频率基础上计算得出的。由于最大的分频系数为9101,故采用14位二进制计数器已能满足分频要求。1234567低音131147165175196221248中音262294330350393441496高音525589661700786882990音高与频率的对应关系见下表1_12.1.2程序设计原理我们在美国AI.TERA公司MAX+plusⅡ的EDA软件平台上,使用层次化设计手段,实现了《友谊地久天长》乐曲发生器的设计。图2为《友谊地久天长》乐曲发生器的顶层电路音符
7、的持续时间需根据乐曲的速度及每个音符的节拍数来确定,TABLE元件首先是为PULSE元件提供决定所发音符的分频预置数,而此数停留的时间即为此音符的节拍值。在TABLE元件中设置了一个8位二进制计数器(计数最大值为138),这个计数器的计数频率选为4Hz,所以每一计数值的停留时间为0.25s,即四四拍的4分音符持续时间。例如,《友谊地久天长》乐曲的第一个音符低音3"(1拍),停留的时间需用4个计数时钟节拍,即1s。相应地,所对应的"低音3"音符分频预置值为9100,其值在AF[13..0]输出端停留了1s
8、。随着TABLE元件中的计数器按4Hz的时钟速率作加法计数时,《友谊地久天长》乐曲就开始连续自然地演奏起来了。2.2各模块功能模块总体框图如下:模块PAIA控制每一个音的长短,送初值给FANA模块,从而控制音高。音符的持续时间必须根据乐曲的速度以及每个音符的节拍数决定,因此此模块的功能也就是为FANA提供决定所发音的分频预置值,而此数在FANA输入口停留时间即为此音节节拍值。模块FANA的功能是根据PAIA送来的初值倒计时,每次计到0时就使
此文档下载收益归作者所有