VHDL实验:乐曲演奏.ppt

上传人:s****8 文档编号:68498096 上传时间:2022-12-28 格式:PPT 页数:28 大小:338.50KB
返回 下载 相关 举报
VHDL实验:乐曲演奏.ppt_第1页
第1页 / 共28页
VHDL实验:乐曲演奏.ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《VHDL实验:乐曲演奏.ppt》由会员分享,可在线阅读,更多相关《VHDL实验:乐曲演奏.ppt(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验实验乐曲演奏电路乐曲演奏电路12/27/20221内容概要v实验目的实验目的v实验要求实验要求v实验原理实验原理v实验内容实验内容 v实验报告实验报告12/27/20222实验目的n掌握乐曲演奏电路的工作原理。掌握乐曲演奏电路的工作原理。n了解怎样控制音调的高低变化。了解怎样控制音调的高低变化。n了解音长的控制。了解音长的控制。12/27/20223实验原理n乐曲演奏电路的原理乐曲演奏电路的原理乐曲的每个音符的频率值(音调)乐曲的每个音符的频率值(音调)持续的时间(音长)持续的时间(音长)n音调的控制音调的控制 频频率率的的高高低低决决定定了了音音调调的的高高低低。音音乐乐的的十十二二平平

2、均均率率规规定定:每每两两个个八八度度音音(如如简简谱谱中中的的中中音音1与与高高音音1)之之间间的的频频率率相相差差一一倍倍。在在两两个个八八度度音音之之间间,又又可可以以分分为为十十二二个个半半音音,每两个半音的频率比为每两个半音的频率比为21/12 1.12246。音音名名A(简简谱谱中中的的低低音音6)的的频频率率为为440Hz,音音名名B到到C之间,之间,E到到F之间为半音,其余为全音。之间为半音,其余为全音。12/27/20224简谱中的音名与频率的关系简谱中的音名与频率的关系 音名音名频频率率H Hz z音名音名频频率率H Hz z音名音名频频率率H Hz z低音1261.6中音

3、1523.3高音11046.5低音2293.7中音2587.3高音21174.7低音3329.6中音3659.3高音31318.5低音4349.2中音4698.5高音41396.9低音5392中音5784高音51568低音6440中音6880高音61760低音7493.9中音7987.8高音71975.512/27/20225本实验中选取本实验中选取4MHz为基准频率。为基准频率。本实验演奏的是梁祝乐曲,该乐曲各音阶频率本实验演奏的是梁祝乐曲,该乐曲各音阶频率及相应的分频系数如下图所示。及相应的分频系数如下图所示。例如:低音例如:低音3的的6067由由4MHz除以除以329.6,再除以再除以2

4、得到(后面又进行得到(后面又进行2分频)。分频)。12/27/20226为为减减小小输输出出的的偶偶次次谐谐波波分分量量,最最后后输输出出到到扬扬声声器器的的波波形形应应为为对对称称方方波波,在在到到达达扬扬声声器器之之前前,有有一一个个二二分分频频的的分分频频器器。上上表表中中的的分分频频系系数数就就是是在在从从4MHz频频率率二二分分频频得得到到的的2MHz频频率率基基础上计算得出的。础上计算得出的。分频的方法分频的方法反馈复反馈复0 0法法 加载预置数法加载预置数法 (本实验采用这种方法)(本实验采用这种方法)预置数预置数=计数器最大值分频系数计数器最大值分频系数 =(213 1)分频系

5、数分频系数 =8191 分频系数。分频系数。由于最大的分频系数为6067,故采用13位二进制计数器已能满足分频要求。12/27/20227n音长的控制n本例演奏的“梁祝”片段,最小的节拍为1/4拍。将1拍的时长定为1秒,则只需要再提供一个4 Hz的时钟频率即可产生1/4拍的时长。演奏的时间控制通过记谱来完成,对于占用时间较长的节拍(一定是1/4拍的整数n倍),如2/4拍,只需将该音名连续记录两次即可。12/27/20228乐曲演奏电路原理图 反馈预置计数器对基准频率反馈预置计数器对基准频率4MHz进行分频,产生分进行分频,产生分频后的输出时钟信号。再经过频后的输出时钟信号。再经过2分频器,成为

6、方波信号,分频器,成为方波信号,以驱动扬声器发声。以驱动扬声器发声。音名显示电路显示乐曲演奏时对应的音符。音名显示电路显示乐曲演奏时对应的音符。乐谱产生电路用来根据高音、中音和低音的值决定分乐谱产生电路用来根据高音、中音和低音的值决定分频计数器的预置数的值频计数器的预置数的值。412/27/20229程序流程图412/27/202210乐曲演奏电路子模块乐曲演奏电路子模块程序分为程序分为4 4个部分:个部分:反馈预置计数器反馈预置计数器 2分频器,产生驱动扬声器的方波信号分频器,产生驱动扬声器的方波信号 音名显示,根据时长计数器的值决定高音、中音和低音名显示,根据时长计数器的值决定高音、中音和

7、低音的值音的值 乐谱产生电路,根据高音、中音和低音的值决定分频乐谱产生电路,根据高音、中音和低音的值决定分频计数器的预置数计数器的预置数origin的值的值 12/27/202211nLIBRARY IEEE;nUSE IEEE.STD_LOGIC_1164.ALL;nUSE IEEE.STD_LOGIC_UNSIGNED.ALL;nENTITY song ISnPORT(nclk_4MHz,nclk_4Hz:IN STD_LOGIC;n-预置计数器和乐谱产生器的时钟ndigit:BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);n-低三位表示低音,中间三位表示中音,最高

8、位表示高音;本曲仅仅有高音1,故此用1位表示。nspeaker:out STD_LOGIC-扬声器n);nEND song;nARCHITECTURE song_arch OF song IS12/27/202212nSIGNALdivider,origin:STD_LOGIC_VECTOR(12 DOWNTO 0);-13位计数值和预置值nSIGNAL counter:integer range 0 to 140;n-记录1/4拍曲谱的内容nSIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0);nSIGNAL carrier:STD_LOGIC;nBEGINnP

9、ROCESS(clk_4MHz)12/27/202213nBEGINnIF(clk_4MHzevent AND clk_4MHz=1)THENnIF(divider=1111111111111)THENncarrier=1;ndivider=origin;nELSEndivider=divider+1;ncarrier=0;nEND IF;nEND IF;nEND PROCESS;12/27/202214nPROCESS(carrier)nBEGINnIF(carrierevent AND carrier=1)THENncount=count+1;n-输出时钟四分频nIF count=00 T

10、HENnspeaker=1;nELSEnspeaker=0;nEND IF;nEND IF;nEND PROCESS;12/27/202215nPROCESS(clk_4Hz)-1/4节拍nBEGINnIF(clk_4Hzevent AND clk_4Hz=1)THENnIF(counter=140)THENncounter=0;nELSEncounterdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitd

11、igitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitd

12、igitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitdigitoriginoriginorig

13、inoriginoriginoriginoriginoriginoriginoriginorigin=1111111111111;-8191nEND CASE;nEND PROCESS;nEND song_arch;12/27/2022233.时序仿真 乐曲演奏电路子模块注注1:为仿真:为仿真counter信号,在波形编辑器的信号,在波形编辑器的“Node Finder”窗口中的窗口中的“Filter”域下拉列表中选择域下拉列表中选择“Pins:all&Registers:post-fitting”,然后单击然后单击“List”;则在则在“Nodes Found”窗口将出现所有的引窗口将出现所

14、有的引脚和适配后的寄存器;在其中选择脚和适配后的寄存器;在其中选择counter信号,将其信号,将其送入右边的窗口。送入右边的窗口。注注2:为仿真:为仿真carry、divider和和origin信号,可在程序信号,可在程序中将它们声明为输出信号。中将它们声明为输出信号。12/27/2022244.编程下载 n信号定义及下载板资源分配信号定义及下载板资源分配 输入信号输入信号 clkock:系统时钟信号,:系统时钟信号,22.1184MHz,接接80脚脚 12/27/202225红字部分不做要求输出信号输出信号 high3.0:驱驱动动数数码码3,显显示示高高音音的的音音名名,分别连分别连FP

15、GA的的Pin132、128、41、21引脚;引脚;mid3.0:驱驱动动数数码码2,显显示示中中音音的的音音名名,分别连分别连FPGA的的Pin20、19、18、17引脚;引脚;low3.0:驱驱动动数数码码1,显显示示低低音音的的音音名名,分分别连别连FPGA的的Pin16、15、14、13引脚;引脚;speaker:方方波波信信号号,驱驱动动扬扬声声器器,连连FPGA的的Pin128引脚。引脚。12/27/202226n2、实验时将右上方短路插针、实验时将右上方短路插针DAOUTO IN左两插针短接,左两插针短接,SPEAKJ短接。程序下短接。程序下载后可以听到乐曲演奏。由数码管显示简谱。载后可以听到乐曲演奏。由数码管显示简谱。P103键可改变乐曲。键可改变乐曲。12/27/202227附:梁祝乐曲片断12/27/202228

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com