vhdl实验报告蜂鸣器

vhdl实验报告蜂鸣器

ID:16513362

大小:80.50 KB

页数:8页

时间:2018-08-13

vhdl实验报告蜂鸣器_第1页
vhdl实验报告蜂鸣器_第2页
vhdl实验报告蜂鸣器_第3页
vhdl实验报告蜂鸣器_第4页
vhdl实验报告蜂鸣器_第5页
资源描述:

《vhdl实验报告蜂鸣器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VHDL实验报告一、实验目的1、掌握蜂鸣器的使用;2、通过复杂实验,进一步加深对VHDL语言的掌握程度。二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2

2、个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音l至高音1之间每个音符的频率,如表2.1所示。音名频率/Hz音名频率/Hz音名频率/Hz低音1261.6中音1523.3高音11045.5低音2293.7中音2587.3高音21174.7低音3329.6中音3659.3高音31318.5低音4349.2中音4698.5高音41391.1低音5392中音5784高音51568低音6440中音6880高

3、音61760低音7493.9中音7987.8高音71975.5表2.1简谱音名与频率的对应关系产生各音符所需的频率可用一分频器实现,由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。音符的持续时间须根

4、据乐曲的速度及每个音符的节拍数来确定。因此,要控制音符的音长,就必须知道乐曲的速度和每个音符所对应的节拍数,本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s的话,那么一拍所应该持续的时间为0.25秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。本例设计的音乐电子琴选取12MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行16分频,得到0.75MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器输出的波形是脉宽极窄的脉冲波,为了更好的驱动蜂鸣器发声,在到

5、达蜂鸣器之前需要均衡占空比,从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频,频率变为原来的二分之一即0.375MHZ。因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为523.3Hz,它的分频系数应该为:至于其他音符,同样可由上式求出对应的分频系数,这样利用程序可以很轻松地得到相应的乐声。音名频率/Hz分频系数音名频率/Hz分频系数低音1261.61433高音11045.5358低音2293.71277高音21174.7319低音3329.61138高音313

6、18.5284低音4349.21074高音41391.1268低音5392960高音51568239低音6440853高音61760213低音7493.9759高音71975.5190中音1523.3716中音2587.3638表2.2各音名对应的分频系数至于音长的控制,在自动演奏模块,每个乐曲的音符是按地址存放的,播放乐曲时按4HZ的时钟频率依次读取简谱,每个音符持续时间为0.25秒。如果乐谱中某个音符为三拍音长,那又该如何控制呢?其实只要在3个连续地址存放该音符,这时就会发三个0.25秒的音长,即持

7、续了三拍的时间,通过这样一个简单的操作就可以控制音长了。三、实验步骤1、设置端口1)输入端口CLK:12MHZ系统时钟输入端口。2)输出端口device:乐曲的声音输出端口,输出的是对应各音符频率的方波信号。2、设置模块1)自动演奏模块自动演奏模块可以自动播放电子琴内置乐曲,按节拍读取内置乐谱。将键盘输入的音符信号输出。因此,本模块是向Tone模块提供音符信息。首先,对12MHz系统时钟进行3M的分频,得到4Hz的信号,这样一秒中就可以按照四拍进行。然后依照此频率进行地址累计。2)音频发生器模块根据自动

8、演奏模块的信号输出,不同的信号被翻译为不同的频率。3)蜂鸣器驱动模块根据音频发生器发出音频的不同,蜂鸣器得到的驱动也不同。首先,对系统时钟进行16分频,再对0.75mhz的脉冲再次分频,得到所需要的音符频率,然后再进行2分频。四、实验代码libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。