FPGA设计简易音乐播放器.doc_第1页
FPGA设计简易音乐播放器.doc_第2页
FPGA设计简易音乐播放器.doc_第3页
FPGA设计简易音乐播放器.doc_第4页
FPGA设计简易音乐播放器.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告题 目: FPGA简易音乐播放器设计 学 院: 电子信息学院 班 级: 08041301 学生(学号): 汪顺 2013302011 学生 (学号): 叶尔达叶尔丁巴图 2013302014 日期: 2015 年 12 月 摘 要利用EDA软件设计一个简易硬件播放器并能播放多首音乐(最少四首) ,可通过按键手动控制音乐播放。在播放音乐的同时可实现音谱与音高的显示,并通过 10 个 LED小灯显示不同音调的变化。使用硬件描述语言设计音调发生模块,音调编码模块,乐曲存储模块,控制模块,小灯控制模块,数字显示模块,音谱与音高输出模块等各个模块。并下载到DE0CV上实现。关键词:EDA、音乐播放器、音调编码、数字显示、DE0CV目 录摘 要1目 录2一、 课程设计目的3二、设计任务与要求3三、方案设计与论证4四、 单元电路设计与参数计算64.1音频发生模块64.2音频编码模块74.3乐曲储存模块84.4控制模块104.5小灯显示模块114.6数字显示模块114.7分频模块124.8总体设计13五、电路的安装与调试145.1音频编码模块145.2乐曲储存模块155.3 控制模块155.4 小灯控制模块(led)165.5 音谱与音高输出模块16六、遇到问题的解决方法17七、结论与心得17八、参考文献18简易音乐播放器设计一、 课程设计目的模拟、数字电路课程设计是继模拟电子技术基础 、数字电子技术基础 、电子技术基础实验课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过二周的时间,让学生掌握 EDA 的基本方法,熟悉一种 EDA 软件,并能利用 EDA 软件设计一个电子技术综合问题,并在实验箱上成功下载,为以后进行工程实际问题的研究打下设计基础。(1)通过课程设计使学生能熟练掌握一种 EDA 软件的使用方法, 能熟练进行设计输入、编译、管脚分配、下载等过程。(2)通过课程设计使学生能利用 EDA 软件进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或硬件描述语言输入法。(3)通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。(4)通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。二、设计任务与要求(1)设计一个简易硬件播放器并能播放多首音乐(最少四首),可通过按键手动控制音乐播放。(2)在播放音乐的同时可实现音谱与音高的显示。 (3)并通过 10个LED小灯显示不同音调的变化。(4)使用硬件描述语言设计音调发生模块,音调编码模块,乐曲存储模块,控制模块,小灯控制模块,数字显示模块,音谱与音高输出模块等各个模块。三、方案设计与论证(1)音乐产生产生音乐的两个因素是音乐频率和音乐的持续时间(即节拍), 以纯硬件完成演奏电路比利用微处理器 (CPU) 来实现乐曲演奏要复杂的多。如果不借助于功能强大的 EDA工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。 根据设计要求,乐曲硬件演奏电路系统主要由音频发生模块(speaker)和乐曲存储模块(notetabs)组成。音频发生模块对 FPGA 的基准频率进行分频(设计采用1MHZ),得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。(设计采用16HZ)(2) 音名与频率的关系音乐的十二平均率规定:每两个八度音(如简谱中的中音1与高音1)之间的频率相差一倍。在两个八度音之间,又可分为十二个半音,每两个半音为1个全音(如简谱中的低音1与低音2),每两个半音之间频率之比是,两个全音之间的频率之比是。另外,音名 A(简谱中的低音 6)的频率为 440Hz,音名 E 到 F之间,B到C之间为半音,其余为全音,由此可以计算出简谱中从低音 1 到高音 1 之间每个音名的频率如表 3-1 所示 由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本例中选取1MHz 的基准频率各音阶频率及相应的分频系数如表 2 所示。为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个二分频的分频器。 由于最大的分频系数为 1274, 故采用 11位二进制计数器已能满足分频要求。在表 3-2,除给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为 0,即初始值为 2047 即可,此时扬声器将不会发声。对于不同的分频系数,加载不同的初始值即可。(3) 节拍控制原理该演奏电路演奏的乐曲是“梁祝”等片段,其最小的节拍为 1 拍。将 1 拍的时长定为 0.125 秒,则需要再提供一个8Hz 的时钟频率即可产生 1 拍的时长,演奏的时间控制通 (4)设计图如下:转换成频率分频器1MHz基准音调存储8Hz节拍音调编码音调显示音谱.音高显示控制选歌4、 单元电路设计与参数计算4.1音频发生模块4.1.1音频发生模块图图 4-1 speaker 模块4.1.2模块功能如图 4-1,en 为使能引脚,当 en 引脚接高电平时 speaker 模块使能可正常工作。clk 为时钟信号引脚,为 speaker 模块提供时钟信号。tone10.0为 11位的音调初始值信号并行总线,可快速的为 speaker 模块输送音调初始值信号,保证乐曲演奏的流畅性。spks 为电信号输出引脚,连接蜂鸣器将电信号转化为声信号。 该模块中采用1MHz的基准信号。 一个 11位的递增计数器用于赋音调初始值对基准信号进行频,最后进行二分频产生对称方波。初始值 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 spkstone=2047;code=0;heighttone=773;code=1;heighttone=912;code=2;heighttone=1695;code=7;heighttone=1728;code=1;heightnull;4.3乐曲储存模块4.3.1 乐曲储存模块图图 4-3 notetabs 模块4.3.2 模块功能如图 4-3,clk 为时钟信号引脚为模块提供时钟信号,clr 为计数器清零引脚, 当 clr 为高电平时 notetabs 模块中的乐曲播放计数器清零。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=0;elsif add=01 and counter=128 thencounter=0;elsif add=10 and counter=96 thencounter=0;elsif add=11 and counter=120 thencounter=0;elsif clr=1 and clrlast_value=0 then-counter计数清0counter=0;else counterindexindexindexnull;if add=01 then-两只老虎case counter iswhen 0=indexindexindexnull;if add=10 then-生日快乐case counter iswhen 0=indexindexindexnull;if add=11 then-世上只有妈妈好case counter iswhen 0=indexindexindexnull;4.4控制模块4.4.1 控制模块图图 4-4 control 模块4.4.2 模块功能如图 4-4, 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=1;end if;if switchevent and switch=1 then-控制add计数(切歌)flaglightlightlightyinpuyinpuyinpunull;end case;case height iswhen 0=yingaoyingaoyingaonull;end case;4.7分频模块4.7.1分频模块图图47fenpin模块4.7.2模块功能如图,clk为DE0板提供的50MHZ,输出clk_out8为8HZ连接notetabs模块,起到控制节拍的作用。输出clk_out1M连接speaker模块,提供基准频率。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.8.1总体原理图总体电路图如图484.8.2总体功能介绍 该电路可以播放四首乐曲,可通过按按键的次数来切换曲目,接通电源后默认为播放第一首乐曲。接通电源后按一次播放第二首乐曲,接通电源后按两次播放第三首乐曲 ,接通电源后按三次播放第四首乐曲 ,接通电源后按第四次地址归零播放第一首乐曲。每按按键四次一个循环。可重复播放当前乐曲。在播放乐曲的同时8位的LED 小灯点亮, 其点亮的个数与音调对应。 四位数码管的第一位显示乐谱(0,1, 2,3,4,5,6,7),第二位显示音高(0(低音),1(中音) ,2(高音)) 五、电路的安装与调试5.1音频编码模块(bianma)图 5-1 bianma 模块仿真波形图 5-1中,当输入音符为0时其输出的音调初始值信号为2047(二进制11111111111),音高为 0(低音),对应的音谱为0。当输入音符为9 时其输出的分频系数为1480(10111001000),音高为1(中音),对应的音谱为2。与原理相符合。5.2乐曲储存模块(notetabs)图5-2 notetabs 模块仿真波形图5-2 中,当 clr 为高电平时每首乐曲的输出保持不变,当 cs 为高电平且clr 为低电平时模块正常工作,当 add1.0为 2 时输出第三首乐曲的音符。与原理相符合。5.3 控制模块(control)图 5-3 control 模块仿真波形图5-3 中,引脚 en 与引脚 outcs 同步变化当 en 为高电平时 outcs 同样为高电平,反之亦然。当 switch 经历一次上升沿时 add 自动加 1,当 add 大于 3时自动归零,按键每按一次 add 继续自动加一,以此不断循环。与原理相符合。5.4 小灯控制模块(led)图5-4 led 模块仿真波形图 5-4 中,当 input3.0的输入为音符 4 时 light7.0的输出的低3位都为高电平,当input3.0的输入为音符 6 时light7.0的输出的低4位都为高电平,当input3.0的输入为音符15 时light7.0的输出的所有位都为高电平,LED 小灯全点亮。不同的音符对应由低到高的不同的亮灯个数,相邻的两个音符亮灯情况一致。与原理相符合。5.5 音谱与音高输出模块(shumaguan)图5-5 shumaguan模块仿真波形图55中,当音谱输入为1时,输出yinpu显示1(7段译码器为1111001)输入音高为1时,输出yinggao显示1(7段译码器为1111001),与原理相符。六、遇到问题的解决方法(1)由于对乐理方面知之甚少,所以在理解课题设计要求时有些困难,再搜集资料理解音调、音谱、音高之间的关系,理解了音调如何通过初始值转化成音名所对应的频率后思路就清晰了。(2)编写的歌曲放出来节奏太慢,且听起来不顺畅。通过分频器把控制节拍的4HZ脉冲改为16HZ脉冲,在音乐存储模块中半音则音调重复2次,全音重复4次,一个半音重复6次。如若频率再高一些会明显加大乐曲编码的工作量。(3)要求10个灯显示16个音调(包括休止符)不够,所以改为相邻两个音共用一种亮灯情况。(4)由于切歌是要求从第一个音符播放,需要一个清

温馨提示

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

评论

0/150

提交评论