vhdl实验报--蜂鸣器

VHDL实验报告 一、实验目的掌握蜂鸣器的使用;通过复杂实验,进一步加深对VHDL语言的掌握程度。二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器

VHDL 实验报告 一、实验目的 1、 掌握蜂鸣器的使用; 2、 VHDL 通过复杂实验,进一步加深对语言的掌握程度。 二、实验原理 乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率, 就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器 能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐 曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 122(11)1 乐曲的平均率规定:每个八度音如简谱中的中音与高音之间的频率相差倍。 212A(6)440Hz 在个八度音之间,又可分为个半音。另外,音符简谱中的低音的频率为, BCEFl 音符到之间、到之间为半音,其余为全音。由此可以计算出简谱中从低音至高音 12.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 高音 1391.1 5 低音 392 5 中音 784 5 高音 1568 6 低音 440 6 中音 880 6 高音 1760 7 低音 493.9 7 中音 987.8 7 高音 1975.5 2.1 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现,由于各音符对应的频率多为非整数,而分频 系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则 由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频 数将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时 钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此,要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数,本例所演奏的乐曲的最短的音符为 1s0.25 四分音符,如果将全音符的持续时间设为的话,那么一拍所应该持续的时间为秒, 4HZ 则只需要提供一个的时钟频率即可产生四分音符的时长。 40MHZ 本例设计的音乐电子琴选取的系统时钟频率。在数控分频器模块,首先对时钟 401MHZ 频率进行分频,得到的输入频率,然后再次分频得到各音符的频率。由于数控分 频器输出的波形是脉宽极窄的脉冲波,为了更好的驱动蜂鸣器发声,在到达蜂鸣器之前需要 均衡占空比,从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频,

腾讯文库vhdl实验报--蜂鸣器