实验六 音阶2006

上传人:wt****50 文档编号:45679322 上传时间:2018-06-18 格式:PDF 页数:3 大小:101.74KB
返回 下载 相关 举报
实验六 音阶2006_第1页
第1页 / 共3页
实验六 音阶2006_第2页
第2页 / 共3页
实验六 音阶2006_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验六 音阶2006》由会员分享,可在线阅读,更多相关《实验六 音阶2006(3页珍藏版)》请在金锄头文库上搜索。

1、- 83 -实验六实验六音阶发生器实验音阶发生器实验一、实验目的1 了解音阶发生的原理,学会用硬件描述语言来建立音阶发生器模块。 2 利用该软件进行可编程逻辑器件设计,完成音节发生器的逻辑仿真功能。 3 使用编译器将设计实现,下载到 JDEE10 实验箱上进行调试和验证所设计的音阶发 生器的功能。二、实验器材1Pentium计算机一台;2JDEE10 实验箱一只;三、实验要求:利用实验板构成一个音阶发生器,要求能产生音名 A到G 之间的音阶,以一秒一个音阶 的速度自动演奏,并可随时手控停在某个音阶上。为了知道音名,要求能以简谱方式显示 之。音名与频率的关系:音乐上的十二平均律规定:每两个八度音

2、之间的频率相差一倍。在这两个八度音之间,分成十二个半音,每两个相领半音的频率比为。另外还规定,音122名 A 的频率为 440Hz。音名 B 到 C 之间、E 到 F 之间为半音,其余为全音。这样,可计算得 从 A(简谱的低音 6)到 al(简谱的高音 6)之间的每个音名的频率为: A:440Hza:880Hzal:1760Hz B:493.88Hzb:987.76Hz C523.25Hzc:1046.50Hz D:587.33Hzd:1174.66Hz E659.25Hze:1318.51Hz F698.46Hzf:1396.92Hz G783.99Hzg:1567.98Hz四、方案设计和例

3、程 由高频分得低频,采用以下思路:时钟频率 4MHz,其周期为 1/4M0.00000025S, 而音频 a1 为 1760Hz,其周期远大于 4MHz 的周期,而 4M/1760=2272。因此,如果设计 一个 2272 进制的计数器,其时钟输入为 4MHz,那其进位信号就是 2272Hz。用这样的方 法可以产生其它任意频率的信号。a 可由 a1 二分频得到。由于频率较高,需加入一个 t 触 发器。下面给出部分源程序及顶层图: a1 的频率发生器 subdesignfreqaa- 84 -(clk:input;%4MHz 频率输入 freqaa:outpu;% a1 的频率输出 ) vari

4、able count20.0:dff; begin defaults freqaa=gnd; end defaults; count.clk=clk; if count=h“8E0“ then freqaa=vcc;count.d=h“0“;2272h”8E0” else count.d=count.q+1;其余频率依此类推 end if; end;频率顺序输出 subdesignmainplayer (alow,ahigh,a1,blow,bhigh,clow,chigh,dlow,dhigh,%例程给出了一个高、低音循环演奏 的源程序 elow,ehigh,flow,fhigh,glow,

5、ghigh:input; clk:input;%1Hz 输入,每秒发一个音 spk:output;%喇叭输出 ) variable count4.0:dff;%引用计数器 begin count.clk=clk; if count=h“0“ then spk=alow;end if; if count=h“1“ then spk=blow;end if; if count=h“2“ then spk=clow;end if; if count=h“3“ then spk=dlow;end if; if count=h“4“ then spk=elow;end if; if count=h“5“

6、 then spk=flow;end if; if count=h“6“ then spk=glow;end if; if count=h“7“ then spk=ahigh; end if; if count=h“8“ then spk=bhigh; end if; if count=h“9“ then spk=chigh; end if;- 85 -if count=h“a“ then spk=dhigh; end if; if count=h“b“ then spk=ehigh; end if; if count=h“c“ then spk=fhigh;end if; if count=

7、h“d“ then spk=ghigh; end if; if count=h“e“ then spk=a1;count.d=h“0“; else count.d=count.q+1; end if;end;五、实验扩展功能: 1、 演奏乐曲。乐曲自选。 2、 用数码管实时显示乐曲简谱名称且按下一个按键后,暂停运行。 3、 或者改用点阵来显示音阶名,而不采用简谱。 以上扩展功能的实验,学生可根据自己的能力选做,但所有的功能应在同一顶层文件 中实现。扩展功能也可按自己的设计思路来完成,但难度不可低于本节的要求。六、实验报告1详细叙述设计方案与设计过程。 2画出完整的顶层逻辑设计图。 3写出每一个文本文件的源程序。 4顶层图不需要管脚锁定。 5详细叙述调试中所碰到的问题及解决的方法。 6实验后的心得。

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

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号