- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
eda课程设计乐曲硬件演奏电路设计afictbia
课程设计名称:乐曲硬件演奏电路设计
设计要求:利用数控分频器设计硬件乐曲演奏电路
所用设备:计算机、MaxplusⅡ、下载实验箱(ZY11EDA13BE)
设计原理:
主系统由三个模块组成,其内部有三个功能模块:TONETABA.VHD、NOTABS.VHD和SPEAKERA.VHD。
本设计项目作为“梁祝”乐曲演奏电路的实现。
①组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果
音符的频率由U3---Speakera获得,这是一个数控分频器。由其时钟
信号输入端clk输入一具有较高频率(这里是12MHz)的信号,通过Speakera分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。Speakera对clk输入信号的分频比由11位预置数Tone[10...0]决定。SPKOUT的输出频率将决定每一音符的音调,这样分频计数器的预置值Tone[10...0]与SPKOUT的输出频率就有了对应关系。例如在ToneTaba模块中若取Tone[10...0]=1036,将发出音符为“3”
②音符的持续时间需根据乐曲的速度及每个音符的接拍数来确定,模块ToneTaba的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间即为此音符的节拍值。模块ToneTaba是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs的clk的输入频率决定,在此为4Hz。这13个值的输出由对应于ToneTaba的4位输入值Index[3...0]确定,而Index[3...0]最多有16种可选值。输向ToneTaba中Index[3...0]的值ToneIndex[3...0]的输出值与持续的时间由模块Notetabs决定。
③在NoteTabs中设置了一个8位二进制计数器(计数最大值为138),作为音符数据ROM的地址发生器。这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25秒,恰为全音符设为1秒时,四四拍的4分音符持续时间。例如,Notetabs在以下的VHDL逻辑描述中,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的“3”音符分频预置值1036,在Speakera在输入端停留了1秒。随着NoteTabs中的计数器按4Hz的时钟速率作加法计数时,即随地址值递增时,音符数据ROM中的音符数据将从ROM中通过ToneIndex[3...0]端口输向ToneTaba模块,“梁祝”乐曲就开始连续自然地演奏起来了。
顶层文件及各模块电路:
顶层文件Songer如下:
LIBRARY IEEE; --硬件演奏电路顶层设计
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY Songer IS
PORT( CLK12MHZ:IN STD_LOGIC; --音调频率信号
CLK8HZ : IN STD_LOGIC; --节拍频率信号
CODE1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); --简谱码输出显示
HIGH1 : OUT STD_LOGIC; --高8度指示
SPKOUT : OUT STD_LOGIC); --声音输出
END;
ARCHITECTURE one OF Songer IS
COMPONENT NoteTabs
PORT ( clk : IN STD_LOGIC;
ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
END COMPONENT;
COMPONENT ToneTaba
PORT (Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);
HIGH : O
您可能关注的文档
- cad基础入门教程uw4jpeha.ppt
- ccscp研究-中国冠心病二级预防研究血脂康调整血脂对冠心病二级预防的研究znpcb5um.ppt
- cdpspcac019b冷缠胶粘带技术规格书sjratavl.doc
- cad三维建模及渲染ncstqjze.doc
- cfg桩地基处理论文pcvqd5bj.doc
- cdma通信系统数字调制及解调设计与实现通信课程设计1nl5x_79.doc
- cfg桩施工技术协议u9tcyc9z.doc
- ck5116a立式车床数控毕业设计论文oy45qpjf.doc
- chapter机舱备件物料和工具的管理gy8zv7lp.ppt
- ccna中文笔记系列chr0gbfq.docx
原创力文档


文档评论(0)