51单片机蜂鸣器唱歌程序

运行后
一是只唱了大概五六个音
二是之后就一直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);

}

[2]单片机音乐盒花样流水灯设计
功能描述:
1、按键切换音乐
2、彩灯可以跟随音调亮灭
3、按键切换彩灯显示花样
4、支持功能定制
☆已作出的实物优酷视频演示地址:
http://v.youku.com/v_show/id_XMTUxMDU3MzcyOA==.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-03
需要知道你的硬件连接图
第2个回答  2017-12-02
有没有在仿真里面试过?
相似回答