求51单片机用蜂鸣器播放《最炫民族风》的节目!
sbit speaker=p1^2;
无符号字符定时器0h,定时器0l,时间;
//歌曲配乐
code unsigned char sszymmh[]={6,1,4,6,1,2,5,1,2,6,1,4,6,1,2,2,2,1,2,4,2,2,2,2,
1,2,2,6,1,8,1,2,4,1,2,2,5,1,2,1,2,2,2,2,2,3,2,2,
5,2,2,5,2,2,3,2,2,2,2,4,3,2,8,6,2,2,6,2,2,6,2,2,
5,2,2,3,2,2,3,2,4,1,2,2,6,1,2,6,1,2,6,1,2,3,2,2,
2,2,8,3,2,2,3,2,2,5,2,2,3,2,2,2,2,2,3,2,2,2,2,2,
1,2,2,6,1,4,5,1,4,6,1,8,
6,1,4,6,1,2,5,1,2,6,1,4,6,1,2,1,2,2,1,2,4,2,2,2,
1,2,2,6,1,8,1,2,4,1,2,2,5,1,2,1,2,2,2,2,2,3,2,2,
5,2,2,5,2,2,3,2,2,2,2,4,3,2,8,6,2,2,6,2,2,6,2,2,
5,2,2,3,2,2,3,2,4,1,2,2,6,1,2,6,1,2,6,1,2,3,2,2,
2,2,8,3,2,2,3,2,2,5,2,2,3,2,2,2,2,2,3,2,2,2,2,2,
1,2,2,6,1,4,5,1,4,6,1,8,
//我们要唱歌了。
3,2,2,3,2,2,5,2,2,3,2,2,3,2,2,5,2,2,5,2,2,6,2,2,
1,3,2,6,2,2,5,2,4,6,2,8,
//你是我天边最美的云。
6,1,4,6,1,2,5,1,2,6,1,4,1,2,4,2,2,2,3,2,1,2,2,1,
1,2,2,3,2,8,6,1,2,6,2,2,6,2,2,5,2,2,2,2,2,3,2,1,
2,2,1,1,2,2,2,2,2,3,2,8,1,2,2,6,1,2,6,1,2,1,2,2,
2,2,4,5,1,2,5,1,2,3,2,2,5,2,2,3,2,2,2,2,2,1,2,8,
6,1,2,1,2,2,2,2,2,3,2,2,2,2,2,1,2,2,5,1,2,3,1,2,
6,1,8,
6,1,4,6,1,2,5,1,2,6,1,4,1,2,4,2,2,2,3,2,1,2,2,1,
1,2,2,3,2,8,6,1,2,6,2,2,6,2,2,5,2,2,2,2,2,3,2,1,
2,2,1,1,2,2,2,2,2,3,2,8,1,2,2,6,1,2,6,1,2,1,2,2,
2,2,4,5,1,2,5,1,2,3,2,2,5,2,2,3,2,2,2,2,2,1,2,6,
1,2,2,6,1,2,1,2,2,2,2,2,3,2,2,5,2,2,3,2,2,3,2,2,
5,2,2,6,2,8,6,2,8,
6,2,3,6,2,1,6,2,2,6,2,2,6,2,3,5,2,1,3,2,2,2,2,2,
2,2,3,2,2,1,3,2,3,2,2,1,1,2,3,6,1,1,6,1,4,6,1,2,
5,1,2,6,1,4,6,1,2,1,2,2,2,2,2,3,2,1,2,2,1,2,2,1,
1,2,2,2,2,2,3,2,8,6,2,2,5,2,2,3,2,2,2,2,2,5,2,2,
3,2,2,2,2,2,1,2,2,1,2,8,
6,1,4,6,1,2,5,1,2,6,1,4,6,1,2,1,2,2,1,2,4,2,2,2,
1,2,2,6,1,8,1,2,4,1,2,2,5,1,2,1,2,2,2,2,2,3,2,2,
5,2,2,5,2,2,3,2,2,2,2,4,3,2,8,6,2,2,6,2,2,6,2,2,
5,2,2,3,2,2,3,2,4,1,2,2,6,1,2,6,1,2,6,1,2,3,2,2,
2,2,8,3,2,2,3,2,2,5,2,2,3,2,2,2,2,2,3,2,2,2,2,2,
1,2,2,6,1,4,5,1,4,6,1,8,
6,1,4,6,1,2,5,1,2,6,1,4,6,1,2,1,2,2,1,2,4,2,2,2,
1,2,2,6,1,8,1,2,4,1,2,2,5,1,2,1,2,2,2,2,2,3,2,2,
5,2,2,5,2,2,3,2,2,2,2,4,3,2,8,6,2,2,6,2,2,6,2,2,
5,2,2,3,2,2,3,2,4,1,2,2,6,1,2,6,1,2,6,1,2,3,2,2,
2,2,8,3,2,2,3,2,2,5,2,2,3,2,2,2,2,2,3,2,2,2,2,2,
1,2,2,6,1,4,5,1,4,6,1,8,
3,2,2,3,2,2,5,2,2,3,2,2,3,2,2,5,2,2,5,2,2,6,2,2,
1,3,2,6,2,2,5,2,4,6,2,8,
6,1,4,6,1,2,5,1,2,6,1,4,1,2,4,2,2,2,3,2,1,2,2,1,
1,2,2,3,2,8,6,1,2,6,2,2,6,2,2,5,2,2,2,2,2,3,2,1,
2,2,1,1,2,2,2,2,2,3,2,8,1,2,2,6,1,2,6,1,2,1,2,2,
2,2,4,5,1,2,5,1,2,3,2,2,5,2,2,3,2,2,2,2,2,1,2,8,
6,1,2,1,2,2,2,2,2,3,2,2,2,2,2,1,2,2,5,1,2,3,1,2,
6,1,8,
6,1,4,6,1,2,5,1,2,6,1,4,1,2,4,2,2,2,3,2,1,2,2,1,
1,2,2,3,2,8,6,1,2,6,2,2,6,2,2,5,2,2,2,2,2,3,2,1,
2,2,1,1,2,2,2,2,2,3,2,8,1,2,2,6,1,2,6,1,2,1,2,2,
2,2,4,5,1,2,5,1,2,3,2,2,5,2,2,3,2,2,2,2,2,1,2,6,
1,2,2,6,1,2,1,2,2,2,2,2,3,2,2,5,2,2,3,2,2,3,2,2,
5,2,2,6,2,8,6,2,8,
6,2,3,6,2,1,6,2,2,6,2,2,6,2,3,5,2,1,3,2,2,2,2,2,
2,2,3,2,2,1,3,2,3,2,2,1,1,2,3,6,1,1,6,1,4,6,1,2,
5,1,2,6,1,4,6,1,2,1,2,2,2,2,2,3,2,1,2,2,1,2,2,1,
1,2,2,2,2,2,3,2,8,6,2,2,5,2,2,3,2,2,2,2,2,5,2,2,
3,2,2,2,2,2,1,2,2,1,2,8,
//你是我天边最美的云。
6,1,4,6,1,2,5,1,2,6,1,4,1,2,4,2,2,2,3,2,1,2,2,1,
1,2,2,3,2,8,6,1,2,6,2,2,6,2,2,5,2,2,2,2,2,3,2,1,
2,2,1,1,2,2,2,2,2,3,2,8,1,2,2,6,1,2,6,1,2,1,2,2,
2,2,4,5,1,2,5,1,2,3,2,2,5,2,2,3,2,2,2,2,2,1,2,8,
6,1,2,1,2,2,2,2,2,3,2,2,2,2,2,1,2,2,5,1,2,3,1,2,
6,1,8,
6,2,8,6,2,8,0,0,8,3,2,2,5,2,2,3,2,2,5,2,2,
3,2,4,6,1,3,6,1,1,1,2,4,6,1,2,3,2,1,6,1,1,1,2,3,
1,2,1,2,2,1,1,2,1,2,2,1,3,2,8,3,2,4,6,2,3,6,2,1,
5,2,4,2,2,3,2,2,1,3,2,8,3,2,1,2,2,1,1,2,1,6,1,1,
3,1,1,2,1,1,3,1,1,5,1,1,1,2,4,6,1,3,6,1,1,2,2,4,
5,1,3,5,1,1,3,1,4,5,1,3,5,1,1,1,2,8,6,1,4,1,2,3,
6,1,1,3,2,3,3,2,1,2,2,3,3,2,1,6,2,8,6,2,8,
//你是我天边最美的云。
6,1,4,6,1,2,5,1,2,6,1,4,1,2,4,2,2,2,3,2,1,2,2,1,
1,2,2,3,2,8,6,1,2,6,2,2,6,2,2,5,2,2,2,2,2,3,2,1,
2,2,1,1,2,2,2,2,2,3,2,8,1,2,2,6,1,2,6,1,2,1,2,2,
2,2,4,5,1,2,5,1,2,3,2,2,5,2,2,3,2,2,2,2,2,1,2,8,
6,1,2,1,2,2,2,2,2,3,2,2,2,2,2,1,2,2,5,1,2,3,1,2,
6,1,8};
//音阶频率表八位数高。
code unsigned char FREQH[]={
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,8,I
0xFC、0xFD、0xFD、0xFD、0xFD、0xFE、
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x Fe,0xFF,
} ;
//低八位的刻度频率表
code unsigned char FREQL[]={
0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//1,2,3,4,5,6,7,8,I
0xEE,0x44,0x6B,0xB4,0xF4,0x2D,
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
};
无效延迟(无符号字符t)
{
无符号字符t 1;
无符号长T2;
for(t 1 = 0;t 1 & lt;t;t1++)
{
for(T2 = 0;t2 & lt2000;t2++)
{
;
}
}
TR0 = 0;
}
void t0int()中断1
{
TR0 = 0;
演讲者=!扬声器;
TH0 =定时器0h;
TL0 =定时器TL0
TR0 = 1;
}
无效歌曲()
{
TH0 =定时器0h;
TL0 =定时器TL0
TR0 = 1;
延迟(时间);
}
无效总管(无效)
{
无符号字符k;
无符号int I;
TMOD = 1;//将CT0定时模式设置为1。
EA = 1;
ET0 = 1;//IE=0x82 //CPU中断,CT0中断。
while(1)
{
I = 0;
while(我& lt1577){ //音乐数组长度,唱完重新开始。
k = sszymmh[I]+7 * sszymmh[I+1]-1;
timer 0h = FREQH[k];
timer 0 l = FREQL[k];
time = sszymmh[I+2];
I = I+3;
宋();
}
}
}
供你参考哦