ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:176.96KB ,
资源ID:12394452      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12394452.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(论文电子琴6.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

论文电子琴6.docx

1、论文电子琴6目 录1引言 11.1 电子琴设计的背景 11.2 电子琴设计的意义 12电子琴设计方案的比较与选择 22.1 EDA技术设计电子琴 22.2单片机设计电子琴 32.2 555定时器设计电子琴 43简易电子琴设计 53.1电子琴的工作原理 53.1.1音调控制的设计 63.1.2节拍控制的设计 73.2电子琴中各模块的设计 73.2.1乐曲自动演奏电路模块 93.2.2音调发生模块 113.2.3数控分频模块 123.2.4顶层设计模块 134系统仿真 165总结 17参考文献 18附录 19致谢 31声明 32 摘 要本设计主要采用EDA技术设计简易的八音符电子琴,可以通过按键输

2、入来控制演奏已存入的乐曲。本设计包含乐曲自动演奏模块,音调发生模块和数控分频模块。程序通过试运行,时序仿真,电路功能验证,顺利的实现了设计目标。本设计的特点是成本比较低,性能稳定,精度高,有一定的开发价值。关键词:电子琴;VHDL语言;EDA技术AbstractThis paper introduces the VHDL language and modular design method to produce an electronic piano that can give a signal of the keyboard 8 scale. This system cans auto-pl

3、ay music that has been restored in system. This system includes auto-played module, tone module and frequency divider module. Simulation showed this design can get a good result. The most specialty of the design is low cost, stable performance and high precision. Key words: Electric piano; Very-High

4、-Speed Hardware Description Language; EDA 1引言1.1电子琴设计背景 随着社会的发展进步,音乐逐渐成为人们生活中很重要的一部分。有人曾说过喜欢音乐的人不会向恶,所以音乐能够陶冶人们的情操。 电子琴是现代科学技术与古典音乐相结合的产物,是一种新型键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。现在的电子琴一般使用PCM或AWM采样音源。所谓采样就是录制乐器的声音,将其数字化后存入ROM里,然后按下键时CPU回放该音。甚至有一些高级编曲键盘可以使用外置采样(比如Tyros 3的硬盘音色)。现代电子琴并非“模仿”乐器音色,它使用的就是真

5、实乐器音色。当然,现在力度触感在电子琴里是必备的。而且现代电子琴还加上了老式电子琴的滤波器,振荡器,包络线控制来制造和编辑音色。甚至也带上了老式电子琴的FM合成机构。1.2电子琴设计意义 本设计是采用EDA技术设计的一个八音符电子琴,再利用VHDL文本输入法设计乐曲演奏电路。该系统基于计算机中时钟分频器的原理,采用自上而下的设计方法来实现,通过自动演奏已存入的歌曲。它可以通过按键输入来控制音响。系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。系统实现用VHDL语言按模块化方式进行,然后进行编程、时序仿真、电路功能验证,奏出美妙的乐曲。利用EDA技术设计一个电子琴有如下几点意义:

6、(1)这种方法对研究对象的材料性质依赖较小,有易于实现、成本低,体积小等优点;(2)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计;(3)因为本课题对应用VHDL语言编程要求较高,所以可以通过改变程序来实现不同音色,演奏不同的乐曲,灵活性较高,比传统电子琴功能更完善;(4)EDA技术广泛应用在现代科技生活中,本课题的研究是非常有实用和商业价值的; (5)对本课题的研究与设计,深入对EDA技术的理解和应用。2电子琴设计方案的分析与选择2.1 EDA技术设计电子琴运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA 工

7、具对各模块进行仿真验证。本设计包含如下四个模块:乐曲自动演奏模块,音调发生模块,数控分频模块和数码管显示模块最后把各个模块整合后,通过对应关系连接起来。将验证好的程序下载到试验箱,通过试验箱的按键来实现曲谱的演凑。采用VHDL语言编程来实现电子琴的各项功能。VHDL硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可以使用语言的形式来进行数字系统的硬件结构、行为的描述,直接设计数字电路硬件系统。从本文描述的系统可以看出,通过编程、下载后,该芯片已经具备了原来需要使用复杂的数字电路实现的功能;这样,使用语言描述的形式,大大缩短了开发周期,减少了开发难度,并使得系统更加灵活、稳健。设计框图如

8、图1所示:图1 电路结构方框图当12MHZ 的时钟脉冲来到时,数控分频器就根据分频系数输出的相应频率(即:此音符所对应的发生频率)给扬声器,扬声器就可以发出对应音符的声音来。连续的8HZ的时钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分频系数模块,再经过数控分频模块,最后扬声器一个接一个的发出音符数据所对应的声音。乐曲也就连贯了。2.2 单片机设计电子琴 电子琴的发生原理以及如何改变音色的基本原理:声音的频谱范围约在几十到几千赫兹, 若能利用程序来控制单片机某个口线不断输出“高”“低”电平, 则在该口线上就能产生一定频率的方波, 将该方波接上喇叭就能发出一定频率的声音, 若再利用程

9、序控制“高”“低”电平的持续时间, 就能改变输出波形的频率从而改变音调。乐曲中, 每一音符对应着确定的频率, 下表给出各音符频率。如果单片机某个口线输出“高”“低”电平的频率和某个音符的频率一样, 那么将此口线接上喇叭就可以发出此音符的声音。根据此原理设计, 对于单片机来说要产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间再输出低电平, 如此循环的输出就会产生一定频率的方波, 通过改变延时的时间就可以改变输出方波的频率。通过对单片机系统的学习和认识,我认识到通过8051单片机p1输入到系统,可以完成此简易电子琴的任务。使用80C51单片机做此电子琴是我们的不二选择,因为在我们的课程

10、学子中,了解和接触最多的就是80C51,别的型号的芯片我们不熟,所以80C51是个很好的选择。乐音实际上是有固定周期的信号,我们可以用80C51的一个定时器(如T0)控制,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在P1.0脚上输出方波周期信号,产生乐音。根据不同的按键,调节T0的溢出时间,可输出不同频率的乐音,单片机因其体积小、功能强、价格低廉而得到广泛应用。本设计介绍用8051单片机设计微型电子琴的方法,仅需80C51最小系统,扩展一组小键盘,再加一个音频小功放,输出到扬声器,这样就做出了一台微型电子琴。设计框图如图2所示:图2 系统结构框图2.3 555定时器设计电子琴本设计方

11、案采用由两个555集成定时器组成简易电子琴。整个电路由主振荡器,颤音振荡器,扬声器和琴键按钮等部分组成。它的振荡频率可以通过改变振荡电路中RC 元件的数值进行改变。根据这一原理,通过设定一些不同的RC 数值并通过控制电路,按照一定的速度依次将不同值的RC 组件接入振荡电路,就可以使振荡电路按照设定的要求,有节奏地发阳已设定的音频信号或音乐。设计框图如图3所示主振荡器由555定时器,七个琴键按钮S1S7,外接电容C1、C2,外接电阻R8以及R1R7等元件组成。颤音振荡器由555定时器,电容C5及R9、R10等元件组成,颤音振荡器振荡频率较低为64Hz,若将其输出电压U连接到主振荡器555定时器复

12、位端4,则主振荡器输出端出现颤音。按框图接线后闭合不同按键即可令喇叭发出不同频率的声响,从而模拟出电子琴的工作。555定时器是一种模拟-数字混合式集成定时器,外形为双列直插8脚结构,体积很小,使用起来方便。只要在外部配上几个适当的阻容元件,就可以构成史密特触发器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。图3 系统框图综上所述,由于本设计主要用于儿童玩具方面,因此在设计上尽量使其安全和简单易操作。经过对以上三个方案的比较和分析,方案一容易达到技术要求且操作简单安全,对设计者自身要求也最低,因

13、此决定选用方案一来实现电子琴的设计。3 简易电子琴设计3.1电子琴的工作原理声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。而乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可(音符和频率的关系见表1)。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频

14、率及其持续的时间是乐曲能够连续演奏的两个关键因素。图4 电子琴原理框图3.1.1 音调控制的设计频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。在两个八度音之间又分为十二个半音。另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,因此必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分频比太小,四舍五入取整后的误差较大;若基准

15、频率过高,虽然误差较小,但分频数将变大。实际的设计应综合考虑这两方面的因素,在尽量减小频率误差的前提下取合适的基准频率。因此,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音分频信号。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。不同的音调是因为所对应的频率不同,按照这个原理我们把一个较大的频率进行不同系数的分频,就可以得到高低不同的频率,从而实现电子琴的功能。其所输出的预数由最后一级的数控频器所决定,其计算公式如下:由于所设计的数控分频计采用12MHZ作为时钟源,并通过一次12分频给出频率为1MHZ的脉冲溢出信

16、号,再对该1MHZ的溢出信号进行12位2进制码的带预置数进行计数,并给出一个频率随预置数变化的脉冲信号。由于该脉冲信号不具有驱动蜂鸣器的能力,故对此脉冲信号进器发声,根据公式 ,其中为音阶对应的频率,故最终输出信号的频率与预置数的关系如表1所示: 图5 音调控制框图3.1.2 节拍控制的设计音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,在想控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,在这个设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4Hz的时钟频率即可产生四分音符的时长。

17、要想让系统知道现在应该演奏哪个音符,而这个音符持续的时间应该是多少,就必须编写乐曲文件,在乐曲文件中音符是按地址存放的,当系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒,而如果在曲谱文件中这个音符为三拍音长,只要将该音符连续书写三遍,这时系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,通过这样一个简单的操作就可以控制音乐的音长了。乐曲休止符,分频系数设为0,此时扬声器不发声。本设计按最小节拍为1/4拍,若将1拍的时间定为1秒供一个4Hz的时钟频率即可产生1/4拍的时长(0.2

18、5秒),对于其它占用时间较长的节拍(必为1/4拍的整数倍)则只需要将音符连续输出相应的次数就可以了。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也相应的快;时钟慢时输出节拍的速度就慢,演奏的速度自然也相应的降低。3.2电子琴中各模块设计本设计由自顶向下的设计方式,有发声模块、自动播放模块和音调控制模块。如下图6所示。图6 简易电子琴设计图 发声模块:主要是根据音调的频率驱动蜂鸣器发声。 自动播放模块:将多首音乐存放在存储器中,按照按键的变化循环演奏出选中的音乐。 音调控制模块:根据自动演奏模块输出的音符,实现8音符的频率控制,驱动蜂鸣器发声。图7 电子琴设计流程

19、图本设计采用结构化程序设计方法,功能模块各自独立,实际上在设计中将按键输入和乐曲存储放在了一个自动演奏模块中。软件设计的核心部分是数控分频器,按键输入和乐曲存储都是提供给它相应的分频比。对输入的基准时钟信号进行多次分频,最终输出的就是想得到的音阶的频率。首先将编译好的1首音乐存入存储器中,通过按下某按键来实现音乐的自动播放。3.2.1乐曲自动演奏模块此模块包含节拍产生模块和音符产生模块两个子模块,可合写成一个文件。(1) 节拍产生模块设计分析此模块为一计数器,现在需要进一步决定计数器的模及其输入时钟频率。根据乐曲梁祝的简谱,如图5所示,此乐曲以四分音符为一拍,四拍为一节,所有的音长的最小因数是

20、一个十六分音符时值,所以以十六分音符时值作为一个状态持续时间,把乐曲梁祝中各个音所占据状态个数累加而得知节拍产生模块计数器的模为139,最后休止符用了3个单位时间。根据经验设定1min演奏60拍,因此1拍持续时间即四分音符的时值为1s,一个状态持续时间即一个十六分音符时值为0.25s。故节拍产生模块的输入时钟周期为0.25s,频率为4Hz。(2) 音符产生模块设计分析音符产生模块的功能时将节拍电路的计数器的计数值按照乐曲梁祝的简谱译成对应的音符,若用Counter表示计数器的状态,Dataout表示音符符号,则可对乐曲梁祝的简谱出现的音作如下规定见表3。其中输入时钟信号与CLK4Hz相连;IN

21、DEX表示音符信息。INDEX取值为115,故为4为二进制信号。PROCESS (CLK, AUTO) VARIABLE COUNT: INTEGER RANGE 0 TO 10; BEGIN IF AUTO =1 THEN COUNT: =0; CLK211 THEN CLK2=1; ELSIF COUNT=0 THEN CLK2TONE=2047; CODE=0; HIGHTONE=773; CODE=0; HIGHTONE=912; CODE=0; HIGHTONE=1036; CODE=0; HIGHTONE=1116; CODE=0; HIGHTONE=1197; CODE=0; H

22、IGHTONE=1290; CODE=0; HIGHTONE=1372; CODE=0; HIGHTONE=1410; CODE=0; HIGHTONE=1480; CODE=0; HIGHTONE=1542; CODE=0; HIGHTONE=1590; CODE=0; HIGHTONE=1622; CODE=0; HIGHTONE=1668; CODE=0; HIGHTONE=1692; CODE=0; HIGHTONE=1728; CODE=0; HIGHNULL; END CASE;END PROCESS;乐曲梁祝是C调,其频率数据见表,在表中,可控分频模块的输入时钟为12MHz,经前

23、后分频后为500 000Hz,故供给可控分频模块的分频系数为:,又考虑到最大分频比为,其中二进制表示为10110011000,故可控分频模块的计数器为11位二进制计数器。 图9 音调发生模块原理图 3.2.3数控分频模块 此模块的功能是用一个可控分频电路来产生演奏音乐所需的每个音。可控分频模块结构体描述如下: 图10数控分频模块原理图可控分频模块是一个具有12预分频和2后分频的可控电路。可控分频模块的输入时钟信号CLK频率选12MHz,为了使可控分频模块分频系数取值范围比较合适,输入时钟先经12分频,同时为了使输出信号SPKS具有较高的驱动功率,可控分频后再经2分频,使输出信号SPKS具有50

24、%的占空比,从而具有较高的驱动功率。分频电路的描述与计数器电路相似,下面进程描述一个12分频电路:PROCESS (CLK)VARIABLE COUNT4: INTEGER RANGE 0 TO 15;BEGINPRECLK11 THEN PRECLKCLK8HZ, TONEINDEX=TONEINDEX);U2: TONETABA PORT MAP (INDEX=TONEINDEX, TONE=TONE, CODE=CODE1, HIGH=HIGH1);U3: SPEAKERA PORT MAP (CLK=CLK12HZ, TONE=TONE, SPKS=SPKOUT);END ART; 4

25、系统仿真由于本设计从功能和时序仿真图上来判断设计是否成功不太直观。最好的方法是完成下载验证通过实际电路验证,所以这里给出仿真结果有误差不是很符合实际效果。(1)乐曲自动演奏模块由VHDL语言实现后,其仿真图如图11所示: 图11 乐曲自动演奏模块的仿真图该图输入系统时钟信号CLK初值设为0,自动演奏AUTO设为1,键盘输入信号INDEX2为00,INDEX0为音符信号输出,是5位的二进制代码它根据COUNT0的值改变而改变。(2)音调发生模块由VHDL实现后,其仿真图如图12所示: 图12 音调发生模块仿真图 该模块的唯一输入信号INDEX对应就是自动模块中最后的输出TONE,音符显示信号CO

26、DE,高低音显示信号HIGH和音符分频系数都是根据音符输入确定的。由图可知输入为INDEX分别为0,1,2,3,4,5,6,7和8,9,A,C,D,E,F时分别对应CODE都是0,1,2,3,4,5,6,7。(3)数控分频模块由VHDL程序实现后,其仿真图如图13 所示: 图13 数控分频模块仿真图因TONE1为11位,时序仿真是会因为计数次数过多而次导致仿真长时间不能完成。故为便于时序仿真,VHDL语言描述中仅将TONE110 DOWNTO 0 修改为3 DOWNTO 0,其仿真结果本质一致。由时序仿真可见,根据预置数的不同,其输出的频率也有规律性的变化。(3) 顶层设计模块由VHDL程序实现后,其仿真图如图14所示: 图14 简易电子琴整个系统的仿真图 该图输入系统时钟信号CLK12MHZ初值为0,自动演奏信号AUTO初值为0。 5总结本设计主要采用EDA技术设计一个简易的八音符电子琴,可以通过按键输入来控制音响从而演奏出已存入的乐曲。然后利用VHDL语言编

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1