/*****自动演示节拍表*****/
unsigned char code yanshi_beat[]={ 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,2,
48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,2
};
/*****15ms延时子程序,用于节拍*****/
void delay(void)
{
unsigned char n=15;
while(n--)
{
unsigned char i;
for(i=0;i<125;i++);
}
}
/*****定时器0初始化*****/
void initTimer(void)
{
TMOD=0x01; //定时器0,工作方式1;定时器1,工作方式1
TH0=tone1;
TL0=tone2;
}
/*****定时器0中断服务程序*****/
void timer0(void) interrupt 1
{
TH0=tone1;
TL0=tone2;
SPK=~SPK; //取反,以产生方波
}
/*****演奏子程序1*****/
void play1(void)
{
unsigned char m=0;
unsigned char s;
unsigned char a=1;
while(1)
{
EA=0;
LED=0;
a=shengri_tone[m]; //取音符
s=shengri_beat[m]; //取节拍
tone1=yinfu[2*a-2];
(责任编辑:admin) |