fpga课设——蜂鸣器音乐演奏.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fpga课设——蜂鸣器音乐演奏.doc

FPGA实 验 报 告 实验名称: 蜂鸣器音乐演奏 实验日期: 姓 名: 学 号: 一、实验目的 1.熟悉QuartusII 软件的使用。 2.熟悉EDA实验开发系统的基本使用。 3.学习VHDL基本单元电路的设计应用。进一步掌握EDA的多层次设计方法。 4.学习音乐发生器的设计。除了报警,蜂鸣器还可以用来奏乐。让它发出悦耳动听的声音,加深理解蜂鸣器的控制电路原理。 二.设计要求 1.自动循环播放歌曲《义勇军进行曲》。 2.由数码管分别显示高、中、低音的音符。 三.实验原理 1、乐曲硬件电路产生音乐是和音乐频率和音乐的持续时间有关;音符的持续时间需根据乐曲的速度和每个音符的节拍数来确定。其简谱中音符和频率的关系如下: 2、该演奏电路演奏的乐曲是《友义勇军进行曲》,其最小的节拍为1拍,将1拍的时长定位0.2S,则只需要再提供一个5hz的时钟频率即可产生1拍的时长,演奏的时间控制通过ROM查表的方式来完成。对于占用时间较长的节拍,(一定是节拍的整数倍),如全音符为4拍,2/4音符为2拍,1/4音符为1拍。 3、乐曲硬件演奏电路系统主要有音调分频器和乐曲存储模块两个部分组成,其余还有音乐节拍发生器等等。音调分频器对1mhz(由基准频率产生)的频率进行分频,得到与各个音节对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中存放一个乐曲曲谱真值表(实验中用的ROM存储),由一个计数器来控制此真值表的输出,而由计数器的技术时钟信号作为乐曲节拍控制信号。 4、其中5hz和1mhz的频率由基准频率分频产生,分别作用给每个模块。 四、方案设计 设计分析: 实验中采用层次化设计思路,音乐发生器的设计包括四个模块:时钟分频模块fdiv、自动演奏模块autoplay、查表及显示模块table、音调分频模块fenpin。 分好层次之后,编写每个模块的程序。 时钟分频模块fdiv通过基准时钟频率clk(50mhz)产生两个时钟信号clk1(1mhz),clk2(5hz)。 自动演奏模块autoplay接收clk1的时钟信号,输出index_auto。 查表及显示模块table利用index_auto查找并输出分频系数tone。同时将音调对应的给三个数码管,分别显示高中低音符。 音调分频模块fenpin接收tabled输出的分频系数 tone,并据此分频,将对应频率的信号buzz输出给扬声器供其发声。 b.流程图: 数码管显示 clk 输出buzz 五.实验过程 1. 时钟分频模块fdiv 通过基准时钟频率clk(50mhz)产生两个时钟信号clk1(1mhz),clk2(5hz)。 程序见附录1: 其仿真结果如下: 2.自动演奏autoplays模块 这个模块用FPGA的片内ROM存放乐曲的简谱真值表,由一个二进制计数器为乐曲数据存储ROM的地址发生器随着autoplay中计数器按clk2时钟频率做加法计数时,乐曲数据存储器ROM中的音符数据,将从ROM中的输出口输向音符查表模块table,所存储的乐曲就开始连续自然地演奏起来。 ROM的定制过程,利用MegawizardPlug-In Manager定制音符数据存储器music,其中music_rom的程序见附录二。 在定制ROM的过程中,由于需要存入296个音符数据,选择ROM的数据位宽为8,地址为64(共计512个字),ROM的类型选择为Auto。 根据义勇军进行曲的音乐简谱,以及简谱中的低、中、高和额节拍与发生频率的关系等等,化成个音符数字有296个,存入ROM中。 在数据文件编辑窗中,在mif格式表格中填入义勇军进行曲的296个音符数据,并以十进制填入,最后保存数据文件名为music.mif,存入原路径中。 其中1—7表示低音,8—14表示中音,15—21表示高音。 Autoplay的程序见目录三。 在源程序中index_auto是音乐节拍发生器输出地音符数据;clk2是计数时钟输入端,该信号作为音符的快慢信号,频率越高,时钟的输出节拍速度就越快,演奏的速度也越快。 该模块仿真结果如下: 3、查表及显示table模块 利用index_auto查找并输出分频系数tone。同时将音调对应的给三个数码管,分别显示高中低音符。其程序见目录四。 在源程序中,tone是音调分频模块提供音符频率的分频系数,此处有一个位选信号come和段选信号seg可以通过数码管来显示乐曲演奏时对应的高中低

文档评论(0)

gshbzl + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档