📄 music.h
字号:
u8 RadyMusic()
{
u8 MUSIC;
if(Pen_Point.Y0>=16&&Pen_Point.Y0<32){MUSIC=0;return MUSIC;}
if(Pen_Point.Y0>=32&&Pen_Point.Y0<48){MUSIC=1;return MUSIC;}
if(Pen_Point.Y0>=48&&Pen_Point.Y0<64){MUSIC=2;return MUSIC;}
if(Pen_Point.Y0>=64&&Pen_Point.Y0<80){MUSIC=3;return MUSIC;}
if(Pen_Point.Y0>=80&&Pen_Point.Y0<96){MUSIC=4;return MUSIC;}
if(Pen_Point.Y0>=96&&Pen_Point.Y0<112){MUSIC=5;return MUSIC;}
if(Pen_Point.Y0>=112&&Pen_Point.Y0<128){MUSIC=6;return MUSIC;}
if(Pen_Point.Y0>=128&&Pen_Point.Y0<144){MUSIC=7;return MUSIC;}
if(Pen_Point.Y0>=144&&Pen_Point.Y0<160){MUSIC=8;return MUSIC;}
if(Pen_Point.Y0>=160&&Pen_Point.Y0<176){MUSIC=9;return MUSIC;}
if(Pen_Point.Y0>=176&&Pen_Point.Y0<192){MUSIC=10;return MUSIC;}
if(Pen_Point.Y0>=192&&Pen_Point.Y0<208){MUSIC=11;return MUSIC;}
if(Pen_Point.Y0>=208&&Pen_Point.Y0<224){MUSIC=12;return MUSIC;}
if(Pen_Point.Y0>=224&&Pen_Point.Y0<240){MUSIC=13;return MUSIC;}
if(Pen_Point.Y0>=240&&Pen_Point.Y0<256){MUSIC=14;return MUSIC;}
return 15;
}
void PlayMusic(u8 music)
{
unsigned char addr[8];
unsigned long ADDR;
unsigned long size;
unsigned int time;
u16 time2;
u8 n;
u16 i;
u32 ii;
Pen_Int_Set(1);//开启中断
res:addr[0]=Music[music*32+26];
addr[1]=Music[music*32+27];
addr[2]=Music[music*32+20];
addr[3]=Music[music*32+21];
addr[4]=Music[music*32+28];
addr[5]=Music[music*32+29];
addr[6]=Music[music*32+30];
addr[7]=Music[music*32+31];
ADDR=addr[3]<<24|addr[2]<<16|addr[1]<<8|addr[0];
ADDR=(ADDR-2)*8+FirstBlock;
size=addr[7]<<24|addr[6]<<16|addr[5]<<8|addr[4];
size=size/512;
VS_Init();
VS_HD_Reset(); //硬复位
VS_Soft_Reset(); //软复位VS10XX
SPIx_SetSpeed(SPI_SPEED_8);//高速,对VS1003B,最大值不能超过36.864/6Mhz,这里设置为4.5M
for(ii=0;ii<size;ii++) //播放音乐的主循环
{
SD_ReadSingleBlock((ADDR+ii)*512,buffer);//读取一个扇区的数据
time=VS_RD_Reg(SPI_DECODE_TIME);
if(time!=time2&&time!=0)
{
time2=time;
huanyuan(123,300,147,316,TIME);
LCD_ShowNum(123,300,time,3,16);
}
for(i=0;i<16;i++)
{
while(VS_DQ==0); // 非暂停 送数据给VS1003
VS_XDCS_L;
for(n=0;n<32;n++)
{
SPIx_ReadWriteByte(buffer[i*32+n]);
}
VS_XDCS_H;
if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下
{
Convert_Pos();
Pen_Point.Key_Sta=Key_Up;
if(Pen_Point.Y0>=303&&Pen_Point.X0>=159&&Pen_Point.X0<191)
{
bb=0;
beijing();
Show_Str(159,303,"音乐",16,1);
Show_Str(207,303,"属性",16,1);
goto zhuye;
}
music=RadyMusic();
if(music!=15)
{
goto res;
}
}
}
}
music++;
if(music!=15)goto res;
zhuye:
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -