zuaeda课程设计--乐曲自动演奏机

上传人:第*** 文档编号:56885702 上传时间:2018-10-16 格式:PDF 页数:17 大小:391.18KB
返回 下载 相关 举报
zuaeda课程设计--乐曲自动演奏机_第1页
第1页 / 共17页
zuaeda课程设计--乐曲自动演奏机_第2页
第2页 / 共17页
zuaeda课程设计--乐曲自动演奏机_第3页
第3页 / 共17页
zuaeda课程设计--乐曲自动演奏机_第4页
第4页 / 共17页
zuaeda课程设计--乐曲自动演奏机_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《zuaeda课程设计--乐曲自动演奏机》由会员分享,可在线阅读,更多相关《zuaeda课程设计--乐曲自动演奏机(17页珍藏版)》请在金锄头文库上搜索。

1、郑州航空工业管理学院EDA 技术及应用课程设计报告13 届通信工程专业班级题目:乐曲自动演奏机姓名:学号:同组人:指导老师:2015 年 7 月 9 日乐曲自动演奏机乐曲自动演奏机一、设计要求一、设计要求:()可以在电路上自动演奏至少两首乐曲,在这里我们选用的是茉莉花、欢乐颂和小苹果。()有相应的 LED 灯指示高低音。二、其他要求二、其他要求:(在 EDA 实验箱上完成)1晶振为 48 MHz。2. 采用 FPGA 器件为 ALTERA 的 EP1C6Q240C8。3采用数码管显示。一、设计方案规划1、整体规划输入一个:clk(系统时钟 48MHz) 输出四个:beep(蜂鸣器输出端)、le

2、d(LED 指示灯)、dig(数码管 选择输出引脚)、seg(数码管段输出引脚)2、功能模块与模块划分总共分为三部分,蜂鸣器发声部分,LED 灯显示部分,数码管显 示部分。3、各功能或各模块的功能细分蜂鸣器自动演奏乐曲, LED 灯显示高低音, 数码管显示音调。二、各模块的实现方法、技术、要点1、乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其 持续(时间音长)是乐曲演奏的 2 个基本数据,因此需控制输出到扬声器的 激励信号的频率高低和该频率信号持续的时间。频率的高低决定了音调的高 低,而乐曲的简谱与各音名的频率对应关系在后面将给出。所有不同频率的 信号都是从一基准频率分频而得来的

3、,由于音阶频率多为非整数,而分频系 数有不能为小数,故必须将计算得到的分频数进行四舍五入取整,基准频率 和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在 48MHz时 钟 下 , 中 音 1 ( 对 应 的 频 率 值 是 523.3Hz ) 的 分 频 系 数 应 该 为 : 48000000/(2*523.3)=45863,这样只需对系统时钟进行 45863 次分频可得到 所要的中音 M1(分频系数计算公式为 D=F/2K,由于 F/2K 之后,会使分频系 数 D 变小,所以功能模块中语句:beep_r=!beep_r,使得输出取反, K=F/2count_end,消除了前面除以

4、2K 的影响)。至于其他音符,同样可有 一式求出对应的分频系数。在程序中设置一个状态机,每 250ms 改变一个状 态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机 的每一个状态。只要让状态机的状态按顺序转换,就可以自动演奏播放音乐 了。(注:N 一拍;N 两拍;N四拍;N八拍;N 为音谱)。 2、LED 灯接低电平显示灯亮,用 always 模块定义前两个灯亮表示低音, 中间四个灯亮表示中音,最后两个灯亮表示高音。 3、数码管选用共阴极,只要公共端为低电平“0”,某个段输出高电平 “1”,则相应的段就亮。四、设计步骤(1)在 Quartus中建立一个工程项目文件 song.

5、qpf,并在该项目下新建VerilogHDL 源程序文件 song.v 输入程序代码保存。 (2)然后在该工程选择一目标器件并对相应的引脚进行锁定,在这里所选 择器件为 Alter 公司的 Cyclone 系列的 EP1C6Q240C8 芯片,引脚锁定方 式如下所示。 引脚锁定方法信号引脚信号引脚1C61C12EDA1C61C12EDAdig0160160160seg5166166166dig1159159159Seg6163163163dig2162162162seg7164164164dig3161161161led0505050dig4204204204led1535353dig5199

6、199199led2545454dig6198198198led3555555dig7205205205led4176176176seg0169169169led5474747seg1170170170led6484848seg2167167167led7494949seg3168168168clk282828seg4165165165beep175175175(3)对该工程文件进行全程编译处理,若在编译中发现错误,则 找出错误并更正,知道编译成功为止。 (4)最后编译并下载在试验箱上,此时可以看到乐曲自动演奏以 及 LED 灯指示其高低音和数码管显示乐曲音调。 五、乐曲简谱简谱中的音名与频率

7、的关系音名频率/Hz音名频率/Hz音名频率/Hz低音261.6中音523.3高音1045.5低音293.7中音587.3高音1174.7低音329.6中音659.3高音1318.5低音349.2中音698.5高音1396.9低音392中音784高音1568低音440中音880高音1760低音493.9中音987.8高音1975.5六、模块的编写程序清单 song.v modulesong(clk,beep,led,dig,seg;/模块名称 song input clk;/系统时钟 48MHz outputbeep;/蜂鸣器输出端 output7:0 dig;/数码管选择输出引脚 output

8、 7:0 seg;/数码管段输出引脚output 7:0 led; reg7:0 led_r;reg7:0 seg_r;/输出数码管译码结果 reg7:0 dig_r;/输出数码管选择 reg3:0 disp_dat;/定义显示数据寄存器 regbeep_r;/寄存器 reg7:0 state;/乐谱状态机 reg15:0count,count_end; reg23:0count1; wire 31:0d; /乐谱参数:D=F/2K(D:参数,F:时钟频率,K:音高频率) parameter L_5 = 16d61224,/低音 5 L_6 = 16d54545,/低音 6 L_7 = 16d

9、48593,/低音 7 M_1 = 16d45863,/中音 1 M_2 = 16d40865,/中音 2 M_3 = 16d36402,/中音 3 M_4 = 16d34359,/中音 4 M_5 = 16d30612,/中音 5 M_6 = 16d27273,/中音 6 H_1 = 16d22956,/高音 1 H_2 = 16d20431,/高音 2 H_3 = 16d18203;/高音 3 parameterTIME = 12000000;/控制每一个音的长短(250ms)assign beep = beep_r;/输出音乐always(posedge clk) begin count

10、 = count + 1b1;/计数器加 1 if(count = count_end) begin count = 16h0;/计数器清零 beep_r = !beep_r;/输出取反 end endalways (posedge clk) begin if(count1 TIME)/一个节拍 250mS count1 = count1 + 1b1; else begin count1 = 24d0; if(state = 8d228) state = 8d0; else state = state + 1b1; case(state)8d0:count_end = M_3; 8d1:cou

11、nt_end = M_2; 8d2:count_end = M_3; 8d3:count_end = M_5; 8d4:count_end = M_6; 8d5:count_end = M_5; 8d6:count_end = H_1; 8d7:count_end = M_6; 8d8:count_end = M_5; 8d9:count_end = M_3; 8d10:count_end = M_5; 8d11:count_end = M_6; 8d12:count_end = H_1; 8d13:count_end = H_2; 8d14:count_end = H_3; 8d15:cou

12、nt_end = H_2; 8d16:count_end = H_1; 8d17:count_end = M_6; 8d18:count_end = H_1; 8d19:count_end = M_5; 8d20:count_end = M_5; 8d21:count_end = M_3; 8d22:count_end = M_5; 8d23:count_end = M_6;8d24:count_end = H_1; 8d25:count_end = H_2; 8d26:count_end = H_3; 8d27:count_end = H_1; 8d28:count_end = M_6; 8

13、d29:count_end = M_5; 8d30:count_end = M_5; 8d31:count_end = M_2; 8d32:count_end = M_3; 8d33:count_end = M_5; 8d34:count_end = M_3; 8d35:count_end = M_2; 8d36:count_end = M_1; 8d37:count_end = M_6; 8d38:count_end = M_1; 8d39:count_end = M_1; 8d40:count_end = M_3; 8d41:count_end = M_2; 8d42:count_end

14、= M_1; 8d43:count_end = M_2; 8d44:count_end = M_2; 8d45:count_end = M_3; 8d46:count_end = M_5; 8d47:count_end = M_6; 8d48:count_end = M_2; 8d49:count_end = M_6; 8d50:count_end = M_5; 8d51:count_end = M_5; 8d52:count_end = M_3; 8d53:count_end = M_2; 8d54:count_end = M_3; 8d55:count_end = M_5; 8d56:co

15、unt_end = M_3; 8d57:count_end = M_2; 8d58:count_end = M_1; 8d59:count_end = M_2; 8d60:count_end = L_6; 8d61:count_end = M_1;8d62:count_end = M_2; 8d63:count_end = M_2; 8d64:count_end = M_3; 8d65:count_end = M_1; 8d66:count_end = M_2; 8d67:count_end = M_1; 8d68:count_end = M_6; 8d69:count_end = M_1; 8d70:count_end = M_6; 8d71:count_end = M_5; 8d72:count_end = M_5; 8d74:count_end = M_3; 8d75:count_end = M_3; 8d76:count_end = M_4; 8d77:count_end = M_5; 8d78:count_end = M_5; 8d79:count_end = M_4; 8d80:count_end = M_3; 8d81:count_end = M_2; 8d82,8d83:count_end = M_1

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

当前位置:首页 > 高等教育 > 大学课件

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