您现在的位置是:首页 > 音乐 >

音乐

硬件电子琴---《梁祝》乐曲演奏的实现

AadsD2024-05-15 23:08:03音乐767
帕格尼尼变奏曲-云上的诱惑片尾曲2022年4月16日发(作者:梁博 黄勇)硬件电子琴---《梁祝》乐曲演奏的实现一、实验目的1.了解蜂鸣器发声原理和硬件实现乐曲演奏的原理;2.了解数控分频器的工作原理;.进一步熟习VerilogHDL的设计方法。二、实验原理根据蜂鸣器输入信号频率的不同决定了其发声不同的原理阳光传奇,来设计一个由数控分频器控制蜂鸣器发声的简单实验夜车伴奏。数控分频器的预置数由乐曲

帕格尼尼变奏曲-云上的诱惑片尾曲

硬件电子琴---《梁祝》乐曲演奏的实现
2022年4月16日发
(作者:梁博 黄勇)

硬件电子琴---《梁祝》乐曲演奏的实现

一、实验目的

1.了解蜂鸣器发声原理和硬件实现乐曲演奏的原理;

2.了解数控分频器的工作原理;

.进一步熟习VerilogHDL的设计方法。

二、实验原理

根据蜂鸣器输入信号频率的不同决定了其发声不同的原理阳光传奇,来设

计一个由数控分频器控制蜂鸣器发声的简单实验夜车伴奏。数控分频器的预置

数由乐曲的音调的值来决定,从而间接的控制蜂鸣器的发声频率bounty。

我们知道迟来的爱广场舞,组成乐曲的每个音符的发音频率值及其持续的时间是

乐曲能连续演奏所需的2个基本要素,首先让我们来了解音符与频率

的关系歌曲在心里从此永远有个你。

乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高

音1)之间的频率相差1倍。在2个八度音之间徐良的演唱会,又可分为12个半

音blue rose,音符A(简谱中的低音6)的频率为440Hz爱的魔力转圈圈什么歌,音符B到C之间西藏往事,

E到F之间为半音newyorktimes,其余为全音泡沫。由此可以计算出简谱中从低音1

至高音1之间每个音符的频率。

产生各音符所需的频率可用一分频器实现家乐园在线,由于各音符对应的频

率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频

数四舍五入取整千语千寻。若分频器时钟频率过低广场舞一晃就老了,则由于分频系数过小mv,四

舍五入取整后的误差较大;若时钟频率过高,虽然误差较小lmissyou,但会增

加分频器的分频级数。实际的设计应综合考虑两方面的因素美轮明宏,在尽量

减小频率误差的前提下取合适的时钟频率假行僧歌词。这里设计的乐曲发生器选

取5MHz的基准频率何禹萱梵音大悲咒。即使基准频率有所改变咱们结婚吧16集,实际上,只要各个

音符间的相对频率关系不变回望 阿兰,演奏出的乐曲听起来都不会“走调”魔女狩猎。

化蝶简谱中各音符对应得分频系数如下表所示。

音符分频

系数

音符分频

系数

低音7584中音

低音5678中音792

低音中音5189

低音中音

中音高音1291

为了减小输出的偶次谐波分量,最后输出到扬声器的波形应为对

称方波,因此在到达扬声器之前,有一个二分频的分频器曾佩瑜。所以表中

的分频系数是从5MHz频率二分频得到的2.5MHz频率基础上计算

得出的空荡荡。由于最大的分频系数为7584我们真的不会彼此拥抱转身再离开是什么歌,故采用1位二进制计数器已

能满足分频要求飘零电影院。

每个音符持续的时间是乐曲能连续演奏所需的另一个基本要素。

化蝶的最小的节拍为1/4拍,将1拍的时间长度定为1s,则只需要再

提供一个4Hz的时钟频率即可产生1/4拍的时长汤晶锦。演奏的时间控制通

过记录来完成,对于占用时间较长的节拍(一定是1/4拍的整数倍朴艺真,

如2/4拍),只需将该音符连续记录2次即可。

音符的频率由pulse模块输出至SPK发声私密师电影在线观看中字,这是一个数控分频

器,由其clk5mhz端输入5MHz脉冲信号,分频比由预置输入端

d[12非常好听的轻音乐..0]决定二胡家教。输入为对称脉冲方波信号美国摇滚乐队,其频率为

/(1+D[12..0])米脂的婆姨绥德的汉,单位为Hzessence of beauty。

音符的持续时间需根据乐曲的速度及每个音符的节拍数来确定阳光彩虹小白马,

tonetable模块首先是为pulse模块提供决定所发音符的分频预置数amusing,

而此数停留的时间即为此音符的节拍值龙梅子所有歌曲。在tonetable模块中设置了

一个8位二进制计数器(计数最大值为15,即相当于有15个四分

音符),这个计数器的计数频率选为4Hz李健在水一方,所以每一计数值的停留时

间为0不想长大 歌词.25s,即四四拍的4分音符持续时间灵歌。例如,化蝶乐曲的第一

个音符为“低音”(1拍)whataya want from me歌词,停留的时间需用4个计数时钟节拍,即

1s小小新娘花。相应地波动少女2下载地址,所对应的“低音”音符分频预置值为758无价之吻,其值在

tonetable模块输出端停留了1s钱作怪国语高清。随着tonetable模块中的计数器按

4Hz的时钟速率递增并依次输出分频预置数简单爱 周杰伦,化蝶乐曲就开始连续自

然地演奏起来了kksese。

三、实验内容

对50MHz进行分频total recall,得到所需频率讨人厌的字,加入到电路中泡泡。对输入和

输出引脚进行配置唐唐照片。芯片配置成功后即可进行硬件测试好运来歌曲视频,发音输出接

beep思思念念都是你,当乐曲一遍演奏完成后,乐曲发生器能自动从头开始循环演奏。

考虑增加按键控制乐曲的演奏和暂停功能国外舞曲。

四、实验代码

1、音符表notetable模块的设计:

modulenotetable(clk4hz透鲜滴星期天,predata);

inputclk4hz;

output[12:0]predata;

reg[12:0]predata;

reg[7:0]counter;

always@(posedgeclk4hz)

parameterlow_=1'd758;

parameterlow_5=1'd677;

parameterlow_6=1'd5681;

parameterlow_7=1'd5062;

parametermid_1=1'd4777;

parametermid_2=1'd4256;

parametermid_=1'd791;

parametermid_5=1'd188;

parametermid_6=1'd2840;

parameterhigh_1=1'd291;

parameterstop=1'd0;

if(counter>=15)counter=8'b0;

elsecounter=counter+1'b1;

always@(counter)

case(counter)

8'd0:predata=low_;8'd1:predata=low_;

8'd2:predata=low_;8'd:predata=low_;

8'd4:predata=low_5;8'd5:predata=low_5;

8'd6:predata=low_5;8'd7:predata=low_6;

8'd8:predata=mid_1;8'd9:predata=mid_1;

8'd10:predata=mid_1;8'd11:predata=mid_2;

8'd12:predata=low_6;8'd1:predata=mid_1;

8'd14:predata=low_5;8'd15:predata=low_5;

//-----------------------------------------------------------------

8'd16:predata=mid_5;8'd17:predata=mid_5;

8'd18:predata=mid_5;8'd19:predata=high_1;

8'd20:predata=mid_6;8'd21:predata=mid_5;

8'd22:predata=mid_;8'd2:predata=mid_5;

8'd24:predata=mid_2;8'd25:predata=mid_2;

8'd26:predata=mid_2;8'd27:predata=mid_2;

8'd28:predata=mid_2;8'd29:

8'd0:

predata=mid_2;

predata=mid_2;predata=mid_2;8'd1:

//-----------------------------------------------------------------

8'd2:predata=mid_2;8'd:predata=mid_2;

8'd4:predata=mid_2;8'd5:predata=mid_;

8'd6:predata=low_7;8'd7:predata=low_7;

8'd8:predata=low_6;8'd9:predata=low_6;

8'd40:predata=low_5;8'd41:predata=low_5;

8'd42:predata=low_5;8'd4:predata=low_6;

8'd44:predata=mid_1;8'd45:predata=mid_1;

8'd46:predata=mid_2;8'd47:predata=mid_2;

//-------------------------------------------------------------------

8'd48:predata=mid_;8'd49:predata=mid_;

8'd50:predata=mid_1;8'd51:predata=mid_1;

8'd52:predata=mid_6;8'd5:predata=mid_5;

8'd54:predata=mid_6;8'd55:predata=mid_1;

8'd56:predata=low_5;8'd57:predata=low_5;

8'd58:predata=low_5;8'd59:predata=low_5;

//-----------------------------------------------------------------

8'd60:predata=mid_;8'd61:predata=mid_;

8'd62:predata=mid_;8'd6:predata=mid_5;

8'd64:predata=low_7;8'd65:predata=low_7;

8'd66:predata=low_7;8'd67:predata=mid_2;

8'd68:predata=low_6;8'd69:predata=mid_1;

8'd70:

8'd72:

8'd74:

predata=low_5;8'd71:predata=low_5;

predata=low_5;8'd7:predata=low_5;

predata=low_5;8'd75:predata=low_5;

//----------------------------------------------------------------

8'd76:predata=low_;8'd77:predata=low_5;

8'd78:predata=low_;8'd79:predata=low_;

8'd80:predata=low_5;8'd81:predata=low_6;

8'd82:predata=low_7;8'd8:predata=mid_2;

8'd84:predata=low_6;8'd85:predata=low_6;

8'd86:predata=low_6;8'd87:predata=low_6;

8'd88:predata=low_6;8'd89:predata=low_6;

8'd90:predata=low_5;8'd91:predata=low_6;

//------------------------------------------------------------------

8'd92:predata=mid_1;8'd9:predata=mid_1;

8'd94:predata=mid_1;8'd95:predata=mid_2;

8'd96:predata=mid_5;8'd97:predata=mid_5;

8'd98:predata=mid_;8'd99:predata=mid_;

8'd100:

8'd102:

8'd104:

8'd106:

predata=mid_2;8'd101:

predata=mid_;8'd10:

predata=mid_1;8'd105:

predata=low_6;8'd107:

predata=mid_2;

predata=mid_2;

predata=mid_1;

predata=low_5;

//-------------------------------------------------------------------

8'd108:

8'd110:

8'd112:

8'd114:

8'd116:

8'd118:

8'd120:

8'd122:

8'd124:

8'd126:

8'd128:

8'd10:

8'd12:

8'd14:

predata=low_;8'd109:

predata=low_;8'd111:

predata=mid_1;8'd11:

predata=mid_1;8'd115:

predata=low_6;8'd117:

predata=low_6;8'd119:

predata=low_;8'd121:

predata=low_6;8'd12:

predata=low_5;8'd125:

predata=low_5;8'd127:

predata=low_5;8'd129:

predata=low_5;8'd11:

predata=stop;8'd1:

predata=stop;8'd15:

predata=low_;

predata=low_;

predata=mid_1;

predata=mid_1;

predata=mid_1;

predata=low_5;

predata=low_5;

predata=mid_1;

predata=low_5;

predata=low_5;

predata=low_5;

predata=low_5;

predata=stop;

predata=stop;

default:predata=8'b0;

endcase

endmodule

2、设置芯片和管脚:

#

#SetuppinsettingforEPC25_C16-V5mainboard

set_global_assignment-nameRESERVE_ALL_UUSED_PIS"AS

IPUTTRI-STATED"

set_global_assignment-nameEABLE_IIT_DOE_OUTPUT

OFF

set_location_assignmentPI_149-toclk

#beep

set_location_assignmentPI_177-tospk

、4Hz分频器

moduleclk4hz(clk,div_out);

inputclk;

outputregdiv_out;

reg[1:0]clk_div;

parameterCLK_FREQ='D;

parameterDCLK_FREQ='D8;

always@(posedgeclk)

begin

if(clk_div<(CLK_FREQ/DCLK_FREQ))clk_div<=clk_div+1;

else

begin

clk_div<=0;

div_out<=~div_out;

end

end

endmodule

4、5Mhz分频器

moduleclk5mhz(clkground zero,div_out);

inputclk;

outputregdiv_out;

reg[1:0]clk_div;

parameterCLK_FREQ='D;

parameterDCLK_FREQ='D;

always@(posedgeclk)

begin

if(clk_div<(CLK_FREQ/DCLK_FREQ))clk_div<=clk_div+1;

else

beginclk_div<=0;div_out<=~div_out;

end

end

endmodule

5、数控分频器

modulepulse(clk,d潮峰,spk);

inputclk;

input[12:0]d;

outputregspk;

reg[1:0]clk_div;

always@(posedgeclk)

begin

if(clk_div<(1+d))clk_div<=clk_div+1;

else

begin

clk_div<=0;

spk<=~spk;

end

end

endmodule

五、实验电路

六、实验小结

这次的实验是用蜂鸣器的发声原理实现《梁祝》乐曲的演奏,同

时也用了数控分频器的工作原理,当然,这次的实验是建立在原来几

次实验的基础上,建立分频器、输入输出信号,只要前几次的实验掌

握的好罗卿,这一次就不会有什么困难的糖醋活鱼。音符表模块的代码非常的长,

多亏了老师提前的输入代码。我觉得这一次的实验,还有好多进一步

的空间,可以在理解的基础上,改变音符表,就可以得到其他的音乐吴文俊逝世。

你知不知道我爱你就像飞蛾扑火-说不出再见

硬件电子琴---《梁祝》乐曲演奏的实现

留言与评论(共有 14 条评论)
本站网友 谁有成人网站
16分钟前 发表
由此可以计算出简谱中从低音1至高音1之间每个音符的频率
本站网友 an4u
12分钟前 发表
由于各音符对应的频率多为非整数
本站网友 星汇金沙
20分钟前 发表
predata=mid_2;8'd26
本站网友 但斌博客
19分钟前 发表
即使基准频率有所改变咱们结婚吧16集
本站网友 中意
14分钟前 发表
单位为Hzessence of beauty
本站网友 我要飞得更高
4分钟前 发表
predata=low_7;8'd67
本站网友 云上的
5分钟前 发表
化蝶乐曲就开始连续自然地演奏起来了kksese
本站网友 奢酷
0秒前 发表
predata=mid_2;8'd
本站网友 康乐二手房
20分钟前 发表
8'd114
本站网友 钓鱼执法
5分钟前 发表
虽然误差较小lmissyou
本站网友 97kan
26分钟前 发表
组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素
本站网友 袁岳
27分钟前 发表
predata=mid_6;8'd55
本站网友 豺狼社区
16分钟前 发表
音符A(简谱中的低音6)的频率为440Hz爱的魔力转圈圈什么歌