教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

基于EDA音乐播放器的设计

来源:网络收集 时间:2025-04-24
导读: 长 沙 学 院 课程设计说明书 题目音乐播放器的设计 系(部) 电子与通信工程 专业(班级) 电气工程及其自动化(一班) 姓名 学号 指导教师 起止日期 2010-11-29至2010-12-10 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字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于EDA音乐播放器的设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1813803.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)