ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:176.95KB ,
资源ID:8867621      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8867621.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA设计简易音乐播放器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FPGA设计简易音乐播放器.docx

1、FPGA设计简易音乐播放器FPGA设计简易音乐播放器 作者: 日期: 课 程 设 计 报 告题 目: FPGA简易音乐播放器设计 学 院: 电子信息学院 班 级: 08041301 学生(学号): 汪顺 2013302011 学生 (学号): 叶尔达叶尔丁巴图 2013302014 日期: 2015 年 12 月 摘 要利用EDA软件设计一个简易硬件播放器并能播放多首音乐(最少四首) ,可通过按键手动控制音乐播放。在播放音乐的同时可实现音谱与音高的显示,并通过 10 个 LED小灯显示不同音调的变化。使用硬件描述语言设计音调发生模块,音调编码模块,乐曲存储模块,控制模块,小灯控制模块,数字显示

2、模块,音谱与音高输出模块等各个模块。并下载到DE0CV上实现。关键词:EDA、音乐播放器、音调编码、数字显示、DE0-CV简易音乐播放器设计一、课程设计目的模拟、数字电路课程设计是继模拟电子技术基础 、数字电子技术基础 、电子技术基础实验课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过二周的时间,让学生掌握 EDA 的基本方法,熟悉一种 EDA 软件,并能利用 EDA 软件设计一个电子技术综合问题,并在实验箱上成功下载,为以后进行工程实际问题的研究打下设计基础。(1)通过课程设计使学生能熟练掌握一种 EDA 软件

3、的使用方法, 能熟练进行设计输入、编译、管脚分配、下载等过程.(2)通过课程设计使学生能利用 EDA 软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或硬件描述语言输入法。(3)通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。(4)通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告.二、设计任务与要求(1)设计一个简易硬件播放器并能播放多首音乐(最少四首),可通过按键手动控制音乐播放。(2)在播放音乐的同时可实现音谱与音高的显示. (3)并通过 10个LED小灯显示不同音调的变化。(4)使用硬件描述语言设计音调发生模

4、块,音调编码模块,乐曲存储模块,控制模块,小灯控制模块,数字显示模块,音谱与音高输出模块等各个模块。三、方案设计与论证(1)音乐产生产生音乐的两个因素是音乐频率和音乐的持续时间(即节拍), 以纯硬件完成演奏电路比利用微处理器 (CPU) 来实现乐曲演奏要复杂的多。如果不借助于功能强大的 EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。 根据设计要求,乐曲硬件演奏电路系统主要由音频发生模块(speaker)和乐曲存储模块(notetabs)组成。音频发生模块对 FPGA 的基准频率进行分频(设计采用1MHZ),得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控

5、制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。(设计采用16HZ)(2) 音名与频率的关系音乐的十二平均率规定:每两个八度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个八度音之间,又可分为十二个半音,每两个半音为1个全音(如简谱中的低音1与低音2),每两个半音之间频率之比是,两个全音之间的频率之比是。另外,音名 A(简谱中的低音 6)的频率为 440Hz,音名 E 到 F之间,B到C之间为半音,其余为全音,由此可以计算出简谱中从低音 1 到高音 1 之间每个音名的频率如表 3-1 所示 1MHz

6、 的基准频率各音阶频率及相应的分频系数如表 2 所示。为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个二分频的分频器。 由于最大的分频系数为 1274, 故采用 11位二进制计数器已能满足分频要求。在表 32,除给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为 0,即初始值为 2047 即可,此时扬声器将不会发声.对于不同的分频系数,加载不同的初始值即可。(3) 节拍控制原理该演奏电路演奏的乐曲是“梁祝”等片段,其最小的节拍为 1 拍.将 1 拍的时长定为 0。125 秒,则需要再提供一个8Hz 的

7、时钟频率即可产生 1 拍的时长,演奏的时间控制通 (4)设计图如下:8Hz节拍四、单元电路设计与参数计算4。1音频发生模块4。1.1音频发生模块图图 4-1 speaker 模块4.1。2模块功能如图 41,en 为使能引脚,当 en 引脚接高电平时 speaker 模块使能可正常工作。clk 为时钟信号引脚,为 speaker 模块提供时钟信号.tone10。0为 11位的音调初始值信号并行总线,可快速的为 speaker 模块输送音调初始值信号,保证乐曲演奏的流畅性。spks 为电信号输出引脚,连接蜂鸣器将电信号转化为声信号。 该模块中采用1MHz的基准信号。 一个 11位的递增计数器用于

8、赋音调初始值对基准信号进行频,最后进行二分频产生对称方波。初始值 D = 计数最大值 N - 分频系数 n 4.1。3VHDL程序定义部分省略if clkevent and clk=1 thenif count1=2047 thencount1:=tone;fullspks=1;else count1:=count1+1;fullspks=0;-初始值转化成频率此处省略if fullspksevent and fullspks=1 then-2分频count2:=not count2;if en=0 then spks=0;elsif count2=1 thenspks=1;else spks

9、tone=2047;code=0;height=0;-把音符编译成音谱音高及音名对应初始值when 1=tone=773;code=1;height=0;when 2=tone=912;code=2;height=0;此处省略when 14=tone=1695;code=7;heighttone=1728;code=1;height=2;when others=null;4。3乐曲储存模块4。3.1 乐曲储存模块图图 43 notetabs 模块4.3。2 模块功能如图 43,clk 为时钟信号引脚为模块提供时钟信号,clr 为计数器清零引脚, 当 clr 为高电平时 notetabs 模块中

10、的乐曲播放计数器清零。add1。0为 2位的乐曲地址选择并行总线,可通过不同的地址值选择不同的乐曲。cs 为片选信号引脚当 cs 为高电平时模块才能正常工作反之无法工作.index3。0为 4位的音符信号输出并行总线,为 tonetaba 模块和led模块提供音符信号。该模块中有一个 8 位的播放计数器为乐谱的连续查询提供计数, 当达到一定计数值后自动清零实现同一首乐曲的重复播放.4。3。3 VHDL定义部分省略if clkevent and clk=1 thenif cs=0 thencounter=0;elsif add=00 and counter=395 then-换歌counter=

11、0;elsif add=”01 and counter=128 thencounter=0;elsif add=”10 and counter=96 thencounterindexnull;if add=01” then-两只老虎case counter iswhen 0=index=0;-0when 1=index=8;-此处省略when 128=indexindexindexnull;if add=11” then-世上只有妈妈好case counter iswhen 0=indexindex=5;when others=null;4。4控制模块4。4。1 控制模块图图 44 contr

12、ol 模块4。4。2 模块功能如图 44, switch 为控制引脚当其为上升沿时乐曲地址自动加一,当加到最大值时自动清零. en 为使能引脚当刚 en 引脚为高电平时 outcs 引脚也为高电平,反之为低电平.add1。.0为乐曲地址总线当 add 为 00 时选择第 1 首乐曲,为01 时选择第 2 首乐曲, 为 10 时选择第 3 首乐曲, 为 11 时选择第 4 首乐曲 。outcs为notetabs 模块片选控制引脚, 当outcs引脚为高电平时选中notetabs 模块。4.4.3 VHDL程序定义部分省略if en=0 then-en为总开关outcs=0;else outcs=

13、1;end if;if switchevent and switch=1 then-控制add计数(切歌)flaglightlightlightnull;end case;case height iswhen 0=yingao=1000000;-音高显示when 1=yingao=”1111001”;when 2=yingao=”0100100”;when others=null;end case;分频模块图图47fenpin模块4。7。2模块功能如图,clk为DE0板提供的50MHZ,输出clk_out8为8HZ连接notetabs模块,起到控制节拍的作用。输出clk_out1M连接spea

14、ker模块,提供基准频率。4.7.3 VHDL 程序定义部分省略constant m:integer:=3125000;-8HZif clkevent and clk=1 then count8:=count8+1; if count8=m then tmp1=0; -8HZelsif count8m*2 then tmp1=1; else count8:=0;if count1M=25 thencount1M:=0;tmp2=not tmp2;-1Melse count1M:=(count1M+1);end if;4。8总体设计总体电路图如图4-84.8.2总体功能介绍 该电路可以播放四首乐

15、曲,可通过按按键的次数来切换曲目,接通电源后默认为播放第一首乐曲.接通电源后按一次播放第二首乐曲,接通电源后按两次播放第三首乐曲 ,接通电源后按三次播放第四首乐曲 ,接通电源后按第四次地址归零播放第一首乐曲。每按按键四次一个循环.可重复播放当前乐曲。在播放乐曲的同时8位的LED 小灯点亮, 其点亮的个数与音调对应。 四位数码管的第一位显示乐谱(0,1, 2,3,4,5,6,7),第二位显示音高(0(低音),1(中音) ,2(高音) 五、电路的安装与调试5。1音频编码模块(bianma)图 51 bianma 模块仿真波形图 5-1中,当输入音符为0时其输出的音调初始值信号为2047(二进制,音

16、高为 0(低音),对应的音谱为0。当输入音符为9 时其输出的分频系数为14805。2乐曲储存模块(notetabs)图5-2 notetabs 模块仿真波形图52 中,当 clr 为高电平时每首乐曲的输出保持不变,当 cs 为高电平且clr 为低电平时模块正常工作,当 add1.0为 2 时输出第三首乐曲的音符。与原理相符合.5。3 控制模块(control)图 5-3 control 模块仿真波形图5-3 中,引脚 en 与引脚 outcs 同步变化当 en 为高电平时 outcs 同样为高电平,反之亦然。当 switch 经历一次上升沿时 add 自动加 1,当 add 大于 3时自动归零

17、,按键每按一次 add 继续自动加一,以此不断循环.与原理相符合。5。4 小灯控制模块(led)图54 led 模块仿真波形图 54 中,当 input3。.0的输入为音符 4 时 light7.。0的输出的低3位都为高电平,当input3.。0的输入为音符 6 时light7.0的输出的低4位都为高电平,当input3.0的输入为音符15 时light7。0的输出的所有位都为高电平,LED 小灯全点亮。不同的音符对应由低到高的不同的亮灯个数,相邻的两个音符亮灯情况一致。与原理相符合。5。5 音谱与音高输出模块(shumaguan)图55 shumaguan模块仿真波形图55中,当音谱输入为1

18、时,输出yinpu显示1(7段译码器为1111001)输入音高为1时,输出yinggao显示1(7段译码器为1111001),与原理相符。六、遇到问题的解决方法(1)由于对乐理方面知之甚少,所以在理解课题设计要求时有些困难,再搜集资料理解音调、音谱、音高之间的关系,理解了音调如何通过初始值转化成音名所对应的频率后思路就清晰了。(2)编写的歌曲放出来节奏太慢,且听起来不顺畅。通过分频器把控制节拍的4HZ脉冲改为16HZ脉冲,在音乐存储模块中半音则音调重复2次,全音重复4次,一个半音重复6次。如若频率再高一些会明显加大乐曲编码的工作量。(3)要求10个灯显示16个音调(包括休止符)不够,所以改为相

19、邻两个音共用一种亮灯情况。(4)由于切歌是要求从第一个音符播放,需要一个清0端,设计中把clk设计为下降沿清0,本想设计为与切歌按钮共用一个按钮,结果在DE0板上运行结果是音符不动,最后单独给清0端设置一个开关才实现功能。七、结论与心得(1)本次简易音乐播放器的设计经过了整体分析、模块化分析、整体与模块的仿真分析这样三个步骤,硬件实现了整体复位、按键选择演奏方式、循环演奏以及数码管显示乐谱的功能。(2)设计中不但要考虑模块基本功能的实现,还要通过一些高电平有效的端口避免一些不必要的工作.(3)音乐初始值的设置方面,只要各个音名间的相对品频率关系不变,听起来都不会走调。(4)程序内部设计逻辑关系

20、要清晰,各层次条件要分好等级关系,否则运行结果会丢失一部分功能。(5)本次设计基本达到了设计要求,但尚有需要改进的地方。随着乐谱的复杂程度加大,如果依然在音调发生器的程序中通过时钟计数来决定音符的输出,会加大编程的繁杂度,这时一个很好的解决办法就是把将要演奏的乐谱存放在人为开辟的存储空间里,这样只需要在相应地址中读出音符即可.八、参考文献1 潘松,黄继业.EDA 技术实用教程M.北京:科学出版社,2002。2 高歌.电子技术 EDA 仿真设计M.出版地:中国电力出版社,2007。3 黄任.VHDL 入门经典实例经验总结M.北京航天大学出版社,2005.4 王振红,张常年.综合电子设计与实践M。北京:清华大学出版社,2005.5 阎石.数字电子技术基础(第五版)M.出版地:高等教育出版社,2006.6 李国丽,朱维勇,栾铭.EDA 与数字系统设计M.机械工业出版社,2004。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1