ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:330.71KB ,
资源ID:3519905      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3519905.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA课程设计—音乐播放器.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

EDA课程设计—音乐播放器.doc

1、EDA 课程设计音乐播放器一、前言1、课程的目的与任务EDA 课程设计 (注:EDA 即电子设计自动化,Electronics Design Automation)是继模拟电子技术基础 、 数字电子技术基础 、 电子技术基础实验课程后,电气类、自控类和电子类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过一周的时间,让学生掌握 EDA 的基本方法,熟悉一种 EDA 软件(MAXPLUS2) ,并能利用 EDA 软件设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。2、课程的基本要求1、 通过课程设计使学

2、生能熟练掌握一种 EDA 软件(MAXPLUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。2、 通过课程设计使学生能利用 EDA 软件(MAXPLUS2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择) ,设计输入可采用图形输入法或 AHDL 硬件描述语言输入法。3、 通过课程设计使学生初步具有分析寻找和排除电子电路中常见故障的能力。4、 通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。3、与其他课程的联系与分工EDA 课程设计中应用了模拟电子技术基础 、 数字电子技术基础中的基础知识和基本理论,并且利用了电子

3、技术基础实验中的基本实验方法,在时间上的安排上应该在这些课程之后。EDA 课程设计的后续课程是微机原理等其它专业课程, EDA 课程设计中对学生综合设计能力的培养将为这些后续课程的学习打下良好基础。二、 设计任务及要求用 VHDL 语言设计乐音的节拍与音符产生电路;用 VHDL 语言设计分频系数、音符显示数据产生电路;用 VHDL 语言设计可控分频器电路;理解简易音乐播放器总体设计方案。掌握基本的 VHDL 语言;理解音乐播放电路设计方案。掌握用 VHDL 语言设计节拍与音符产生电路;掌握用 VHDL 语言设计分频系数、音符显示数据产生电路;掌握用 VHDL 语言设计可控分频器电路。设计结果:

4、原理图与原程序、电路仿真图、能在实训系统上播放悦耳动听的音乐。三、设计原理及总体框图产生音乐的两个因素是音乐频率和音乐的持续时间,以纯硬件完成演奏电路比利用微处理器(CPU )来实现乐曲演奏要复杂的多如果不借助于功能强大的 EDA 工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。根据 6.4.1 的设计要求,乐曲硬件演奏电路系统主要由数控分频器和乐曲存储模块组成。数控分频器对 FPGA 的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟

5、信号作为乐曲节拍控制信号。1、音名与频率的关系音乐的十二平均率规定:每两个八度音(如简谱中的中音与高音)之间的频率相差一倍在两个八度音之间,又可分为十二个半音,每两个半音的频率比为 4。另外,音名(简谱中的低音)的频率为 440Hz,音名 B 到 C之间,E 到 F 之间为半音,其余为全音,由此可以计算出简谱中从低音 1 到高音 1 之间每个音名的频率如表 1 所示.表 1 简谱中的音名与频率的关系音名 频率/Hz 音名 频率/Hz 音名 频率/Hz低音 1 261.63 中音 1 532.25 高音 1 1046.50低音 2 293.67 中音 2 587.33 高音 2 1174.66低

6、音 3 329.63 中音 3 659.25 高音 3 1318.51低音 4 349.23 中音 4 698.46 高音 4 1396.92低音 5 391.99 中音 5 783.99 高音 5 1567.98低音 6 440 中音 6 880 高音 6 1760低音 7 493.88 中音 7 987.76 高音 7 1975.52由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合

7、适的基准频率。本例中选取 4MHz 的基准频率,若无 4MHz 的时钟频率,实际上,只要各个音名间的相对品频率关系不变,C 作 1 与 D 作 1 演奏出的音乐听起来都不会“走调” 。各音阶频率及相应的分频系数如表 2 所示。为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个二分频的分频器。表 2 中的分频系数就是从 4MHZ 频率二分频得到的 2MHZ 频率基础上计算得出的。表 2 各音阶频率对应的分频值音名 分频系数初始值音名 分频系数初始值音名 分频系数初始值低音 1 7644 547 中音 1 3822 4369 高音 1 1911 6280低

8、音 2 6810 1381 中音 2 3405 4786 高音 2 1270 6921低音 3 6067 2124 中音 3 3034 5157 高音 3 1517 6674低音 4 5727 2464 中音 4 2864 5327 高音 4 1432 6759低音 5 5102 3089 中音 5 2551 5640 高音 5 1256 6935低音 6 4545 3646 中音 6 2273 5918 高音 6 1137 7054低音 7 4050 4141 中音 7 2025 6166 高音 7 1013 7178由于最大的分频系数为 7644,故采用 13 位二进制计数器已能满足分频要

9、求。在表 2,除给出了分频比以外,给出了对应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为 0,即初始值为 8191 即可,此时扬声器将不会发声。对于不同的分频系数,加载不同的初始值即可。用加载初始值而不是将分频输出译码反馈,可以有效地减少本设计占用可编程逻辑器件的资源,也是同步计数器的一个常用设计技巧。2、控制音长的节拍发生器该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍为 1 拍。将 1 拍的时长定为 0.25 秒,则只需要再提供一个 4Hz 的时钟频率即可产生 1 拍的时长,演奏的时间控制通过 ROM 查表的方式来完成。对于占用时间较长的节拍,如全音符为 4

10、拍(重复 4) ,2/4 音符为 2 拍(重复 2) ,1/4 音符为 1 拍(重复 1) 。3、总体框图:(如图 1)图 1总体框图说明:NOTETABS 相当于一个计数器,通过计数自动加 1 读 MUSIC 模块里的值,然后通过 MUXA 选择模块选择 MUSIC 模块中不同的输出, TONETABA 模块根据 MUXA模块不同的输出选择相应的值,SPEAKERA 模块根据 TONETABA 的输出对 12MHZ 的时钟信号进行分频,从而得到相信的频率输出发出声音(音调) ,从而实现播放不同的歌曲。四、程序设计:1、NOTETABS 模块:LIBRARY IEEE;USE IEEE.STD

11、_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NOTETABS ISPORT(CLK: IN STD_LOGIC;COUNTER1 :inout STD_LOGIC_vector(7 downto 0);END NOTETABS;ARCHITECTURE a OF NOTeTABs ISBEGINP1:PROCESS (CLK,COUNTER1)BEGINIF COUNTER1=183 THENCOUNTER1 bbbbnull;END CASE;END PROCESS;END a;创建符号:(如图 3)3、TONETABA 模块

12、:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TONETABA ISPORT(INDEX : IN STD_LOGIC_vector(3 downto 0);CODE : OUT STD_LOGIC_vector(3 downto 0);HIGH : OUT STD_LOGIC;TONE : OUT STD_LOGIC_vector(10 downto 0);END TONETABA;ARCHITECTURE a OF TONETABA ISBEGINSEARCH:PROCESS (INDEX)BEGINCASE INDEX ISWHEN “

13、0000“ = TONE TONE TONE TONE TONE TONE TONE TONE TONE TONE TONE TONE TONE NULL;END CASE;END PROCESS;END a;创建符号:(如图 4)4、SPEAKERA 模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY SPEAKERA ISPORT(CLK : IN STD_LOGIC; TONE : IN STD_LOGIC_vector(10 downto 0);SPKS : OUT STD

14、_LOGIC);END SPEAKERA;ARCHITECTURE a OF SPEAKERA ISSIGNAL PRECLK : STD_LOGIC;SIGNAL FULLSPKS : STD_LOGIC;BEGINDIVIDECLK:PROCESS (CLK)VARIABLE COUNT4 : STD_LOGIC_vector(3 downto 0);BEGINPRECLK 11 THENPRECLK = 1;COUNT4:=“0000“;ELSIF CLKEVENT AND CLK=1 THENCOUNT4:=COUNT4+1;END IF;END PROCESS ;GENSPKS:图 4

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。