求51单片机用蜂鸣器播放《最炫民族风》的节目!

# include & ltreg 51 . h & gt;

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;

宋();

}

}

}

供你参考哦