VHDL数字电路与逻辑设计课程之音乐播放器.doc
《VHDL数字电路与逻辑设计课程之音乐播放器.doc》由会员分享,可在线阅读,更多相关《VHDL数字电路与逻辑设计课程之音乐播放器.doc(23页珍藏版)》请在冰豆网上搜索。
数字电路 09210179朱璇
数字电路与逻辑设计实验
题目:
多功能简易音乐播放器
学院:
通信与信息工程学院
专业:
通信工程
班级:
学号:
班内序号:
姓名:
电子邮件:
2011年10月30日
目录
第1部分实验介绍----------------------------------------------------------------------3
1.1实验题目----------------------------------------------------3
1.2实验摘要----------------------------------------------------3
1.3任务及实现功能--------------------------------------------3
第2部分设计概要--------------------------------------------------------------------3
2.1设计目的----------------------------------------------------4
2.2设计思路----------------------------------------------------4
2.3设计功能说明------------------------------------------------4
第3部分实验程序-------------------------------------------------------------------=4
3.1主程序流程图---------------------------------------------------------------------------------------4
3.2程序代码(含注释)
A.顶层文件Mymusic-----------------------------------------------------------------------------------4
B.音乐播放Notetabs-------------------------------------------------------------------------------------8
C.音调发声ToneT----------------------------------------------------------------------------------------16
D.数控分频Speakera------------------------------------------------------------------------------------17
E.点阵产生dianzhen------------------------------------------------------------------------------------18
第4部分实验结果-----------------------------------------------------------------------20
4.1实验操作过程---------------------------------------------------------------------------20
4.2实验结果截图---------------------------------------------------------------------------20
4.3仿真原理图------------------------------------------------------------------------------21
4.4资源利用率------------------------------------------------------------------------------22
4.5实验总结----------------------------------------------------------------------------------22
4.5.1实验遇到的故障及问题-----------------------------------------------------------------------------22
4.5.2实验感想总结----------------------------------------------------------------------------------------22
第5部分附录----------------------------------------------------------------------------23
5.1元器件清单-----------------------------------------------------------------------------23
5.2参考书目--------------------------------------------------------------------------------23
第1部分实验介绍
1.1实验题目
简易音乐播放器
1.2实验摘要
本系统是采用EDA技术设计的一个简易的5音符电子琴和音乐播放器,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以通过按键输入来控制音响。
系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。
本系统功能比较齐全,有一定的使用价值
1.3任务及可实现功能
1.播放器内预存3首乐曲;
2.播放模式:
顺序播放、随机播放,或者自动弹奏模式,LED显示当前播放模式;
顺序播放:
按内部给定的顺序依次播放3首乐曲;
随机播放:
随机产生一个顺序播放3首乐曲;
自动弹奏:
可以手动弹奏想要的乐曲;
3.用数码管显示当前播放乐曲的顺序号;
4.设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再按则继续播放;
5.设置Nexttone,Lasttone和Previous键,按Nexttone键可以听下一首,按Lasttone键可以听上一首,按Previous键回到本首重新开始;
6.用户可以自行设定播放顺序,设置完成后,播放器按该顺序依次
播放乐曲;
7.用户可以自行选择想听的歌曲,选择那首播放哪首
8.led等跟随音乐闪烁不同的颜色
9.点阵凭跟随音乐显示跳动的心
第2部分设计概要
2.1设计目的
(1)熟悉VHDL语言和Quartus2软件的使用
(2)理解状态机的工作原理和设计方法
(3)掌握利用EDA工具进行自顶向下的电子系统设计方法
2.2设计思路
根据VHDL自顶向下的设计思路,把简易乐曲播放器电路分为3个主要模块,即音乐播放music模块,音调发生tonet模块,数控分频speakera模块。
分好模块之后,编写每个模块的程序,分别生成项目符号,最后把生成的个项目符号用原理图的方式连接起来,然后编译、下载即可。
由图例表示如下:
输入(曲)输出(曲)
Speakera
ToneT
Music
2.3设计功能说明
1.音乐播放music模块
音乐播放模块的作用是产生发声控制输入信号。
当进行演奏时,有自此模块中的数作为发声控制输入,从而自动演奏音乐。
2.音调发生tone模块
音调发生模块的作用是产生音阶分频预置值。
当8位发生控制输入信号中的某一位为高电平时,则对应某一音阶的数值将输出,该数值即为该音阶的分频预置值,分频预置值控制数频分频模块进行分频,由此可得到每个音节对应的频率。
3.数控分频frequency模块
数控分频模块是对时基脉冲进行分频,得到与1,2,3,4,5,6,7七个音符相对应的频率。
4.灯光模块
控制led小灯,会跟着音乐打节拍。
5.点阵模块
控制点阵变化图形,跟随音乐,显示跳动的心脏
第3部分实验结果
3.1主程序流程图
否
否
是
是
上一首
本首
否
下一首
播放
是否播放/暂停
开始
顺序播放
随机播放
是
3.2主要功能模块代码
A.顶层函数mymusic
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
useieee.std_logic_signed.all;
ENTITYmineIS
PORT
(CLK50MHZ:
INSTD_LOGIC;--主频50M
reset:
INSTD_LOGIC;
hang,lie,hangnew:
outstd_logic_vector(7downto0);--点阵
LED:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);--彩灯功能
SOC:
INSTD_LOGIC;--暂停或播放
SHOW:
OUTSTD_LOGIC;--播放模式显示
NEXTONE:
INSTD_LOGIC;--下一首
LASTONE:
INSTD_LOGIC;--上一首
PREVIOUS:
INSTD_LOGIC;--本首重来
SPKOUT:
OUTSTD_LOGIC;--音频输出
MODE:
INSTD_LOGIC;--播放模式
SEG:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);--歌曲序号显示
CAT:
OUTSTD_LOGIC_VECTOR(5DOWNTO0);--第1个数码管显示歌曲序号
STOP:
INSTD_LOGIC
);
END;
ARCHITECTUREoneOFmineIS
COMPONENTNoteTabs
PORT(clk:
INSTD_LOGIC;--4Hz
ToneIndex:
OUTINTEGERRANGE0TO15;--音调
SEG:
OUTSTD_LOGIC_VECTOR