运行后
一是只唱了大概五六个音
二是之后就一直bi~~~~~~~也不执行关闭,是为什么啊
有没有大神能教一下
#include <reg51.h>
unsigned int m,i;//i控制音调和节拍;
code unsigned int time[]={1275,1136,956,852,758,1275,1136,1275,1136,956,758,668,568,758,956,852,956,852,758,
668,758,852,852,852,852,758,852,956,956,1136,1275,1275,956,852,758,852,758,852,758,668,852,852,758,668,568,
758,956,852,956,852,758,668};//音调
code unsigned int pai[]={80,80,80,80,320,160,80,40,40,640,1600,80,80,240,80,120,40,80,40,40,320,80,80,40,40,40,
40,40,80,40,40,80,240,80,120,40,40,40,40,40,320,320,160,80,80,240,80,120,40,80,40,40,0};//节拍
sbit beep=P1^5;
void t1_init() interrupt 3
{
TH1=(65535-10000)/256;
TL1=(65535-10000)%256;
m++;
if(m==pai[i])
{
i++;
m=0;
}
else if(pai[i]==0)
{beep=1;TR0=0;TR1=0;}
}
void t0_init() interrupt 1
{
TH0=(65535-time[i])/256;
TL0=(65535-time[i])%256;
beep=~beep;
}
void sys_init()
{
TMOD=0X11;
TH0=(65535-time[i])/256;
TL0=(65535-time[i])%256;
ET0=1;
EA=1;
TR0=1;
beep=0;
m=0;
////////
TH1=(65535-10000)/256;
TL1=(65535-10000)%256;
ET1=1;
TR1=1;
i=0;
}
void main()
{
sys_init();
while(1);
}