
void tinit(void);
void delay_ms(unsigned int);
sbit P27=P2^7;
sbit P26=P2^6;
sbit P25=P2^5;
unsigned char code Music_Code[]={
0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,
0xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfb,0xee
} ;
unsigned char const yinful[3][14]={
0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b,
0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0xfd,0xc7,0xfe,0x05,
0xfb,0x21,0xfe,0x55,0xfe,0x84,0xfe,0x99,0xfe,0xc0,0xfe,0xe3,0xff,0x02
} ;
unsigned char const length[]={1,2,4,8,16,32,};
unsigned char sth,stl;
void main(void)
{
unsigned char j;
unsigned int i;
tinit();
while(1)
{
switch(P1)
{
case 0xfe: delay_ms(10);
if(P1==0xfe)
{
i=0;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xfe)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xfe)
delay_ms(10);
if(P1==0xfe) continue;
else break;
}
}
TR0=0;
break;
case 0xfd: delay_ms(10);
if(P1==0xfd)
{
i=1;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xfd)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xfd)
delay_ms(10);
if(P1==0xfd) continue;
else break;
}
}
TR0=0;
break;
case 0xfb: delay_ms(10);
if(P1==0xfb)
{
i=2;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xfb)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xfb)
delay_ms(10);
if(P1==0xfb) continue;
else break;
}
}
TR0=0;
break;
case 0xf7: delay_ms(10) ;
if(P1==0xf7)
{
i=3;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xf7)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xf7)
delay_ms(10);
if(P1==0xf7) continue;
else break;
}
}
TR0=0;
break;
case 0xef: delay_ms(10);
if(P1==0xef)
{
i=4;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xef)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xef)
delay_ms(10);
if(P1==0xef) continue;
else break;
}
}
TR0=0;
break;
case 0xdf: delay_ms(10);
if(P1==0xdf)
{
i=5;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xdf)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xdf)
delay_ms(10);
if(P1==0xdf) continue;
else break;
}
}
TR0=0;
break;
case 0xbf: delay_ms(10);
if(P1==0xbf)
{
i=6;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0xbf)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0xbf)
delay_ms(10);
if(P1==0xbf) continue;
else break;
}
}
TR0=0;
break;
case 0x7f: delay_ms(10);
if(P1==0x7f)
{
i=7;
TR0=0;
sth=Music_Code[2*i];
stl=Music_Code[2*i+1];
TR0=1;
for(j=0;j<=100;j++)
{
delay_ms(10);
if(P1==0x7f)continue;
else break;
}
TR0=0;
for(;;)
{
while(P1==0x7f)
delay_ms(10);
if(P1==0x7f) continue;
else break;
}
}
TR0=0;
break;
default: break;
}
}
}
void delay_ms(unsigned int k)
{
unsigned int i0;
unsigned char i,j;
for(i0=0;i0 for(i0=0;i0 for(j=97;j>0;j--); } } void tinit(void) { TMOD=0x01; TH0=sth; TL0=stl; ET0=1; EA=1; TR0=0; } void t0(void) interrupt 1 { TR0=0; TH0=sth; TL0=stl; P27=!P27; TR0=1; }
