基于EDA音乐播放器的设计
长 沙 学 院
课程设计说明书
题目音乐播放器的设计 系(部) 电子与通信工程 专业(班级) 电气工程及其自动化(一班) 姓名 学号
指导教师
起止日期 2010-11-29至2010-12-10
EDA技术课程设计任务书
系(部):电子与通信工程系 专业:电气工程及其自动化 指导教师:
长沙学院课程设计鉴定表
目录
摘要.............................................................................................................................................................................4
设计原理....................................................................................................................................................................5
程序: ........................................................................................................................................................................6
实验现象: .............................................................................................................................................................14
引脚分配: .............................................................................................................................................................14
仿真波形: .............................................................................................................................................................15
心得体会: .............................................................................................................................................................16
参考文献: .............................................................................................................................................................16
摘要:
在SOPC开发平台上实现一个音频信号发生器,编写3段音乐,利用开发平台的蜂鸣器来播放几段音乐。可进行自动循环播放和手动播放两个模式的选择。如果为手动播放,则通过拨动拨码开关第1、2位选择。播放音乐时,要求将该音乐的序号(分别为A1、A2,A3)以及该音乐播放剩余的时间(分、秒)显示在数码管上。当某首音乐开始播放时,音乐序号闪烁显示3秒钟。
关键字:
SOPC、音频信号、音乐、蜂鸣器、自动循环、手动播放、剩余时间(分钟、秒钟)显示、音乐序号(A1、A2、A3)显示。
设计原理:
首先采用分块设计法,将设计分为分频模块、时间动态扫描显示模块、音乐播放模块、顶层模块。其中音乐播放模块又可分为音频模块、音乐代码模块,预置数模块
利用计数的方式将50MHZ的频率分为12MHz、100Hz、8Hz、1Hz。
音乐播放模块需要完成以下设计:
①预置乐曲,本次设计选取了《梁祝》的一段作预置,在作预置时,需要将乐曲音符转换成相应的代码,通过计算逐一将音符转换成代码,通过EDA开发平台quartus Ⅱ进行乐曲定制;
②为了提供乐曲发音所需要的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符发音的相应频率;
③为了给分频提供预置数,需要计算分频预置数;
对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真。
音调的控制
频率的高低决定了音调的高低。综合考虑各因素,本次设计中选取12MHZ作为CLK的分频计数器的输入分频信号。由于乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符相对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。
表1 简谱中的音名与频率的关系
这次设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4Hz的时钟频率即可产生四分音符的时长。系统工作时就按4Hz的频率依次读取简谱,当系统读到某个音符的简谱时就对应发这个音符的音调,持续时间为0.25秒.如果在曲谱文件中某个音符为三拍音长,只要将该音符连续书写三遍,系统读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这时我们听上去就会持续了三拍的时间,这样就可以控制音乐的音长了
程序:
音乐播放器顶层模块 library ieee;
use ieee.std_logic_1164.all;
entity songer is
port(clk50mhz,c:in std_logic;
led7s:buffer std_logic_vector(6 downto 0);
led_selout:out std_logic_vector(7 downto 0); spkout:out std_logic); end;
architecture one of songer is component notetabs port(clk:in std_logic;
f1s,f8,f12,fs:out std_logic); end component; component notetabs port(clk:in std_logic;
toneindex:out std_logic_vector(3 downto 0)); end component; component tonetaba
port(index:in std_logic_vector(3 downto 0); tone:out std_logic_vector(10 downto 0)); end component; component speakera
port(clk:in std_logic;
tone:in std_logic_vector(10 downto 0); spks:out std_logic); end component; component daojishi
port(clk1,clk2,c:in std_logic; led7s:buffer std_logic_vector(6 downto 0); led_selout:out std_logic_vector(7 downto 0)); end component;
signal tone:std_logic_vector(10 downto 0); signal toneindex:std_logic_vector(3 downto 0);
signal ff1,ff8,ff12,ffs:std_logic_vector; begin
u1:fp port map(clk=>clk50mhz,f1s=>ff1,f8=>ff8,f12=>ff12,fs=>ffs); u2:notetabs port map(clk=>ff8,toneindex=>toneindex); u3:tonetaba port map(index=>toneindex,tone=>tone);
u4:speakera port map(clk=>ff12,tone=>tone,spks=>spkout);
u5:daojishi port map(clk1=>ff1,clk2=>ffs,c=>c,led7s=>led7s,led_selout=>led_selout); end;
分频模块
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fp is
port(clk:in std_logic;
f1s,f8,f12,fs:out std_logic); end;
architecture bhv of fp is
signal a,c,f:std_logic; signal a2,c2,f2:std_logic; begin
process(clk)
variable cnt24:std_logic_vector(25 downto 0); variable cnt8:std_logic_vector(7 downto 0); begin
if clk'event and clk='1' then if cnt24<"01011111010111100001000000" then cnt24:=cnt24+1; f1s<='0'; elsif cnt24<"10111110101111000010000000" then
cnt24:=cnt24+1;
f1s<='1'; …… 此处隐藏:10240字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)