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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于vhdl八音符电子琴电路设计Word文档下载推荐.docx

1、用户可以将自己编制的乐曲存入电子琴,演奏时可以选择键盘输入乐曲或者自动演奏已存入的乐曲。二 、总体框图系统设计方案:方案一:采用单个的逻辑器件组合实现。这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然。但是由于元器件种类、个数繁多,而过于复杂的硬件电 路也容易引起系统的精度不高、体积过大等不利因素。例如八个不同的音符是由八个不同的频率来控制发出的,而采用方案一就需要运用不同的分频器来对信号进行不同程度的分频。所用仪器之多显而易见。 方案二: 采用VHDL语言编程来实现电子琴的各项功能。系统主要由电子琴发声模块、选择控制模块和储存器模块组成。和方案一相比较,方案二就显得比较笼统,只是把

2、整个系统分为了若干个模块,而不牵涉到具体的硬件电路。但是我们必须看到用超高速硬件描述语言VHDL的优势,它不仅具有良好的电路行为描述和系统描述的能力而且通俗易懂。 经过对以上两种方案的分析、比较和总结,我们选用方案二来进行八音符电子琴的设计。八音符电子琴设计总体框图,如图1:NOTETABSTONETABA译码器分频器扬声器SPEAKERA图1 八音符电子琴设计总体框图该系统由三个模块:Songer、Div和SEG7(7段译码器)组成。1. Songer模块:此模块包括3个小模块,分别是NoteTabs模块,ToneTab模块和Speakera模块。此外,还需建立一个名为“music”的LPM

3、_ROM模块与NoteTabs模块连接。1 NoteTabs模块:该模块的功能就是定义音符数据ROM“music”随着该模块中的计数器控制时钟频率速率作加法计数时,即地址值递增时,音符数据ROM中的音符数据。将从ROM中通过ToneIndex3.0端口输向ToneTaba模块,演奏采茶舞曲。2 ToneTaba模块:是乐曲简谱码对应的分频预置数查找表电路,其中设置了乐曲的全部音符所对应的分频置数,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs的CLK的输入频率决定,这些值由对应于ToneTaba的4位输入值Index3.0确定,最多有16种可选值。输向ToneTaba中Index

4、3.0的值ToneIndex3.0的输出值与持续的时间由模块NoteTabs决定。3 Speakera模块:是一个数控分频器,音符的频率可由此模块获得。由CLK端输入一具有较高频率的信号,通过Speakera分频后由SPKOUT输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号。为了利用驱动扬声器,需加一个D触发器以均衡其占空比,频率将是原来的1/2。Speakera对CLK输入信号的分频比由预置数Tone决定。SPKOUT的输出频率将决定每一音符的音调。 2. Div模块:由于所使用的硬件设备不能满足设计所需要的两个CLK输出 的频率,所以使用一个分频器来实现把一个50MHz的

5、晶体振荡频率分成一个12MHz,一个8Hz两个分频率,再把两个频率分别给所需的两个模块。3. EG7模块:SEG7 模块是一个七段译码器,作用是在硬件上显示音频的高 低,用0到7分别对应空节拍do、ri、mi、fa、suo、la、xi,高音时,LED灯亮,数码管显示对应数字。发音原理:1. 乐曲演奏的原理组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲能连续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率的高低和持续时间,就可以使扬声器发出连续的乐曲声。2.音调的控制: 频率的高低决定了音调的高低。2.1 基准频率f0的选取所有不同频率的信号都是从同一个基准频率f0

6、分频而得到的。由于音节频率多为非整数,而分频系数又不能为小数,因此必须将计算所得的分频数四舍五入取整。若基准频率过高,则分频比太小,取整后误差较大。若基准频率过高,虽然误差减小,但分频数变大。综合这两方面因素,在尽量减小频率误差的前提下取合适的基准频率,在此取f0=12MHz。2.2 分频系数,二进制计数器计数的容量N和预置数的选取 分频系数A=f0/音名频率分频系数n=f0/音名频率/2N=MAX分频系数n由表1可得最大分频系数为1274,因此N=2048为2的11次方。因此二进制计数器设为11位二进制加法计数器,其计数容量为2048,计数的最大值为2047。预置数=N-分频系数n表1为各音

7、阶的频率、对应的分频系数及预置数:3. 音长的控制:音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定的。采茶舞曲中最短的音符为四分音符,如果全音符的持续时间为1s,则四分音符的持续时间为0.25s,二分音符持续的时间为0.5s等等,只需再提供一个4Hz的时钟频率。每来一个脉冲计一次数,每一计数值的停留时间为0.25s,即要输入一个全音符时需要计四次数才行,则应在Rom表格中输出相应音符四次,表示一个全音符的持续时间。三、选择器件 1.装有QuartusII软件的计算机一台。2.外置扬声器3.7段数码管4.LED灯一个5.芯片:使用altera公司生产的Cyclone系列芯片,如EP1C1

8、2Q240C8芯片。6.EDA实验箱一个。7.下载接口是数字芯片的下载接口(JTAG),主要用于FPGA芯片的数据下载。Cyclone器件的配置器件:此次设计实验采用ALTERA公司的cyclone系列的FPGA芯片EP1C12,设计和仿真采用ALTERA公司的QUARTUS II软件,EP1C12各项参数参照表2。 Cyclone的配置器件 配置器件器件数量EP1C3EP1C4EP1C6EP1C12EP1C20EPCS11N/AEPCS4EPC2 2EPC4EPC8EPC16 表2 EP1C12参数表Cyclone的性能特性:1、新的可编程体系结构,实现低成本设计。2、嵌入式存储器资源支持多

9、种存储器应用和数字信号处理(DSP)实现 3、专用外部存储器接口电路,支持与DDR FCRAM和SDRAM器件以及SDR SDRAM存储器的连接。4、支持串行总线和网络接口以及多种通信协议 片内和片外系统时序管理使用嵌入式PLL 5、支持单端I/O标准和差分I/O技术,LVDS信号数据速率高达640Mbps。6、处理功耗支持Nios II 系列嵌入式处理器 7、采用新的串行配置器件的低成本配置方案 8、Quartus II 软件OpenCore评估特性支持免费的IP功能评估 四、功能模块1)、Songer模块如图3:图3 Songer模块Songer模块由三个模块组成:NoteTabs模块,T

10、oneTaba模块和Speakera模块。Notetabs模块类似于弹琴人的手指,Tonetaba类似于琴键,Speakera类似于琴弦或音调发生器。1.NoteTabs模块:原理:在这个模块中设置了一个8位二进制计数器,作为音符数据 ROM的地址发生器。这个计数器的计数频率选为4HZ,即每一计数值的停留时间为0.25秒,当全音符设为1秒时,4分音符持续时间为0.25s, 2分音符持续的时间为0.5s等等。每来一个脉冲计一次数,每一计数值的停留时间为0.25s,即要输入一个全音符时需要计数4次才行,则应在Rom表格中输出相应音符四次,表示一个全音符的持续时间,要输入一个2分音符则需要计数2次,

11、依次类推。NoteTabs模块图如图4:图4 NoteTabs模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity notetabs is port(clk1:in std_logic; toneindex:out std_logic_vector(3 downto 0);end;architecture one of notetabs iscomponent music port(address:in std_logic_vector(7 downto 0); clock: q

12、:end component; signal counter:std_logic_vector(7 downto 0);begincnt8:process(clk1,counter) begin if counter=336 then counter=00000000; elsif(clk1event and clk1=1)then countercounter,q=toneindex,clock=clk1);NoteTabs模块波形仿真图如图5:(注:每来一个时钟clk,输出一个相应的数,每个音符的拍子不一样所记次数也不一样)图5 Notetabs的波形仿真图采茶舞曲简谱如图6图6 采茶舞曲

13、简谱下表7是Rom表格:(即为此程序中调用的music模块)。表7 Rom表格ROM模块图如图8:图8 ROM生成的模块图2.ToneTaba模块:ToneTaba是乐曲简谱码对应的分频预置数查表电路。音符的持续时间需要根据乐曲的速度及每个音符的节拍数来确定,Tonetaba的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间为此音符的节拍值。模块Tonetaba是乐曲简码对应的分频预置数查表电路,其中设置了采茶舞曲乐曲全部音符所对应的分频预置数,共16 个,每一音符的停留时间由音乐节拍和音调发生器模块Notetabs的clk的输入频率决定,在此为4Hz。这16个值得输出由对应于Tonetaba的

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

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