論壇內一個大佬的代碼,這段百思不得其解怎么算出來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]);
}
}
|