當前位置:編程學習大全網 - 編程語言 - 求51單片機用蜂鳴器演奏《最炫民族風》 程序!

求51單片機用蜂鳴器演奏《最炫民族風》 程序!

#include <reg51.h>

sbit speaker=P1^2;

unsigned char timer0h,timer0l,time;

//歌 譜

code unsigned char sszymmh[]={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,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,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,

};

void delay(unsigned char t)

{

unsigned char t1;

unsigned long t2;

for(t1=0;t1<t;t1++)

{

for(t2=0;t2<2000;t2++)

{

;

}

}

TR0=0;

}

void t0int() interrupt 1

{

TR0=0;

speaker=!speaker;

TH0=timer0h;

TL0=timer0l;

TR0=1;

}

void song()

{

TH0=timer0h;

TL0=timer0l;

TR0=1;

delay(time);

}

void main(void)

{

unsigned char k;

unsigned int i;

TMOD=1; //置CT0定時工作方式1

EA=1;

ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷

while(1)

{

i=0;

while(i<1577){ //音樂數組長度 ,唱完從頭再來

k=sszymmh[i]+7*sszymmh[i+1]-1;

timer0h=FREQH[k];

timer0l=FREQL[k];

time=sszymmh[i+2];

i=i+3;

song();

}

}

}

給妳參考壹下噢

  • 上一篇:數控車床怎麽維修
  • 下一篇:介紹常用的OpenGL的函數(定義+功能)
  • copyright 2024編程學習大全網