#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit BEEP=P2^1;
void Music(uchar number);
void delay10us(uchar time);
void delay50us(uchar time);
uchar code SOUNDLONG[]= //控制音調
{
18,6,24,24,24,48,
18,6,24,24,24,48,
18,6,24,24,24,24,24,
18,6,24,24,24,48,0
};
uchar code SOUNDTONE[]= //控制音色
{
212,212,190,212,159,169,
212,212,190,212,142,159,
212,212,106,126,159,169,190,
119,119,126,159,142,159,0 //生日快樂end
};
void Play_Music()
{
uint k,n;
uint SoundLong,SoundTone;
uint i,j,m;
do
{
if(i>=25) i=0;
SoundLong=SOUNDLONG[i];
SoundTone=SOUNDTONE[i];
i++;
for(n=0;n<SoundLong;n++)
{
for(k=0;k<12;k++)
{
BEEP=0;
for(m=0;m<SoundTone;m++);
BEEP=1;
for(m=0;m<SoundTone;m++);
}
}
delay50us(6);
}while((SOUNDLONG[i]!=0)||(SOUNDTONE[j]!=0));
}
//延時程序
void delay10us(uchar time)
{
uchar a,b,c;
for(a=0;a<time;a++)
for(b=0;b<10;b++)
for(c=0;c<120;c++);
}
void delay50us(uchar time)
{
uchar a,b;
for(a=0;a<time;a++)
for(b=0;b<6;b++);
}
void main()
{
while(1)
{
Play_Music(); //生日快樂
delay10us(250);
}
}
|