main()
{
uint i,j;
TMOD=0x01;
IT0=0;
do
{
IE=0x83;
flag=0;
key=0;
check_lcd();
KeyScan();
lcd_busy();
w_c_add=0x80;
for(i=0;i<6;i++)
{
lcd_busy();
w_d_add=0x20;
w_d_add=0x20;
}
lcd_show(music_name);
IE=0x83;
do
{
j=0;
while(*(music+j)!=0xff)
{ if(key)break;
k=*(music+j)&0x0f;
l=*(music+j)>>4;
sth0=tab[2*l];
stl0=tab[2*l+1];
TH0=sth0;
TL0=stl0;
TR0=1;
// TR1=1;
do
{
delay_music();
flag++;
}while(flag<k);
flag=0;
j++;
}
}while(!key);
}while(1);
}
void delay_music(void)
{
uint count=150;
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
void delay(int i)
{
int j,k;
for(j=0;j<i;j++)
{
k=0x0f;
while(k--);
}
}
void KeyScan(void)
{
uchar k;
while(1)
{
P3&=0xfe;
delay(1);
k=P1;
if(k!=0xff)
{
delay(10);
P3&=0xfe;
delay(1);
k=P1;
while((P1&0xff)!=0xff);
if(k!=0xff)
{
switch(k)
{
case 0xfe:music_name=music_name1;music=music1;break;
case 0xfd:music_name=music_name2;music=music2;break;
case 0xfb:music_name=music_name3;music=music3;break;
case 0xf7:music_name=music_name4;music=music4;break;
case 0xef:music_name=music_name5;music=music5;break;
case 0xdf:music_name=music_name6;music=music6;break;
case 0xbf:music_name=music_name7;music=music7;break;
case 0x7f:music_name=music_name8;music=music8;break;
}
return;
}
}
P3|=0x01;
delay(1);
k=P1;
if(k!=0xff)
{
delay(10);
P3|=0x01;
delay(1);
k=P1;
while((P1&0xff)!=0xff);
if(k!=0xff)
{
switch(k)
{
case 0xfe:music_name=music_name9;music=music9;break;
case 0xfd:music_name=music_name10;music=music10;break;
}
return ;
}
}
}
}
void timer0(void) interrupt 1 using 1
{
TL0=stl0;
TH0=sth0;
Speaker=!Speaker;
}
void int1_serve(void) interrupt 0 using 3
{
EA=0;
key=1;
Speaker=1;
}
非常感谢!!!
2024-11-28 广告