#include <reg51.h>
#define uchar unsigned char //伪指令
#define uint unsigned int //简化指令
sbit P1-0=P1^0
uint n,v,jiepai,dongzuo; //要记得先定义变量呦。
uint XNH []={ 64820,1,6,64580,2,5,64777,4,1,65535;} //定义数组,音符,节拍,动作值,我就随便举几个音符啦
void dealy(jianpu){
v=XNH[n];//提取音符
jiepai=XNH[++n];
n++;
} //为了让程序编写简单方便,咱们定义一个函数来读取音符
void delay(uint jiepai)
{
unchar a,b,c;
while(jiepai--!=0)
{
for(a=5,a>0;a--)
{
for(b=123;b>0;b--)
{
for(c=150;c>0;c--){;}
}
}
void mian()
{
P2=0x00;
P1-0=0;
TMOD=0x11 //初始化
IE=0x82;
n=0;
while(1){
jianpu();//读取
if(v!=65535)
{
if (jiepai!0)
{
T0=v; //不初始化没办法用啊
TR0=1;//你得打开定时器啊
P2=dongzuo;
delay(jiepai);
}
}
else{RT0=0;
P1-0=1;
P2=0x00;}// 结束