EA课程设计乐曲硬件演奏电路.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EA课程设计乐曲硬件演奏电路.doc

《电子技术基础III》项目设计报告 乐曲硬件演奏电路设计课程名称 任课教师 设计题目 班级 乐曲硬件演奏电路设计 姓名学号 成绩 日期 一、题目分析 设计要求 利用FPGA,设计一硬件乐曲硬件演奏电路,能够利用硬件电路,自动播放 音乐。 题目分析 乐曲是由一连串的音符组成,而每个音符的发音频率值及其持续时间是乐曲 能连续演奏所需的两个基木因素。所以,设计音乐发生电路,需要得到相应音符 的频率值,及其持续吋间。如果能够得到这两个基本元素,利用程序来控制FPGA 某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声咅。所以, 获取这两个要素是本实验的关键。 频率值 频率的高低决定了音调的高低。由于乐曲都是由一连串的音符组成,因此按 照乐曲的乐谱,依次输出这些咅符相对应的频率,就可以在蜂鸣器上连续地发出 各个音符的音调。简谱的音名与频率的关系如下表: 表1简谱屮的音名与频率的关系 音名 频率/Hz 音名 频率/Hz 音名 频率/Hz 低音1 261.6 屮音1 523. 3 高音1 1045. 5 低音2 293. 7 巾音2 587.3 高音2 1174.7 低音3 329.6 中音3 659.3 高音3 1318.5 低音4 349.2 中音4 698. 5 尚背4 1396. 9 低音5 392 中音5 784 髙音5 1568 低音6 440 中音6 880 高音6 1760 低音7 493.9 中音7 987.8 高音7 1975.5 时长 这次设计中所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续吋 间设为Is的话,那么一拍所应该持续的时间为0.25秒,则只需要再提供一个4Hz 的时钟频率即可产生四分音符的时长。系统工作时就按4Hz的频率依次读取简 谱,当系统读到某个咅符的简谱吋就对应发这个音符的咅调,持续吋间为0.25 秒,如果在曲谱文件屮某个音符为三拍音长,只要将该音符连续书写三遍,系统 读乐曲文件的时候就会连续读到三次,也就会发三个0.25秒的音长,这吋我们 听上去就会持续了三拍的时间,这样就可以控制音乐的音长了。 、设计方案 顶层实体描述 音乐播放器,是能够演奏一曲完整的乐曲,在外部时钟的作用下,产生相应 频率的方波信号,即在乐曲中对应相应的音符。并且信号要持续一定的时间,即 对应乐曲中的节拍。得到了音调和节拍后,就可以组成相应的乐曲了。 模块划分 采用“自顶向下”的设计方法,将音乐播放器模块主耍划分为地址发生模块、 数控分频模块、music模块和预置数模块。 地址发生模块:增地址计数器,用于产生地址数。 music模块:用于存储乐曲,本次设计,将《梁祝》的一段乐曲存储在rom 中; 预置数模块:给分频器提供预置数,需要计算分频预置数: 数控分频模块:为了提供乐曲发音所需要的发音频率,编写数控分频器程序, 对一输入高频信号,进行分频,生成每个音符发音的相应频率; r a A 地址发 Music 分频预 数控分 扬声器 生器 模块 置数 频器 ) L ) 图1模块划分图 模块描述 地址发生器 e CNT138 ? :y elk address [7..0] ? :y reset enable I inst 图2 CNT138实体 地址发生器,即是一个计数器,由于存储了《梁祝》138个音符,所以此计 数器的最大值为138。 Music 模块 Music模块存放乐曲的音符数据。由地址发生器为music模块提供地址,每 来一个时钟脉冲信号,8位二进制计数器就计数一次,ROM文件中的地址就随 着递增,音符数据ROM中的音符也就一个接着一个连续的取出了。 自 rom ; address[7D] q[3..O] —* clock inst 图3 rom实体 此计数器时钟频率为4Hz,每读一个数据,音符持续时间为0.25秒,恰为 当全音符为ls,四四拍的四分音符持续的时间。若需持续较长的时间,需要在 ROM中连续写入相应的音符。例如音符数据中的中音3为一拍,持续时间1秒, 所以,咅符数据ROM中需要连续写入四次咅符3,随着4Hz吋钟速率读取地址 递增,音符数据ROM屮的音符数据输出给分频预置数模块。将从音符数据ROM 中取出的值,通过q[3..0]端口输向分频预置数模块。这样乐曲中的音符就可以连 续的取出了。 (2)分频预置数模块 分频预置数模块是乐曲简谱码对应的分频预置数查表电路,提供了《梁祝》 乐曲全部音符对应的分频预置数,即给数控分频器提供计数初值。 F code INX[3..O] CODE[3..01 TONE[10..0] inst 图4 F_codc实体 《梁祝》乐曲全部音符对应的分频预置数,共13个,此数在TN输入口停 留时间即为此音符的节拍值。这13个值的输出由对应于F_code的4位输入值

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档