?? bjhyn.c
字號:
#include <AT89X51.H>
unsigned int j;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]={64021,64103,64260,64400, //低mi,fa,so,la
64524,64580,64684,64777, //低si,中do,re,mi
64820,64898,64968,65030, //中fa,so,la,si
65058,65110,65157,65178, //高do,re,mi,fa
65217,65252,65283,65312}; //高so,la,si,do
unsigned char code song[]={ 10,10,12,12,10,10,9,9,10,10,9,9,10,10,10,0,10,10,10,9,6,6,8,8,10,10,9,9,9,9,9,0,
9,9,8,8,6,6,8,8,9,9,10,10,12,12,9,9,10,10,13,13,12,12,5,5,9,9,8,8,8,8,8,0,
9,9,8,8,6,6,8,8,9,9,10,10,12,12,9,9,10,10,13,13,12,12,12,12,10,10,10,10,10,10,10,0,
9,9,10,10,9,9,8,8,12,12,12,13,8,8,8,0,6,6,10,10,9,9,9,9,8,8,8,8,8,8,0,0,
0,0,0,0,0,0,
10,10,10,10,12,12,12,12,15,15,12,12,13,13,13,13,13,0,12,12,13,13,12,12,10,10,10,10,12,12,12,12,12,12,12,0,
10,10,12,12,13,13,15,15,16,16,15,15,12,12,10,10,9,9,12,12,12,12,12,12,10,10,10,10,10,10,10,10,0,
10,10,12,12,15,15,12,12,13,13,13,13,13,0,15,15,16,16,16,15,12,12,10,10,12,12,15,15,13,13,13,10,
9,9,10,10,13,13,17,17,16,16,16,16,16,0,16,16,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,
10,10,12,12,15,15,12,12,13,13,13,13,13,0,15,15,16,16,16,15,12,12,10,10,12,12,15,15,13,13,13,10,
9,9,10,10,13,13,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
16,16,16,0,15,15,0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,
0,0,
};
sbit SPK=P3^7;
void delay(unsigned char ms)
{unsigned int i;
while(ms--)
{for(i=0;i<1000;i++);
}
}
void main(void)
{
TMOD=0x01;
ET0=1;
EA=1;
while(1)
{j=0;
while(j<360)
{TR0=1;
if(song[j]==0)
TR0=0;
else
STH0=tab[song[j]-3]/256;
STL0=tab[song[j]-3]%256;
//TR0=1;
delay(8);
TR0=1;
j++;
}
}
}
void timer0(void) interrupt 1 using 0
{
TH0=STH0;
TL0=STL0;
SPK=~SPK;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -