要做个MIDI 音乐播放器<br />现在有一个51单片机的程序,不知道哪位大哥能帮我改成能在ARM 利用LPC2124上用的程序~~~<br /><br />#include <REGX51.H><br />unsigned char code MUSIC_01[97]=<br />{<br /> 0x34,0x32,0x32,0x34,0x42,0x51,<br /> 0x62,0x52,0x42,0x32,0x34,0x04,<br /> 0x74,0x74,0x62,0x62,0x64,<br /> 0x3c,0x04,<br /> 0x64,0x62,0x52,0x42,0x32,0x34,<br /> 0x33,0x31,0x32,0x72,0x76,0x72,<br /> 0x83,0x81,0x82,0x82,0x82,0x74,0x72,<br /> 0x7c,0x04,<br /> 0x63,0x61,0x62,0x62,0x64,0x72,0x82,<br /> 0x72,0x74,0x72,0x62,0x52,0x42,0x32,<br /> 0x42,0x44,0x42,0x42,0x52,0x62,0x52,<br /> 0x5c,0x04,<br /> 0x64,0x62,0x62,0x64,0x72,0x82,<br /> 0x72,0x74,0x72,0x62,0x52,0x42,0x32,<br /> 0x42,0x46,0x53,0x41,0x42,0x32,<br /> 0x3c,0x04,<br /> 0x44,0x48,0x02,0x32,<br /> 0x3f,<br /> 0x44,0x48,0x02,0x32,<br /> 0x3f,<br /> 0x34,0x0c,<br /> 0xFF<br />};<br />unsigned char code MUSIC_02[46]=<br />{<br /> 0x12,0x52,0x52,0x52,0x56,0x42,<br /> 0x32,0x42,0x32,0x22,0x18,<br /> 0x82,0x82,0x82,0x82,0x86,0x72,<br /> 0xB2,0x72,0x72,0x62,0x58,<br /> 0x52,0x82,0x82,0x72,0x56,0x42,<br /> 0x32,0x42,0x32,0x22,0x16,0xB2,<br /> 0xB2,0x32,0x32,0x22,0x16,0x52,<br /> 0x42,0x32,0x22,0xC2,0x88,<br /> 0xFF<br />};<br />unsigned char code MUSIC_03[131]=<br />{<br /> 0x52,0x42,<br /> 0x58,0x02,0x42,0x52,0x42,<br /> 0x38,0x04,0x12,0x32,<br /> 0x44,0x42,0x52,0x42,0x32,0x12,0x12,<br /> 0xC8,0x04,0x52,0x42,<br /> 0x58,0x02,0x42,0x52,0x42,<br /> 0x38,0x04,0x12,0x32,<br /> 0x44,0x42,0x52,0x42,0x32,0x12,0x32,<br /> 0x48,0x04,0x52,0x42,<br /> 0x58,0x02,0x42,0x52,0x42,<br /> 0x38,0x04,0x12,0x32,<br /> 0x44,0x42,0x52,0x42,0x32,0x12,0x11,0x31,<br /> 0xC8,0x04,0x52,0x72,<br /> 0x78,0x02,0x72,0x82,0x72,<br /> 0x58,0x04,0x42,0x42,<br /> 0x44,0x42,0x52,0x42,0x32,0x12,0x12,<br /> 0x32,0x32,0x3C,<br /> 0x09,0x72,0x72,0x82,<br /> 0xA2,0x92,0x92,0x82,0x52,0x42,0x42,0x42,<br /> 0x58,0x02,0x52,0x52,0x72,<br /> 0x84,0x84,0x02,0x12,0x52,0x42,<br /> 0x48,0x04,0x52,0x72,<br /> 0x72,0x52,0x74,0x02,0xA4,0x92,<br /> 0x82,0x92,0x54,0x02,0x82,0x82,0x92,<br /> 0x82,0x72,0x52,0x42,0x02,0xC4,0x12,<br /> 0x3C,<br /> 0xFF<br />};<br />unsigned char code MUSIC_04[37]=<br />{<br /> 0xC4,0x12,0x32,0x44,0x42,0x52,<br /> 0x52,0x44,0x32,0x32,0x12,0x14,<br /> 0x12,0x12,0x32,0x42,0x54,0x44,<br /> 0x4F,<br /> 0xC4,0x12,0x32,0x44,0x42,0x72,<br /> 0x58,0x42,0x32,0x34,<br /> 0x14,0x12,0x32,0x34,0x32,0x12,<br /> 0x1F,<br /> 0xFF<br />};<br />unsigned char code MUSIC_05[144]=<br />{<br /> 0x52,0x62,<br /> 0x74,0x74,0x74,0x34,<br /> 0x42,0x34,0x52,0x56,0x42,<br /> 0x34,0x34,0x14,0x32,0x12,<br /> 0x12,0xC2,0xC4,0x04,0x52,0x62,<br /> 0x74,0x74,0x74,0x34,<br /> 0x42,0x34,0x52,0x56,0x42,<br /> 0x34,0x32,0x12,0x12,0x34,0x42,<br /> 0x4C,0x52,0x42,<br /> 0x34,0x32,0x42,0x32,0x12,0x12,0xC2,<br /> 0xC2,0x54,0x52,0x54,0x52,0x52,<br /> 0x42,0x32,0x32,0x12,0x32,0x42,0x32,0x52,<br /> 0x5C,0x52,0x42,<br /> 0x34,0x32,0x42,0x32,0x12,0x12,0xC2,<br /> 0xC2,0x54,0x52,0x54,0x02,0x52,<br /> 0x52,0x42,0x32,0x12,0x32,0x84,0x72,<br /> 0x7F,<br /> 0x0F,<br /> 0x74,0x72,0x52,0x54,0x74,<br /> 0x82,0x52,0x52,0x72,0x78,<br /> 0x34,0x32,0x32,0x42,0x54,0x72,<br /> 0x7F,<br /> 0x86,0x82,0x72,0x52,0x54,<br /> 0x72,0x84,0x32,0x36,0x52,<br /> 0x42,0x52,0x42,0x32,0x34,0x12,0x32,<br /> 0x32,0x42,0x4C,<br /> 0x86,0x82,0x72,0x52,0x54,<br /> 0x72,0x84,0x52,0x56,0x52,<br /> 0x42,0x52,0x72,0x82,0x52,0x34,0x12,<br /> 0x12,0x32,0x3C,<br /> 0xFF<br />}; <br />unsigned char code MUSIC_06[85]=<br />{<br /> 0x04,0x24,0x14,0xC4,<br /> 0x54,0x54,0x48,<br /> 0x04,0x54,0x44,0x34,<br /> 0x22,0x14,0xB2,0xC8,<br /> 0x04,0x12,0xC2,0x16,0x12,<br /> 0x76,0x52,0x46,0x12,<br /> 0x3F,<br /> 0x04,0xB4,0xD4,0xC4,<br /> 0x14,0x28,0xC4,<br /> 0x14,0x12,0x32,0x16,0xC2,<br /> 0x54,0x78,0x34,<br /> 0x4C,0x42,0x52,<br /> 0x86,0x72,0x76,0x52,<br /> 0x74,0x28,0x42,0x52,<br /> 0x46,0x12,0x26,0x12,<br /> 0xCF,<br /> 0x04,0x24,0x14,0xC4,<br /> 0x56,0x52,0x48,<br /> 0x04,0x54,0x44,0x34,<br /> 0x22,0x14,0xB2,0xC8,<br /> 0x04,0x34,0x14,0xC4,<br /> 0x12,0x32,0x18,0x42,0x42,<br /> 0x74,0x58,0x44,<br /> 0x3F,<br /> 0xFF<br />};<br />unsigned char code MUSIC_07[138]=<br />{<br /> 0xC2,0xC2,0x12,<br /> 0x34,0x32,0x32,0x32,0x12,0x12,0x52,<br /> 0x54,0x02,0xC2,0x12,<br /> 0x32,0x32,0x32,0x32,0x34,0x52,0x72,<br /> 0x7C,0x02,0x72,<br /> 0x82,0x72,0x82,0x72,0x84,0x72,0x41,0x51,<br /> 0x52,0x41,0x31,0x34,0x02,0x32,0x32,0x12,<br /> 0x34,0x32,0x12,0x32,0x54,0x42,<br /> 0x32,0x32,0x32,0x32,0x34,0x52,0x72,<br /> 0x7C,0x72,0x72,<br /> 0x82,0x72,0x82,0x72,0x84,0x82,0x72,<br /> 0x42,0x52,0x42,0x34,0x12,0x12,0x32,<br /> 0xC4,0x52,0x42,0x34,0x12,0x12,<br /> 0x31,0x41,0x32,0x3C,<br /> 0x0A,0x72,0x82,0xA2,<br /> 0x84,0x82,0x72,0x82,0x72,0x52,0x72,<br /> 0x78,0x02,0x72,0x82,0xA2,<br /> 0x84,0x82,0x72,0x82,0x72,0x82,0x32,<br /> 0x38,0x02,0x32,0x42,0x52,<br /> 0x64,0x62,0x72,0x82,0x82,0x72,0x82,<br /> 0x82,0xA2,0x82,0x82,0x82,0xA2,0x82,0x72,<br /> 0x78,0x72,0x32,0x82,0x72,<br /> 0x78,0x72,0x82,0xA3,0x51,<br /> 0x42,0x51,0x41,0x3C,<br /> 0xFF<br />};<br />unsigned char code MUSIC_08[77]=<br />{<br /> 0xC2,0xC2,0x34,0x42,0x42,<br /> 0x52,0x41,0x51,0x5C,<br /> 0x04,0xC2,0xC2,0x34,0x42,0x42,<br /> 0x52,0x31,0x41,0x4C,<br /> 0x04,0xC2,0xC2,0x34,0x42,0x42,<br /> 0x52,0x41,0x51,0x58,0x32,0x52,<br /> 0x4C,0x42,0x32,<br /> 0x34,0x32,0x42,0x48,<br /> 0x04,0xC2,0xC2,0x34,0x42,0x42,<br /> 0x72,0x41,0x51,0x5C,<br /> 0x04,0xC2,0xC2,0x32,0x32,0x42,0x42,<br /> 0x52,0x42,0x4C,<br /> 0x04,0xC2,0xC2,0x34,0x42,0x42,<br /> 0x52,0x41,0x51,0x58,0x32,0x52,<br /> 0x4C,0x42,0x32,<br /> 0x32,0x42,0x4C,<br /> 0xFF<br />};<br />unsigned char code MUSIC_09[]=<br />{<br /> 0X54,0XC4,0X12,0X32,0X34,<br /> 0X52,0X52,0X52,0X52,0X42,0X32,0X34,<br /> 0XC1,0XC2,0X52,0XC2,0X12,0X32,0X34,<br /> 0X11,0X12,0X31,0X12,0XC2,<br /> 0X78,0X72,0X52,0X52,0X42,<br /> 0X32,0X42,0X52,0X11,0XC1,0XC4,0XC1,0XC1,0XC1,0XC1,<br /> 0X12,0X32,0X32,0X12,0X42,0X42,0X44,<br /> 0XC2,0X12,0X32,0X42,0X52,0X72,0X72,0X82,<br /> 0X41,0X51,0X42,0X48,0X42,0X12,<br /> 0X3C,0X72,0X62,<br /> 0X3C,0X72,0X62,<br /> 0X3C,0X72,0X62,<br /> 0x21,0x31,0x41,0x51,0x61,0x71,0x81,0x91,0x61,0x71,0x81,0x91,<br /> 0X3F,<br /> 0X3F,<br /> 0X54,0XC2,0XC2,0X42,0XC2,0XC4,<br /> 0X34,0X32,0X42,0X52,0XC2,0XC4,<br /> 0XD2,0XC2,0X12,0X22,0X38,<br /> 0X12,0X22,0X32,0X42,0X48,<br /> 0xFF<br />};<br />unsigned char code MUSIC_10[]=<br />{<br /> 0x32,0x31,0x41,<br /> 0x52,0x52,0x42,0x31,0x41,0x44,0x31,0x41,<br /> 0x52,0x52,0x42,0x32,0x34,0x71,0x11,<br /> 0x74,0x71,0x71,0x11,0x31,0x34,0x32,<br /> 0x32,0x32,0x32,0x31,0x41,0x44,0x32,0x41,0x51,<br /> 0x52,0x52,0x72,0x81,0x41,0x44,0x52,0x41,0x31,<br /> 0x32,0x32,0x42,0x51,0x71,0x74,0x71,0x71,<br /> 0x12,0x31,0x31,0x31,0x52,0x42,0x32,0x32,0x41,0x31,<br /> 0x34,0x52,0x51,0x71,<br /> 0x72,0x71,0x71,0x72,0x71,0x81,0x84,0x52,0x42,<br /> 0x32,0x32,0x32,0x41,0x51,0x54,0x51,0x71,<br /> 0x72,0x72,0x72,0x81,0xA1,0xA2,0x82,0x72,0x52,<br /> 0x42,0x32,0x32,0x12,0x44,0x51,0x71,<br /> 0x72,0x72,0x71,0x82,0x71,0x84,0x52,0x42,<br /> 0x32,0x32,0x32,0x41,0x51,0x54,0x51,0x71,<br /> 0x72,0x72,0x72,0x81,0xA1,0xA2,0x82,0x72,0x51,0x41,<br /> 0x42,0x42,0x44,0x32,0x51,0x61,<br /> 0x72,0x42,0x44,0x52,0x41,0x31,<br /> 0x34,0x52,0x41,0x31,0x34,0x52,0x42,<br /> 0x52,0x32,0x52,0x81,0x71,0x74,0x51,0x71,<br /> 0x82,0x81,0x71,0x72,0x81,0x71,0x74,0x51,0x41,0x31,<br /> 0x42,0x41,0x51,0x42,0x31,0x41,0x44,0x52,0x41,0x31,<br /> 0x34,0x52,0x41,0x31,0x34,0x52,0x42,<br /> 0x52,0x32,0x52,0x81,0x71,0x74,0x51,0x41,<br /> 0x82,0x82,0xA2,0x71,0x81,0x72,0x71,0x51,0x41,0x31,<br /> 0x44,0x41,0x31,0x41,0x51,0x44,0x52,0x52,<br /> 0x42,0x31,0x34,0x52,0x41,0x31,<br /> 0x42,0x31,0x34,<br /> 0xFF<br />}; <br />unsigned char code MUSIC_11[]=<br />{<br /> 0XC2,0XB2,<br /> 0X36,0X52,0X42,0X32,0X11,0XC1,0XB2,<br /> 0XC6,0X12,0XC4,0X12,0XC2,<br /> 0X76,0XA2,0X82,0X72,0X51,0X41,0X32,<br /> 0X4C,0X42,0X32,<br /> 0X74,0X82,0X74,0X82,0X72,<br /> 0X52,0X41,0X38,0X32,0X42,<br /> 0X16,0XC2,0X72,0X52,0X42,0X42,<br /> 0X3C,0XC2,0XB2,<br /> 0X36,0X52,0X42,0X32,0X11,0XC1,0XB2,<br /> 0XC6,0X12,0XC4,0X12,0XC2,<br /> 0X76,0XA2,0X82,0X72,0X51,0X41,0X32,<br /> 0X4C,0X42,0X32,<br /> 0X76,0X82,0X74,0X82,0X72,<br /> 0X53,0X41,0X38,0X32,0X42,<br /> 0X16,0XC2,0X72,0X52,0X41,0X51,0X12,<br /> 0XCC,0XC2,0XB2,<br /> 0X16,0XC2,0X72,0X52,0X42,0X42,<br /> 0X3C,0X32,0X32,<br /> 0X26,0X22,0X24,0X42,0X32,<br /> 0x22,0x12,0x18,0x02,0x52,<br /> 0X46,0X12,0X44,0X72,0X82,<br /> 0X5C,0X52,0X52,<br /> 0X46,0X42,0X74,0X42,0X32,<br /> 0X36,0X42,0X58,<br /> 0X82,0X72,0X62,0X52,0X46,0X32,<br /> 0X3C,0X12,0XB2,<br /> 0X36,0X52,0X42,0X32,0X11,0XC1,0XB2,<br /> 0XC6,0X12,0XC4,0X12,0XC2,<br /> 0X76,0XA2,0X82,0X72,0X51,0X41,0X32,<br /> 0X48,0X02,0X42,0X52,0X62,<br /> 0X76,0X82,0X74,0X82,0X72,<br /> 0X56,0X41,0X38,0X32,0X22,<br /> 0X16,0XC2,0X72,0X52,0X42,0X42,<br /> 0X3C,0X04,0X04,0X04,0X04,<br /> 0xFF<br />};<br />unsigned char code MUSIC_12[]=<br />{<br /> 0x34,0x32,0x34,0x34,0x24,0x34,0x32,0x32,0x24,0x38,0x44,0x58,0x48,<br /> 0x34,0x32,0x34,0x34,0x24,0x38,0x34,0x7F,0x34,0x32,0x34,0x32,<br /> 0x24,0x38,0x34,0x24,0x38,0x44,0x58,0x48,0x34,0x32,0x34,0x34,<br /> 0x24,0x38,0x34,0x7F,0x16,0x4C,0x74,<br /> 0x78,0x64,0x54,0x48,0x54,0x64,0x58,0x44,0x34,0x24,0x38,0x24,<br /> 0x14,0x12,0x21,0x11,0x78,0x68,0x3F,0x4C,0x74,<br /> 0x78,0x64,0x52,0x42,0x48,0x54,0x64,0x58,0x44,0x34,0x24,0x38,0x24,<br /> 0x24,0x38,0x44,0x58,0x48,0x3C,<br /> 0xFF<br />};<br />//*********************************************************************<br />// 以上为12首音乐代码谱表,根据自己的喜好添加乐谱代码<br />//*********************************************************************<br />sbit SPK=P3^7;<br />unsigned char code MUSIC_TABLE[]=//音乐谱频率值代码<br />{<br /> 0xFF,0xFF,0xFB,0x90,0xFC,0x0C,0xFC,0x44,<br /> 0xFC,0xAC,0xFD,0x09,0xFD,0x34,0xFD,0x82,<br /> 0xFD,0xC8,0xFE,0x06,0xFE,0x22,0xFA,0X15,<br /> 0XFB,0x04,0xFA,0x67,0xFE,0x85,<br />};<br /><br />#define LEDCODEPORT P0<br />#define LEDBITPORT P2<br />unsigned char code LEDTABLE[]=//数码管显示代码表<br />{<br /> 0x3f,0x06,0x5b,0x4f,<br /> 0x66,0x6d,0x7d,0x07,<br /> 0x7f,0x6f,0x77,0x7c,<br /> 0x39,0x5e,0x79,0x71,<br /> 0x00,0x40,0x73,0x38,0x3e,0x6e,// ,-,P,L,U,y<br />};<br /><br />unsigned char LEDBuffer[8];<br />unsigned char LEDScanCount;<br /><br />struct MUSIC_STRUCT<br />{<br /> unsigned char Data;<br /> unsigned char Step;<br /> unsigned char Status;<br /> unsigned char Number;<br />};<br />struct MUSIC_STRUCT Music;<br />unsigned char *MusicPointer;<br /><br />void Delay125MS(unsigned char t)//延时子程序<br />{<br /> unsigned char i,j,k;<br /> while(t)<br /> {<br /> for(i=2;i>0;i--)<br /> for(j=125;j>0;j--)<br /> for(k=248;k>0;k--);<br /> t--;<br /> }<br />}<br /><br /><br /><br />void main(void)<br />{<br /> unsigned char a,b;<br /> Music.Data=0;//初始化<br /> Music.Step=0;<br /> Music.Status=0;<br /> Music.Number=0;<br /> MusicPointer=&MUSIC_01;<br /> if(0==Music.Status)<br /> {<br /> LEDBuffer[7]=17;//数码管显示"---PAUSE"<br /> LEDBuffer[6]=17;<br /> LEDBuffer[5]=17;<br /> LEDBuffer[4]=18;<br /> LEDBuffer[3]=10;<br /> LEDBuffer[2]=20;<br /> LEDBuffer[1]=5;<br /> LEDBuffer[0]=14;<br /> }<br /> else<br /> {<br /> LEDBuffer[7]=(Music.Number+1)/10;//数码管显示"XX--PLAy"<br /> LEDBuffer[6]=(Music.Number+1)%10;<br /> LEDBuffer[5]=17;<br /> LEDBuffer[4]=17;<br /> LEDBuffer[3]=18;<br /> LEDBuffer[2]=19;<br /> LEDBuffer[1]=10;<br /> LEDBuffer[0]=21;<br /> }<br /> TMOD=0x11;//定时器初始化为方式1,定时功能<br /> TH1=(65536-1843)/256;//T1定时1mS的初值装入TH1,TL1<br /> TL1=(65536-1843)%256;<br /> TR1=1;<br /> ET1=1;<br /> ET0=1;<br /> IT0=1;<br /> EX0=1;<br /> IT1=1;<br /> EX1=1;<br /> EA=1;<br /> PT0=1;<br /> PT1=1;<br /> while(1)<br /> {<br /> if(0!=Music.Status)//判断是否处于播放状态<br /> {<br /> if(0xff!=(*MusicPointer))//判断一首歌曲是否播放完毕<br /> {<br /> Music.Data=(*MusicPointer)&0x0f;//从歌曲表中取出音乐谱<br /> Music.Step=(*MusicPointer)>>4;<br /> a=MUSIC_TABLE[Music.Step*2+0];//根据音阶选择不同的频率值<br /> b=MUSIC_TABLE[Music.Step*2+1];<br /> TH0=a;<br /> TL0=b;<br /> TR0=1;<br /> if((0xff==a)&&(0xff==b))//判断是否为休止符<br /> {<br /> TR0=0;<br /> SPK=1;<br /> }<br /> Delay125MS(Music.Data);//根据音拍来决定延时时间<br /> TR0=0;<br /> SPK=1;<br /> MusicPointer++;//取下一个音乐谱代码<br /> }<br /> else<br /> {<br /> LEDBuffer[3]=17;//一首歌播放完毕,显示"XX-----"<br /> LEDBuffer[2]=17;<br /> LEDBuffer[1]=17;<br /> LEDBuffer[0]=17;<br /> Delay125MS(10);<br /> Music.Status=0;<br /> switch(Music.Number)//重新定位音乐谱指针<br /> {<br /> case 0:<br /> MusicPointer=&MUSIC_01; <br /> break;<br /> case 1:<br /> MusicPointer=&MUSIC_02;<br /> break;<br /> case 2:<br /> MusicPointer=&MUSIC_03;<br /> break;<br /> case 3:<br /> MusicPointer=&MUSIC_04;<br /> break;<br /> case 4:<br /> MusicPointer=&MUSIC_05;<br /> break;<br /> case 5:<br /> MusicPointer=&MUSIC_06;<br /> break;<br /> case 6:<br /> MusicPointer=&MUSIC_07;<br /> break;<br /> case 7:<br /> MusicPointer=&MUSIC_08;<br /> break;<br /> case 8:<br /> MusicPointer=&MUSIC_09;<br /> break;<br /> case 9:<br /> MusicPointer=&MUSIC_10;<br /> break;<br /> case 10:<br /> MusicPointer=&MUSIC_11;<br /> break;<br /> case 11:<br /> MusicPointer=&MUSIC_12;<br /> break;<br /> }<br /> }<br /> }<br /> }<br />}<br /><br />void timer0(void) interrupt 1//音乐频率发生器<br />{<br /> TH0=MUSIC_TABLE[Music.Step*2+0];<br /> TL0=MUSIC_TABLE[Music.Step*2+1];<br /> SPK=~SPK; <br />}<br /><br />void timer1(void) interrupt 3//显示扫描等操作<br />{<br /> TH1=(65536-1843)/256;<br /> TL1=(65536-1843)%256;<br /> LEDCODEPORT=LEDTABLE[LEDBuffer][LEDScanCount]];<br /> LEDBITPORT =(LEDBITPORT & 0xf0)|LEDScanCount;<br /> LEDScanCount++;<br /> if(LEDScanCount==sizeof(LEDBuffer))LEDScanCount=0;<br />}<br /><br />void int0(void) interrupt 0//音乐播放和暂停按键操作<br />{<br /> unsigned char i,j;<br /> EX0=0;<br /> for(j=20;j>0;j--)<br /> for(i=255;i>0;i--);<br /> if(0==Music.Status)Music.Status=1;<br /> else<br /> {<br /> TR0=0;<br /> SPK=1;<br /> Music.Status=0;<br /> }<br /> if(0==Music.Status)<br /> {<br /> LEDBuffer[7]=17;//数码管显示"---PAUSE"<br /> LEDBuffer[6]=17;<br /> LEDBuffer[5]=17;<br /> LEDBuffer[4]=18;<br /> LEDBuffer[3]=10;<br /> LEDBuffer[2]=20;<br /> LEDBuffer[1]=5;<br /> LEDBuffer[0]=14;<br /> }<br /> else<br /> {<br /> LEDBuffer[7]=(Music.Number+1)/10;//数码管显示"XX--PLAy"<br /> LEDBuffer[6]=(Music.Number+1)%10;<br /> LEDBuffer[5]=17;<br /> LEDBuffer[4]=17;<br /> LEDBuffer[3]=18;<br /> LEDBuffer[2]=19;<br /> LEDBuffer[1]=10;<br /> LEDBuffer[0]=21;<br /> }<br /> while(0==INT0);<br /> EX0=1;<br /> IE0=0;<br />}<br /><br />void int1(void) interrupt 2//选曲按键操作<br />{<br /> unsigned char i,j;<br /> EX1=0;<br /> for(i=20;i>0;i--)<br /> for(j=255;j>0;j--);<br /> Music.Number++;<br /> if(12==Music.Number)<br /> {<br /> Music.Number=0;<br /> }<br /> switch(Music.Number)//重新定位音乐谱指针<br /> {<br /> case 0:<br /> MusicPointer=&MUSIC_01; <br /> break;<br /> case 1:<br /> MusicPointer=&MUSIC_02;<br /> break;<br /> case 2:<br /> MusicPointer=&MUSIC_03;<br /> break;<br /> case 3:<br /> MusicPointer=&MUSIC_04;<br /> break;<br /> case 4:<br /> MusicPointer=&MUSIC_05;<br /> break;<br /> case 5:<br /> MusicPointer=&MUSIC_06;<br /> break;<br /> case 6:<br /> MusicPointer=&MUSIC_07;<br /> break;<br /> case 7:<br /> MusicPointer=&MUSIC_08;<br /> break;<br /> case 8:<br /> MusicPointer=&MUSIC_09;<br /> break;<br /> case 9:<br /> MusicPointer=&MUSIC_10;<br /> break;<br /> case 10:<br /> MusicPointer=&MUSIC_11;<br /> break;<br /> case 11:<br /> MusicPointer=&MUSIC_12;<br /> break;<br /> }<br /> LEDBuffer[7]=(Music.Number+1)/10;<br /> LEDBuffer[6]=(Music.Number+1)%10;<br /> while(0==INT1);<br /> EX1=1;<br /> IE1=0;<br />}<br />//**************************************************************************<br />// 将程序装入开发板,开机显示"---PAUSE",按下K1(P3.2)启动播放音乐,再按一下K1<br />// 暂停播放音乐;按下K2(P3.3)是歌曲选择,每按一次,选择下一首,到最后一首时,又<br />// 第一首开始.在播放过程中,显示"XX--PLAY",当前曲播放完毕,显示"XX-----",再按<br />// K1,则又开始播放.更多实验现象,请操作K1和K2两个按键.(fosc=12MHz)<br />//************************************************************************** |