论坛内一个大佬的代码,这段百思不得其解怎么算出来115,102...这串数组的?
uchar code tone[]={115,102,91,86,77,68,61,57}; //歌曲音调
void main()
{
uchar yd,temp;
yd=0; //初始化t2
while(1)
{
//演奏部分
if(k1==0)
{
while(!k1) //如果键盘1被按下发音do
sound(0);
temp=1;yd=0;
}
if(k2==0) //如果键盘2被按下发音ra
{
while(!k2)
sound(1);
temp=1;yd=1;
}
if(k3==0) //如果键盘3被按下发音mi
{
while(!k3)
sound(2);
temp=1;yd=2;
}
if(k4==0) //如果键盘4被按下发音fa
{
while(!k4)
sound(3);
temp=1;yd=3;
}
if(k5==0) //如果键盘5被按下发音so
{
while(!k5)
sound(4);
temp=1;yd=4;
}
if(k6==0) //如果键盘6被按下发音la
{
while(!k6)
sound(5);
temp=1;yd=5;
}
if(k7==0) //如果键盘7被按下发音xi
{
while(!k7)
sound(6);
temp=1;yd=6;
}
if(k8==0) //如果键盘8被按下发音do#
{
while(!k8)
sound(7);
temp=1;yd=7;
}
}
}
void delay8um(uchar x) //8ms延时函数
{
uchar i,j;
for(i=0;i<x;i++)
for(j=0;j<1;j++);
}
void sound(uchar x) //音调函数
{
uchar i;
for(i=0;i<60;i++)
{
buzzer=0;
delay8um(tone[x]); //开关频率。。从而产生节拍
buzzer=1;
delay8um(tone[x]);
}
}
|