已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
乐曲自动演奏器一、 功能介绍使用FPGA设计一个乐曲自动演奏控制器,将源程序下载至FPGA器件中,实现乐曲自动演奏。(本设计的乐曲是友谊天长地久的部分音乐)乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率之间也有固定的对应关系。所有不同频率的信号都是从同一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算的到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在4MHz时钟下,中音1(对应的频率值为523.3Hz)的分频系数应该为:4000000/(2*523.3)=0xd3821,这样只需对系统时钟进行3821次分频即可得到所要的中音1。至于其他音符,同样可求出对应的分频系数,这样利用程序可以很轻松地得到对应的乐声。此外,在程序中设置了一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。只要让状态机的状态按顺序转换,就可以自动播放音乐了。友谊天长地久乐谱见下表(注:N一拍;N两拍;N四拍;N八拍;N为乐谱。由于芯片存储容量太小,源程序只加入乐谱的一部分音符)友谊天长地久乐谱0 5 | 1. 1 1 3 | 2. 1 2 3 | 1. 1 3 5 | 6. 6 | 5. 3 3 1 | 2. 1 2 3 | 1. 6 6 5 | 1. 6 | 5. 3 3 1 | 2. 1 2 6 | 5 . 3 3 5 | 6. 1 | 5. 3 3 1 | 2. 1 2 3 | 1. 6 6 5 | 1. 0 简谱中的音名与频率的关系音名频率/Hz分频数低音539216d5102低音644016d4545中音1523.516d3821中音2587.316d3373中音3659.316d3033中音578416d2551高音588016d2273高音6176016d1913二、 硬件设计(电路图、原器件清单)实物元件清单:印刷电路板一个;电阻(10K的10个,200的8个,1K的14个,50的1个);三极管3个;发光二极管(红黄绿各三个);蜂鸣器1个;8段显示器2个;按键4个;4M晶振1个;电容(104的6个,10的1个);电源线1个;芯片底座1个;电路图:功率放大显示部分:核心控制部分:三、 软件设计(流程图、源程序)流程图一个完整的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。其大致的设计流程包括:设计输入、综合、适配、时序仿真和功能仿真、编程下载、硬件测试的步骤。对于目前流行的EDA工具软件,图1-1的设计流程具有一般性3。图1-1 应用FPGA/CPLD的EDA开发设计流程框图各部分源程序及说明module song(clk,beep); /模块名称song/I/O口说明input clk; /系统时钟4MHzoutput beep; /蜂鸣器输出端/内部寄存器reg beep_r; /寄存器reg3:0 state; /乐谱状态机reg15:0count,count_end;reg17:0count1;/参数-分频系数parameter L_5=16d5102, /低音5L_6=16d4545, /低音6M_1=16d3821, /中音1M_2=16d3405, /中音2M_3=16d3033, /中音3M_5=16d2551, /中音5M_6=16d2273, /中音6H_1=16 h1913; /高音6parameter TIME=1000000; /控制每个音的长短(250ms)assign beep= beep_r; /输出音乐/上升沿脉冲计数always(posedge clk)begin count=count+1b1; /计数器加1 if(count=count_end) begin count=16h0; /计数器取0 beep_r=! beep_r; /输出取反 endend/上升沿脉冲计数always(posedge clk)begin if(count1TIME) count1= count1+1b1; else begin count1=18d0; if(state=4d15) state= 4d0; else state= state+1b1; case(state) 4d0, 4d1: count_end=L_5; 4d2, 4d3, 4d4, 4d5, 4d6, 4d7, 4d8 : count_end=M_1; 4d9, 4d10: count_end=M_3; 4d11, 4d12, 4d13, 4d14: count_end=M_2; 4d15: count_end=M_1; default:count_end=16hffff; endcase endendEndmodule引脚锁定方法信号引脚beepPin-12clkPin-43四、 设计总结经过我们一组人的共同努力,我们的课程设计完成。在此期间,我们收获颇丰。首先这是既制作收音机后的又一次焊接印刷电路板的机会,利于提高我们的对器件的辨别、理解能力,还有自己的动手能力。焊好电路板后,我觉得挺麻烦的就是程序的调试。刚开始的调试是在实验室的试验箱上,一切运行正常,但转到我们需要用的芯片上就不能出现我们想要的结果。后来又查资料,了解到芯片的时钟的频率不同,然后我们就开始转换频率再计算,同时把原来的程序根据要求的频率进行修改,但还是不能显示出流畅的音乐。最后,当我们想放弃这个设计换其他程序设计的时候,我们想起可能是蜂鸣器本身的问题。然后,我们找到以前制作收音机的喇叭,接上后效果还是挺明显的,听到音乐的那一刻确实挺有成功感。其次,也是对EDA这门课的深入理解与应用。如果说刚开始我还不知道EDA是干嘛的,但现在我可以说写一下简单的程序,看懂一些复杂的程序,然后就是提高了对Quartus操作能力。当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省宜春市2027年高三下学期联考物理试题(含答案解析)
- 医院妇科临床医师2026年上半年专科诊疗工作总结
- 高中数学教学班主任2026年上半年教学班级提质总结
- 矿山行业夏季雨季安全生产课件
- 2026年北师大版小学三年级数学上册《小数的初步认识》课时教案
- 眼科青睫综合症护理
- 右腕开放性骨折术后护理
- lec1企业财务报表概述
- kj负债经营案例分析
- CAS第2号长期股权投资
- DZ∕T 0227-2010 地质岩心钻探规程(正式版)
- 男m自评报告可填写
- 必修第一册第一章集合与常用逻辑用语单元测试试卷
- 市区道路施工地下高压电缆保护完整方案
- 背负式风力灭火机的操作与使用
- 截止阀基础知识与设计计算
- 连云港市东海县招聘事业单位人员考试真题及答案2022
- GB/T 41621-2022科学技术研究项目评价实施指南开发研究项目
- YY/T 1740.1-2021医用质谱仪第1部分:液相色谱-质谱联用仪
- YS/T 73-2011副产品氧化锌
- GB/T 32508-2016绝缘油中腐蚀性硫(二苄基二硫醚)定量检测方法
评论
0/150
提交评论