音乐播放器程序源代码及注释.docx

上传人:b****2 文档编号:1962958 上传时间:2022-10-25 格式:DOCX 页数:10 大小:16.98KB
下载 相关 举报
音乐播放器程序源代码及注释.docx_第1页
第1页 / 共10页
音乐播放器程序源代码及注释.docx_第2页
第2页 / 共10页
音乐播放器程序源代码及注释.docx_第3页
第3页 / 共10页
音乐播放器程序源代码及注释.docx_第4页
第4页 / 共10页
音乐播放器程序源代码及注释.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

音乐播放器程序源代码及注释.docx

《音乐播放器程序源代码及注释.docx》由会员分享,可在线阅读,更多相关《音乐播放器程序源代码及注释.docx(10页珍藏版)》请在冰豆网上搜索。

音乐播放器程序源代码及注释.docx

音乐播放器程序源代码及注释

音乐播放器程序源代码及注释:

*include

*defineucharunsignedchar

*defineuintunsignedint

sbitduan=P2^6;

sbitkey1=P3^2;//按key1可切换把戏

sbitkey2=P3^3;//按key2可切换歌曲

sbitfm=P2^4;//蜂鸣器连续的IO口

sbitP30=P3^0;//矩阵键盘的一列

ucharcodehuayang1[]={0*7f,0*bf,0*df,0*ef,0*f7,0*fb,0*fd,0*fe,

0*fd,0*fb,0*f7,0*ef,0*df,0*bf};//把戏1

ucharcodehuayang2[]={0*7f,0*fe,0*bf,0*fd,0*df,0*fb,0*ef,0*f7,

0*ef,0*fb,0*df,0*fd,0*bf,0*fe};//把戏2

ucharcodehuayang3[]={0*7f,0*3f,0*1f,0*0f,0*07,0*03,0*01,0*0,

0*80,0*c0,0*e0,0*f0,0*f8,0*fc,0*fe,0*ff};

charcodehuayang4[]={0*55,0*aa,0*cc,0*33,0*99,0*66,0*0f,0*f0};

ucharcount1;//把戏标志

ucharcount2;//歌曲标志

uchartimeh,timel,i;

//编程规则:

字节高位是简谱,低位是持续时间,

//代表多少个十六分音符

//1-7代表中央C调,8-E代表高八度,0代表停顿

//最后的0是完毕标志

ucharcodeqnzl[]={//千年之恋

0*12,0*22,0*34,0*84,0*74,0*54,0*38,0*42,0*32,0*22,0*42,0*34,0*84,0*72,0*82,0*94,0*A8,0*08,

//前奏

0*32,0*31,0*21,0*32,0*52,0*32,0*31,0*21,0*32,0*62,

//竹林的灯火到过的沙漠

0*32,0*31,0*21,0*32,0*82,0*71,0*81,0*71,0*51,0*32,0*22,

//七色的国度不断飘逸风中

0*32,0*31,0*21,0*32,0*52,0*32,0*31,0*21,0*32,0*62,

//有一种神秘灰色的旋涡

0*32,0*31,0*21,0*32,0*83,0*82,0*71,0*72,0*02,

//将我卷入了迷雾中

0*63,0*A1,0*A2,0*62,0*92,0*82,0*52,

//看不清的双手

0*31,0*51,0*63,0*51,0*63,0*51,0*63,0*51,0*62,0*82,0*7C,0*02,

//一朵花传来谁经过的温柔

0*61,0*71,0*82,0*71,0*62,0*A2,0*71,0*76,

//穿越千年的伤痛

0*61,0*71,0*82,0*71,0*62,0*52,0*31,0*36,

//只为求一个结果

0*61,0*71,0*82,0*71,0*62,0*A3,0*73,0*62,0*53,

//你留下的轮廓指引我

0*42,0*63,0*83,0*83,0*91,0*91,

//黑夜中不寂寞

0*61,0*71,0*82,0*71,0*62,0*0A2,0*71,0*76,

//穿越千年的哀愁

0*61,0*71,0*82,0*71,0*62,0*52,0*31,0*36,

//是你在尽头等我

0*61,0*71,0*82,0*71,0*62,0*A3,0*73,0*62,0*53,

//最美丽的感动会值得

0*42,0*82,0*88,0*02,0*74,0*93,0*89,0*ff//完毕标志

//用一生守候

};

ucharcodejmszl[]={//寂寞沙洲冷

0*12,0*12,0*22,0*32,0*31,0*22,0*21,0*22,

//自你走后心憔悴

0*21,0*31,0*51,0*52,0*31,0*52,0*61,0*15,0*14,

//白色油桐风中纷飞

0*51,0*52,0*31,0*52,0*62,0*13,0*11,0*13,0*32,0*28,0*08,0*28,

//落花似人有情这个季节

0*31,0*32,0*31,0*32,0*11,0*21,0*51,0*52,0*51,0*52,

//河畔的风放肆拼命地吹

0*51,0*51,0*31,0*32,0*31,0*32,0*81,0*72,0*63,

//不断拨弄离人的眼泪

0*62,0*71,0*81,0*72,0*61,0*61,0*52,0*31,0*21,0*32,0*51,0*54,

//那样浓烈的爱再也无法给

0*22,0*12,0*11,0*12,0*11,0*12,0*12,0*14,0*26,0*32,0*26,

//伤感一夜一夜

0*32,0*61,0*51,0*51,0*31,0*31,0*21,0*31,0*51,0*61,0*51,0*31,0*51,

//当记忆的线缠绕过往支离破碎

0*02,0*32,0*81,0*81,0*81,0*81,0*62,0*52,0*34,

//是慌乱占据了心扉

0*31,0*81,0*81,0*81,0*61,0*91,0*82,

//有花儿伴着蝴蝶

0*51,0*51,0*51,0*51,0*31,0*61,0*53,

//孤雁可以双飞

0*21,0*11,0*21,0*11,0*22,0*11,0*21,0*26,

//夜深人静独徘徊

0*32,0*61,0*51,0*51,0*31,0*31,0*21,0*31,0*51,0*61,0*51,0*31,0*51,0*52,

//当幸福恋人寄来红色分享喜悦

0*31,0*31,0*81,0*81,0*81,0*61,0*91,0*81,0*61,0*31,0*56,

//闭上双眼难过头也不敢回

0*32,0*32,0*81,0*81,0*81,0*81,0*91,0*81,0*61,0*81,0*61,0*51,0*31,0*51,0*34,

//仍然捡尽寒枝不肯安歇微带着懊悔

0*21,0*31,0*51,0*31,0*21,0*11,0*61,0*21,0*16,

//寂寞沙洲我该思念谁

0*ff};

ucharcodecuzhi[]={

0*ff,0*ff,//占位

0*FC,0*8E,//中央C调1-7

0*FC,0*ED,

0*FD,0*43,

0*FD,0*6A,

0*FD,0*B3,

0*FD,0*F3,

0*FE,0*2D,

0*FE,0*47,//高八度1-7

0*FE,0*76,

0*FE,0*A1,

0*FE,0*C7,

0*FE,0*D9,

0*FE,0*F9,

0*FF,0*16

};

ucharyinyue[]={0*ff,0*fe,0*fd,0*fb,0*f7,0*ef,0*df,0*bf,0*7f,0*0,0*0};

//将音调转化为对应的LED样式

voiddelay1(uintz);//延时1MS

voiddelay(uintz);//延时165MS,即十六分音符

voidsong();

voidbeep();//蜂鸣器叫一声

main()

{uchar*;

count1=0;//流水灯无把戏

count2=1;//唱第一首歌

P30=0;//选取矩阵键盘的一列

EA=1;//开总中断

E*0=1;//开外部中断0

IT0=1;//外部中断0下降沿触发方式

E*1=1;//开外部中断1

IT1=1;//外部中断1下降沿触发方式

TMOD=0*01;//定时器0工作在方式1

TH0=0;

TL0=0;

ET0=1;

while

(1)

{

if(count1!

=0)

{

switch(count1)

{

case1:

for(*=0;*<14;*++)

{

duan=1;

P1=huayang1[*];

beep();

delay1(300);

duan=0;

if(count1!

=1)

break;

}

break;

case2:

for(*=0;*<14;*++)

{

duan=1;

P1=huayang2[*];

beep();

delay1(300);

duan=0;

if(count1!

=2)

break;

}

break;

case3:

for(*=0;*<16;*++)

{

duan=1;

P1=huayang3[*];

beep();

delay1(300);

duan=0;

if(count1!

=3)

break;

}

break;

case4:

for(*=0;*<8;*++)

{

duan=1;

P1=huayang4[*];

beep();

delay1(300);

duan=0;

if(count1!

=4)

break;

}

break;

}

}

else

{

song();

delay1(1000);

}

}

}

voidint0()interrupt0

{

EA=0;//关总中断

delay1

(1);//去抖

if(key1==0)

{

count2=0;//不让蜂鸣器唱歌

TR0=0;

count1++;

if(count1==5)

count1=1;

}

EA=1;//开总中断

}

voidint1()interrupt2

{

EA=0;//关总中断

delay1

(1);//去抖

if(key2==0)

{

count1=0;//流水灯无把戏

TR0=1;

i=0;//从头开场唱

count2++;

if(count2==3)

count2=1;

}

EA=1;//开总中断

}

voidtimer0()interrupt1//用于产生各种音调

{

TH0=timeh;

TL0=timel;

fm=~fm;

}

voidsong()

{

uinttemp;

ucharjp;//jp是简谱

i=0;

while

(1)

{if(count2==0)

{

break;

}

if(count2==1)//选曲

temp=qn

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1