| #include <reg52.h> #define uchar unsigned char
 #define uint unsigned int
 
 sbit BEEP = P1^4;
 uchar code SONG_TONE[]=
 {
 212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0
 };
 uchar code SONG_LONG[]=
 {
 9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0
 };
 
 void DelayMS(uint ms)
 {
 uchar t;
 while(ms--)
 {
 for(t=0;t<120;t++);
 }
 }
 
 void PlayMusic()
 {
 uint i =0,j,k;
 while(SONG_LONG!=0||SONG_TONE!=0)
 {
 for(j=0;j<SONG_LONG*20;j++)
 {
 BEEP = ~BEEP;
 for(k=0;k<SONG_TONE/3;k++);
 }
 DelayMS(10);
 i++;
 }
 }
 
 void main()
 {
 while(1)
 {
 PlayMusic();
 DelayMS(500);
 }
 }
 
 
 
 
 |