第25课,乐谱方式输入的音乐播放

第25课,乐谱方式输入的音乐播放

ID:3905516

大小:51.28 KB

页数:6页

时间:2017-11-25

第25课,乐谱方式输入的音乐播放_第1页
第25课,乐谱方式输入的音乐播放_第2页
第25课,乐谱方式输入的音乐播放_第3页
第25课,乐谱方式输入的音乐播放_第4页
第25课,乐谱方式输入的音乐播放_第5页
资源描述:

《第25课,乐谱方式输入的音乐播放》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第25课,乐谱方式输入的音乐播放,仙剑奇侠传这一课开始,我们就要听到美妙的音乐了,这一课,我们可以听到演奏仙剑奇侠传的乐谱。这一课的程序,增加了2个比较复杂的函数,一个乐谱解释函数,一个音乐播放函数。我们音乐仙剑奇侠传的乐谱以一个我们自己定义的乐谱形式写好,作为一个预定义的字符串。再通过乐谱解释函数解释为“音符频率的序号”和“音符播放的时间”两个数组,在音乐播放函数中,就将音符频率的序号数组对应的频率送入定时器预置数中,再延时对应音符播放的时间。这样音乐就播放出来了。仙剑奇侠传的乐谱:"

2、3_3_3_2_3-

3、2_3_2_2_,6,6_,7_

4、

5、12_1_,7,6_,5_

6、,6---

7、""3_3_3_2_3.6_

8、5_6_5_5_22_3_

9、45_4_32_1_

10、3.--3_

11、""67_6_55_3_

12、5--3_5_

13、26_5_32_3_

14、3---

15、""26_6_6-

16、16_6_66_7_

17、`17_6_76_7_

18、3.--3_

19、""67_6_55_3_

20、5--3_5_

21、67_6_76_7_

22、3---

23、""26_6_6-

24、16_6_66_7_

25、`17_6_7.5_

26、6---

27、"乐谱书写规则:1234567为7个基本音阶前面加逗号','表示这是低音前面加上点号'`'表示这是高音后面加'#'

28、,表示这个音符升半个音阶后面加'.',表示这个音符要再加长自身一半的延时后面加一个或多个'-',每个表示延时一拍后面加一个或多个'_',表示这个音符要缩短自身一半的时长,最多支持2个'_'。这些规则对一般的乐谱都可以应付得来了。下面看程序:――――――――――――――――――――――――#defineucharunsignedchar//定义一下方便使用#defineuintunsignedint#defineulongunsignedlong#include//包括一个52标准内核的头文件charcodedx516[3]_a

29、t_0x003b;//这是为了仿真设置的sbitBEEP=P1^7;//喇叭输出脚sbitK1=P3^2;sbitK2=P3^5;sbitK3=P2^4;sbitK4=P2^5;ucharth0_f;//在中断中装载的T0的值高8位uchartl0_f;//在中断中装载的T0的值低8位//T0的值,及输出频率对照表ucharcodefreq[36*2]={0xA9,0xEF,//00220HZ,1//00x93,0xF0,//00233HZ,1#0x73,0xF1,//00247HZ,20x49,0xF2,//00262HZ,2#0x07,0x

30、F3,//00277HZ,30xC8,0xF3,//00294HZ,40x73,0xF4,//00311HZ,4#0x1E,0xF5,//00330HZ,50xB6,0xF5,//00349HZ,5#0x4C,0xF6,//00370HZ,60xD7,0xF6,//00392HZ,6#0x5A,0xF7,//00415HZ,70xD8,0xF7,//00440HZ1//120x4D,0xF8,//00466HZ1#//130xBD,0xF8,//00494HZ2//140x24,0xF9,//00523HZ2#//150x87,0xF9,//0

31、0554HZ3//160xE4,0xF9,//00587HZ4//170x3D,0xFA,//00622HZ4#//180x90,0xFA,//00659HZ5//190xDE,0xFA,//00698HZ5#//200x29,0xFB,//00740HZ6//210x6F,0xFB,//00784HZ6#//220xB1,0xFB,//00831HZ7//230xEF,0xFB,//00880HZ`10x2A,0xFC,//00932HZ`1#0x62,0xFC,//00988HZ`20x95,0xFC,//01046HZ`2#0xC7,0x

32、FC,//01109HZ`30xF6,0xFC,//01175HZ`40x22,0xFD,//01244HZ`4#0x4B,0xFD,//01318HZ`50x73,0xFD,//01397HZ`5#0x98,0xFD,//01480HZ`60xBB,0xFD,//01568HZ`6#0xDC,0xFD,//01661HZ`7//35};//定时中断0,用于产生唱歌频率timer0()interrupt1{TL0=tl0_f;TH0=th0_f;//调入预定时值BEEP=~BEEP;//取反音乐输出IO}//******************

33、************//音乐符号串解释函数//入口:要解释的音乐符号串,输出的音调串,输出的时长串changedata(uchar*song,uc

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

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

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