基于MP3播放器的简易应用.docx

上传人:b****2 文档编号:3259416 上传时间:2023-05-05 格式:DOCX 页数:12 大小:204.29KB
下载 相关 举报
基于MP3播放器的简易应用.docx_第1页
第1页 / 共12页
基于MP3播放器的简易应用.docx_第2页
第2页 / 共12页
基于MP3播放器的简易应用.docx_第3页
第3页 / 共12页
基于MP3播放器的简易应用.docx_第4页
第4页 / 共12页
基于MP3播放器的简易应用.docx_第5页
第5页 / 共12页
基于MP3播放器的简易应用.docx_第6页
第6页 / 共12页
基于MP3播放器的简易应用.docx_第7页
第7页 / 共12页
基于MP3播放器的简易应用.docx_第8页
第8页 / 共12页
基于MP3播放器的简易应用.docx_第9页
第9页 / 共12页
基于MP3播放器的简易应用.docx_第10页
第10页 / 共12页
基于MP3播放器的简易应用.docx_第11页
第11页 / 共12页
基于MP3播放器的简易应用.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MP3播放器的简易应用.docx

《基于MP3播放器的简易应用.docx》由会员分享,可在线阅读,更多相关《基于MP3播放器的简易应用.docx(12页珍藏版)》请在冰点文库上搜索。

基于MP3播放器的简易应用.docx

基于MP3播放器的简易应用

摘要

根据国家发改委与专业教学委员会对教育机构的要求,为培养适应我国21世纪国民经济发展的电子设计人才;同时基于国家教委面向21世纪电工电子课程体系改革和电工电子工科教学基地建设两项教学改革研究成果。

要求高等本科在校学生能够自己动手完成简单的数字器件设计。

本次设计在课本梁祝演奏的基础上,通过对频率的改变与矫正,设计出8Hz的频率输出模块,这样一些不能准确播放的音乐也可以很好的通过蜂鸣箱播放,并连接流水灯,通过流水灯显示听到的频率节拍。

再用一个音乐选择的按键可以手工直接选择要播的音乐。

关键词FPGA;音乐播放器;QuartusII;VHDL;

 

目录

摘要1

第一章前言2

1.1关于VHDL2

1.2关于FPGA3

1.3有关本次课程设计3

第二章设计实现4

2.1音乐频率的设定4

2.1.1波形仿真6

2.2音乐的选择6

2.2.1选择的电路图6

2.2.2选择编码7

2.2.3波形仿真8

2.2音乐的乐谱9

伤不起9

另一个天堂9

老男孩10

心跳10

2.3.2波形仿真11

2.4顶层设计12

第三章总结与致谢12

参考文献14

 

第一章前言

1.1关于VHDL

VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。

使用VHDL语言描述的电路,可以进行综合和仿真。

然而,值得注意的是,尽管所有VHDL代码都是可仿真的,但并不是所有代码都能综合。

VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的,从而可以方便地进行移植和重用。

VHDL两个最直接的应用领域是可编程逻辑器件(PLD)和专用集成电路(ASIC),其中可编程逻辑器件包括复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。

关于VHDL最后要说明的是:

与常规的顺序执行的计算机程序不同,VHDL从根本上讲是并发执行的。

在VHDL中,只有在进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)内部的语句才是顺序执行的。

1.2关于FPGA

FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

1.3关于实验的设计

既然是MP3播放器,那么对于乐曲的演奏效果就有了很高的要求。

按照教材中的基础模式,我们进行了延伸。

在教材中,以《梁祝》为例,给出了具有两个八度的音符频率,之后又根据一秒钟四拍的速度进行了编曲,我们在进行硬件测试时发现尽管音乐表现出来了,但是基准频率中两个八度的fa都偏高一个半音,于是我们进行了频率的调试,在实测中改写16进制的频率代码。

这样做了之后,我们发现对于仅有4Hz,14个音的basic是无法表现节奏更快的乐曲的,并且很多乐曲还需要12音律中的其他五个半音。

于是我们在自己的设计中将节拍改为了8Hz,并且经过现场测试调出了另外5个半音的频率,最后构成了两个八度共24个音的音律,这样就为之后进行相关乐曲的编曲打下了坚实的基础。

本次设计在课本梁祝演奏的基础上,通过对频率的改变与矫正,设计出8Hz的频率输出模块,这样一些不能准确播放的音乐也可以很好的通过蜂鸣箱播放,并连接流水灯,通过流水灯显示听到的频率节拍。

再用一个音乐选择的按键可以手工直接选择要播的音乐。

 

第二章设计实现

2.1.频率的与节拍的设定

在教材中,以《梁祝》为例,给出了具有两个八度的音符频率,之后又根据一秒钟四拍的速度进行了编曲,我们在进行硬件测试时发现尽管音乐表现出来了,但是基准频率中两个八度的fa都偏高一个半音,于是我们进行了频率的调试,在实测中改写16进制的频率代码。

这样做了之后,我们发现对于仅有4Hz,14个音的basic是无法表现节奏更快的乐曲的,并且很多乐曲还需要12音律中的其他五个半音。

于是我们在自己的设计中将节拍改为了8Hz,并且经过现场测试调出了另外5个半音的频率,最后构成了两个八度共24个音的音律,然后再根据节拍与频率一点点的调,最后确定正确的频率节拍。

对于编曲方面,以王力宏的《心跳》为例,这首乐曲具有很多切分音,对于1秒钟8拍的速度需要把歌曲的原速放慢,在进行编曲是考虑节拍的空拍及音符的长短时很费脑筋,不过这些难题还是在我们的努力下解决了。

F_CODE的设计

moduleF_CODE(INX,CODE,H,TO);

input[4:

0]INX;output[4:

0]CODE;outputH;output[10:

0]TO;

reg[10:

0]TO;reg[4:

0]CODE;regH;

always@(INX)begin

case(INX)

0:

beginTO<=11'H7FF;CODE<=0;H<=0;end

1:

beginTO<=11'H305;CODE<=1;H<=0;end

2:

beginTO<=11'H355;CODE<=2;H<=0;end

3:

beginTO<=11'H390;CODE<=3;H<=0;end

4:

beginTO<=11'H409;CODE<=4;H<=0;end

5:

beginTO<=11'H40C;CODE<=5;H<=0;end

6:

beginTO<=11'H457;CODE<=6;H<=0;end

7:

beginTO<=11'H483;CODE<=7;H<=0;end

8:

beginTO<=11'H4AD;CODE<=8;H<=0;end

9:

beginTO<=11'H4E3;CODE<=9;H<=0;end

10:

beginTO<=11'H50A;CODE<=10;H<=0;end

11:

beginTO<=11'H533;CODE<=11;H<=0;end

12:

beginTO<=11'H55C;CODE<=12;H<=0;end

13:

beginTO<=11'H582;CODE<=1;H<=1;end

14:

beginTO<=11'H5A1;CODE<=2;H<=1;end

15:

beginTO<=11'H5C8;CODE<=3;H<=1;end

16:

beginTO<=11'H5E2;CODE<=4;H<=1;end

17:

beginTO<=11'H606;CODE<=5;H<=1;end

18:

beginTO<=11'H620;CODE<=6;H<=1;end

19:

beginTO<=11'H638;CODE<=7;H<=1;end

20:

beginTO<=11'H656;CODE<=8;H<=1;end

21:

beginTO<=11'H670;CODE<=9;H<=1;end

22:

beginTO<=11'H684;CODE<=10;H<=1;end

23:

beginTO<=11'H69A;CODE<=11;H<=1;end

default:

beginTO<=11'H69A;CODE<=1;H<=1;end

endcase

end

endmodule

 

 

2.1.1F_CODE的仿真

2.2.音乐的选择

2.2.1选择的电路图

 

2.2.2选择的VHDL编码

moduleMucic_Chs(S,A,B,C,D,Co);

input[3:

0]S;

input[4:

0]A;input[4:

0]B;

input[4:

0]C;input[4:

0]D;

output[4:

0]Co;

reg[4:

0]Co;

always@(S,Co)

case(S)

6'b0001:

beginCo<=A;end

6'b0010:

beginCo<=B;end

6'b0100:

beginCo<=C;end

6'b1000:

beginCo<=D;end

default:

beginCo<=A;end

endcase

endmodule

在顶层文件中,通过音乐的选择设计,可以通过人工的方式来直接选择要听的音乐。

 

2.2.3仿真波形

2.3音乐的乐谱

Music模块存放乐曲中的音符数据,它是利用LPM-ROM来实现的,将乐谱中相应的音符放在一个连续的地址上。

它首先是编写音符数据文件,将乐谱中相应的音符存放在一个连续的地址上。

因为1拍的时间定为1秒,提供的是4Hz的时钟频率(即1/4拍的整数倍),则需将这个音符存储在相应次数的连续几个地址上。

然后对音符数据进行ROM定制,最后对定制好的ROM文件进行测试和仿真。

以下是通过的各个音乐的乐谱。

包括伤不起、心跳、老男孩和另一个天堂四首曲子。

伤不起

另一个天堂

老男孩

心跳

 

2.4.顶层设计

全部歌曲采用8Hz的频率的输入,一共可以输出24种不同的音符,可以准确的播放出需要的音调,而且通过音乐的选择模块,可以直接选择想听的哪一首音乐。

另外,外部的LED灯可以同步显示音乐的24中不同的音符,并且当是高位频时,输出的HIGH的闪烁显示。

第三章总结与致谢

我们设计的实验相对于那些比较大的实验来说,比较简单,也没有向他们那样设计与运用了那么多的模块和知识,但是我们也有我们自己的优势与创新,其他的组如果做音乐演奏,基本上都是和课本上一样采用4Hz的频率输入,但是这样只能设定14中不同的音符,对于现在的很多音乐来说,不能够正确的通过蜂鸣箱来表达,我们于是采取了8Hz的频率输入,在原有的基础上增加了10个音符,一共设定了24中不同的音符。

但是在设定这些音符的频率的时候我们也遇到了很大的困难,首先,我们不知道对应音符所应该设定的频率大小,不知道要设多大,如何设,于是我们参考了课本上梁祝的频率,然后做了一些细微的调整,并大略的估计了添加的音符的频率,但是这样设的并不标准,有着很大的误差,于是我们就输入一些校准的频率,通过听这些标准的音符发出的声音,然后将不准的频率的音符的频率一点点的更正,有的音符比较准确,很好调,但也有的很不好调,有的都调了超过了5次才调好。

在音乐的频率设定上我们花费了很大的精力,主要的工作也是做这个,花费了我们的大部分时间。

最后,我们要向陈龙老师表示我们诚挚的谢意,非常感谢陈龙老师在自己百忙之中还给我们开这门数字电路技术基础课,让我们及早的接触与学习数电这门课,通过这门课,激发了我们学习的兴趣,当我们完成一个实验的时候,我们感到我们的成功,我们感到骄傲与自豪。

诚恳的对老师说一声:

“谢谢您!

”。

同时也希望数电课的后续课程能够继续开下去,让我们学到更多。

参考文献

潘松、陈龙、黄继业,实用数字电子技术基础北京:

电子工业出版社2010.9

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2