EDA乐曲硬件演奏电路设计_第1页
EDA乐曲硬件演奏电路设计_第2页
EDA乐曲硬件演奏电路设计_第3页
EDA乐曲硬件演奏电路设计_第4页
EDA乐曲硬件演奏电路设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子系统设计课程课程I题目:乐曲硬件演奏电路设计题目:乐曲硬件演奏电路设计名:院 系:电力学院 一专 业:电子科学与技术学 号:指导教师:一完成时间:2016 年12月21日目录 TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 1课程设计题目、内容与要求1 HYPERLINK l bookmark4 o Current Document 设计内容1 HYPERLINK l bookmark6 o Current Document 具体要求1 HYPERLINK l bookmark8 o Current Document 2系统设计

2、1 HYPERLINK l bookmark10 o Current Document 设计思路1 HYPERLINK l bookmark12 o Current Document 系统原理3总体框图3工作过程3乐曲演奏的原理图4 HYPERLINK l bookmark14 o Current Document 3系统实现4 HYPERLINK l bookmark16 o Current Document 分频器(FDIV) 4 HYPERLINK l bookmark18 o Current Document 计数器 CNT138T 6 HYPERLINK l bookmark32 o

3、 Current Document 计数器CNT138T的设计6 HYPERLINK l bookmark20 o Current Document 分频预置数译码器F_CODE模块7F_CODE模块的设计8 HYPERLINK l bookmark22 o Current Document 字分频器SPKER模块10数字分频器SPKS模块设计10 HYPERLINK l bookmark26 o Current Document 选择器 choice 12 HYPERLINK l bookmark28 o Current Document 乐谱文件ROM 14乐谱文件14LMP-ROM 模块

4、15 HYPERLINK l bookmark30 o Current Document 4系统仿真15计数器CNT138T的仿真15 HYPERLINK l bookmark34 o Current Document .分频器 FDIV 16 HYPERLINK l bookmark36 o Current Document 分频预置数F_CODE 16 HYPERLINK l bookmark38 o Current Document 分频器 SPKER 16 HYPERLINK l bookmark40 o Current Document 乐曲ROM的数据读取17 HYPERLINK

5、l bookmark42 o Current Document 5硬件验证17 HYPERLINK l bookmark44 o Current Document 引脚锁定18 HYPERLINK l bookmark46 o Current Document 硬件连接18 HYPERLINK l bookmark48 o Current Document 实验现象18 HYPERLINK l bookmark50 o Current Document 6总结19 HYPERLINK l bookmark52 o Current Document 7参考书目191课程设计题目、内容与要求设计内

6、容设计一个乐曲演奏电路,能够自动播放编写好的音乐。要求将音 乐通过实验箱上的喇叭播放出来,用发光二级管显示出乐曲的节拍。(1)完成程序的编程工作。(2)将音乐数据制成LMP_ROM文件。(3)将程序在Quartus ii软件中进行编译和仿真。(4)进行引脚锁定,然后下载到实验箱上观察实验结果。具体要求(1)定制音符数据ROM MUSIC,检测音符数据已经进入ROM中;(2)所有模块,分别仿真测试;(3)完成系统仿真调试和硬件验证;(4)能够将两首音乐随时切换。2系统设计设计思路乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同 音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都

7、是 由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应 的频,就可以在扬声器上连续地发出各个音符的音调。而要准确地演 奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制 乐曲的节奏,即乐曲中每个音符的发生频率及其持续时间是乐曲能够 连续演奏的两个关键因素。本次设计主要包括三个部分:(1)音符频率的获得;音符频率的获得多个不同频率的信号可通过对某个基准频率进 行分频器获得。由于各个音符的频率多为非整数,而分频系数又不能 为小数,故必须将计算机得到的分频系数四舍五入取整。若基准频率 过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过 高,虽然可以减少频率的相对误差,但

8、分频结构将变大。实际上应该 综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的 基准频率。本设计中选取1MHz的基准频率,数控分频器采用11位二 进制计数器。(3)乐曲节奏的控制一般乐曲最小的节拍为1/4拍,若将1拍的时间定为1秒,则只 需要输出4Hz的1/4拍的时长(0.25秒),对于其它占用时间较长的 节拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数 即可。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节 拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演 奏的速度自然降低,因此计数器的时钟信号应为4Hz。(3)乐谱的发生本设计将乐谱中的音符数据存储

9、在LPM-ROM中,若某音在逻辑中 停留了 4个时钟节拍,即1秒的时间,相应地,该音符就要在LPM-ROM 中连续的四个地址上都存储。当一个4Hz的时钟来时,相应地就从 LPM-ROM中输出一个音符数据。系统原理总体框图该工程由是由上图所示的几个模块构成输入的时钟20MHZ通过锁相环后输出2KHZ和1KHZ的时钟分别 输送给分频器FDIV和计数器CNT138; FDIV将1MHZ的时钟分频成4HZ 的时钟。计数器CNT138T完成计数功能,138进制,每来个时钟沿加一。乐谱ROM记录了 1首歌的乐谱。根据上一模块计数器所计的数 读取相应地址里的数据传递给下一模块。译码器F_CODE将选择器所选

10、择的歌曲rom里的地址的数据翻 译成可预置计数器SPKER和简谱码显示DECL7S所需的数据。分频驱动器也就是一个数控分频器,完成分频的功能,并驱动 蜂鸣器。工作过程当一个4Hz的时钟脉冲来到时,乐谱发生器模块输出一个音符数 据给分频系数模块,分频系数模块输出此音符相应的分频系数所需的 初始值,将初始值送给数控分频器模块,当1MHz的时钟脉冲来到时,数控分频器就根据分频系数输出相应的频率(即此音符所对应的发生 频率)给扬声器,扬声器就可发出对应音符的声音来.连续的4Hz的时 钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分 频系数模块,再经过数控分频模块,最后扬声器一个接一个的发出音

11、 符数据所对应的声音来。曲子也就流畅的播放出来了。同时led数码 管会随着音乐显示相应的乐谱。当乐曲一遍演奏完成后,乐曲发生器 能自动从头开始循环演奏。2.2.3乐曲演奏的原理图3系统实现分频器(FDIV)将锁相环的2KHZ的时钟分频4Hz的时钟,供计数器使用。(1)模块程序module FDIV(CLK,PM);input CLK;output PM;reg8:0 Q1;reg FULL;wire RST;always(posedge CLK or posedge RST)beginif(RST)beginQ1=0;FULL=1;endelsebeginQ1=Q1+1;FULL=0;ende

12、ndassign RST=(Q1=449);assign PM=FULL;assign DOUT=Q1;endmodule(2)模块图形计数器 CNT138T它是一个8位二进制计数器,内部设置计数最大值为139,作为 音符数据ROM的地址发生器。每来一个时钟信号,计数器就计数一次, ROM文件中的地址也随着增加,音符数据ROM中的音符也就一个一个 的取出来。计数器CNT138T的设计这个计数器的计数频率即为4Hz。即每一计数值的停留时间为 0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。 例如,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了 4个 时钟节拍,即1秒时间,相应

13、地,所对应的“3”音符分频预置值为 11H40C,在SPKER的输入端停留了 1秒。随着计数器CNT138T按4Hz 的时钟速率作加法计数时,即随地址值递增时,音符数据ROM模块 MUSIC中的音符数据将从ROM中通过q3.0端口输向F_CODE模块, “梁祝”乐曲就开始连续自然地演奏起来了。CNT138T的节拍是139, 正好等于ROM中的简谱码数,所以可以确保循环演奏。对于其他乐曲, 此计数最大值要根据情况更改。(1)模块程序module CNT138T(CLK,CNT8);6input CLK;output 7:0 CNT8;reg7:0 CNT;wire LD;always(posed

14、ge CLK or posedge LD) beginif (LD)CNT=8b00000000;elseCNT=CNT+1;endassign CNT8=CNT;assign LD=(CNT=138);endmodule模块图形?,YCLK CMTB7.O;: f CNfiisfff:;CLK CMTB7.OX :inst分频预置数译码器F_CODE模块模块F_CODE的功能首先是为模块SPKER(11位分频器)提供决 定所发音符的分频预置数,而此数在SPKER输入口停留的时间即为此 音符的节拍周期,模块F_CODE是乐曲简谱码对应的分频预置数查表 电路。F_CODE模块的设计程序中设置了

15、“梁祝”乐曲全部音符所对应的分频预置数,共 14个,每一音符的停留时间则由音乐节拍和音调发生查表模块MUSIC 中简谱码和工作时钟inclock的频率决定,在此为4Hz。模块F_CODE 的14个值的输出由对应于MUSIC模块输出的q3.0及4位输入值 INX3.0确定,而INX3.0最多有16种可选值。输向模块F_CODE 中INX3.0的值在SPKER中对应的输出频率值与持续的时间由模块 MUSIC决定。(1)模块程序module F_CODE(INX,CODE,H,TO);input3:0 INX;output 3:0 CODE;output H;output 10:0 TO;reg10

16、:0 TO;reg3:0 CODE;reg H;always(INX)begincase(INX)0:begin TO=11H7FF;CODE=0;H=0;end1:begin TO=11H305;CODE=1;H=0;end2:begin TO=11H390;CODE=2;H=0;end3:begin TO=11H40C;CODE=3;H=0;end4:begin TO=11H45C;CODE=4;H=0;end5:begin TO=11H4AD;CODE=5;H=0;end6:begin TO=11H50A;CODE=6;H=0;end7:begin TO=11H55C;CODE=7;H=

17、0;end8:begin TO=11H582;CODE=1;H=1;end9:begin TO=11H5C8;CODE=2;H=1;end10:begin TO=11H606;CODE=3;H=1;end11:begin TO=11H640;CODE=4;H=1;end12:begin TO=11H656;CODE=5;H=1;end13:begin TO=11H684;CODE=6;H=1;end14:begin TO=11H69A;CODE=7;H=1;end15:begin TO=11H6C0;CODE=1;H=1;enddefault:begin TO=11H6c0;CODE=1;H=

18、1;end endcaseendendmodule(2)模块图形;口工。工工口安:X: : F_CODE工/;口工/;口,*工0:/丁工仁口二门;口工方丁.数字分频器SPKER模块音符的频率由SPKER获得,这是一个数控分频器。数字分频器SPKS模块设计它的CLK端输入一具有较高频率(1MHz)的时钟,由于直接从 分频器中出来的输出信号是脉宽极窄的信号,为了有利于驱动扬声 器,需另加一个D触发器分频以均衡其占空比,但这时的频率将是 原来的1/2。SPKER对CLK输入信号的分频比由输入的11位预置数 TN10.0决定。扬声器的输出频率将决定每一音符的音调;这样,分 频计数器的预置值TN10.0

19、与输出频率就有了对应关系,而输出的 频率又与音乐音符的发声有对应关系,例如在F_CODE模块中若 TN10.0=11H40C,将由扬声器发出音符为“3”音的信号频率。(1)程序模块1module SPKER(CLK,TN,SPKS);input CLK;input10:0 TN;output SPKS;reg SPKS;reg10:0 CNT11;10always(posedge CLK)begin :CNT11B_LOADif(CNT11=11h7FF)beginCNT11=TN;SPKS=1b1;endelsebeginCNT11=CNT11+1;SPKS:y:y:j .:f之,SPHSR

20、L LK口CLThl心孑*?:i:;:ft:yT!yr:!y及左*(2)程序模块2module SPKER(CLK,TN,SPKS);input CLK;11input2:0 TN;output SPKS;reg SPKS;reg2:0 CNT3;always(posedge CLK)beginif(CNT3=3h7)beginCNT3=TN;SPKS=1b1;endelsebeginCNT3=CNT3+1;SPKS=1b0;endendendmodule选择器choice选择器完成选择歌曲的功能:当a的信号为1时将Q1的信号输出当a的信号为0时将Q2的信号输出12(1)模块程序module

21、choice (a,b,Q1,Q2,INX);input a;output b;input3:0 Q1;input3:0 Q2;output3:0INX;reg b;reg3:0 INX;always(a)begincase(a)01:begin b=0;INX=Q1;end10:begin b=1;INX=Q2;enddefault:begin b=10;INXM 7:巴.X TaEl*E5BK 同从波形上可以看到,当输入信号INX=1000时,code显示的是1,H为1,预置值为582,查询程序,发现功能正确。分频器SPKER16过长而失败,因此更改程序,减小其分频系数,同样能说明问题,在

22、 此,我将n位的预置初值改为3位,得到如上的仿真波形图,可发 现在TN给出不同的预置初值时的分频效果,仔细细数一下,发现数 控分频功能完全正确。5 ps 5. L2 us 10.2 us L5.36 us 20. 4S g 25. B us 30.12 us 35.84 us 40.花 us .09 us15. 65 ns. LJ, .x. ,L . X . . .-V . . .X. . pj. . . M.1.工.Lf.;通过对仿真后的时序波形的观察,当TN=6时,系统有最小的分 频N=4,随着TN的减小,系统的分频数逐渐增大。e Quartwa rt - XUEQU - ilr Srrtrn Mernrry Cntrn: Edlor4.5乐曲ROMe Quartwa rt - XUEQU - ilr Srrtrn Mernrry Cntrn: Edlor5硬件验证17引脚锁定ToLocationEnabled1 GLK2DMHZPIN_G21Yes2_/ HI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论