1、51单片机蜂鸣器播放音乐代码生日快乐两只蝴蝶祝你平安51单片机蜂鸣器播放音乐代码(生日快乐-两只蝴蝶-祝你平安) /*生日快乐歌曲*/#include #define uint unsigned int #define uchar unsigned charsbit beep = P15;uchar code SONG_TONE=212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0;uchar code SONG_LONG=9,3,12,12,1
2、2,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0;/延时void DelayMS(uint x)uchar t;while(x-) for(t=0;t120;t+);void PlayMusic()uint i=0,j,k;while(SONG_LONGi!=0|SONG_TONEi!=0) /播放各个音符,SONG_LONG 为拍子长度 for(j=0;jSONG_LONGi*20;j+) beep=beep;/SONG_TONE 延时表决定了每个音符的频率 for(k=0;kSONG_TONEi/3;k+); DelayMS
3、(10); i+;void main()beep=0;while(1)PlayMusic(); /播放生日快乐DelayMS(500); /播放完后暂停一段时间两只蝴蝶:#include / 这是 单片机音乐代码生成器 生成的代码#define uchar unsigned charsbit beepIO=P15; / 输出 为 P1.5 可以修改 成 其它 IO 口uchar m,n; uchar code T492=0,0,0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0xB9,0xFB,0x03,0xFB
4、,0x4A,0xFB,0x8F,0xFB,0xCF,0xFC,0x0B,0xFC,0x43,0xFC,0x78,0xFC,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,0xFE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0x02,0xFE,0xE3,0xFE,0xF3,0xFF,0x02,0xFF,0x10,0xFF,0x1D,0xFF
5、,0x2A,0xFF,0x36,0xFF,0x42,0xFF,0x4C,0xFF,0x56,0xFF,0x60,0xFF,0x69,0xFF,0x71,0xFF,0x79,0xFF,0x81;uchar code music2=0,4,23,4,21,4,23,16,23,4,21,4,23,4,21,4,19,16,16,4,19,4,21,8,21,4,23,4,21,4,19,4,16,4,19,4,14,24,23,4,21,4,23,16,23,4,21,4,23,4,21,4,19,24,16,4,19,4,21,8,21,4,23,4,21,4,19,4,16,4,19,4,21
6、,24,23,4,21,4,23,16,23,4,21,4,23,4,21,4,19,16,16,4,19,4,21,8,21,4,23,4,21,4,19,4,16,4,19,4,14,24,23,4,26,4,26,16,26,4,28,4,26,4,23,24,21,4,23,4,21,8,21,4,23,4,21,4,19,4,16,4,16,2,19,2,19,24,0,20,26,4,26,4,28,4,31,4,30,4,30,4,28,4,23,4,21,4,21,4,23,16,0,4,23,4,23,4,26,4,28,8,28,12,16,4,23,4,21,4,21,2
7、4,23,4,26,4,26,4,23,4,26,8,0,4,31,8,30,4,28,4,30,4,23,8,0,4,28,4,28,4,30,4,28,4,26,4,23,4,21,8,23,4,21,4,23,4,26,16,0xFF,0xFF;void delay(uchar p) uchar i,j; for(;p0;p-) for(i=181;i0;i-) for(j=181;j0;j-);void pause() uchar i,j; for(i=150;i0;i-) for(j=150;j0;j-);void T0_int() interrupt 1 beepIO=!beepI
8、O; TH0=Tm0; TL0=Tm1;void main() uchar i=0; TMOD=0x01; EA=1; ET0=1; while(1) m=musici0;n=musici1; if(m=0x00) TR0=0;delay(n);i+; else if(m=0xFF) TR0=0;delay(30);i=0; else if(m=musici+10) TR0=1;delay(n);TR0=0;pause();i+; else TR0=1;delay(n);i+; 祝你平安:#include reg52.hunsigned char Count;sbit _Speak =P15
9、; unsigned char code SONG = /祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x
10、10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x
11、20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x
12、20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00;void Time0_Init() TMOD = 0x01; IE = 0x82; TH0 = 0xD8; TL0 = 0xEF; /12MZ晶振,10msvoid
13、 Time0_Int() interrupt 1 TH0 = 0xD8; TL0 = 0xEF; Count+; /长度加1/*-功能:1MS延时子程序-*/void Delay_xMs(unsigned int x) unsigned int i,j; for( i =0;i x;i+ ) for( j =0;j3;j+ ); void Play_Song(unsigned char i) unsigned char Temp1,Temp2; unsigned int Addr; Count = 0; /中断计数器清0 Addr = i * 217; while(1) Temp1 = SONGAddr+; if ( Temp1 = 0xFF ) /休止符 TR0 = 0; Delay_xMs(100); else if ( Temp1 = 0x00 ) /歌曲结束符 return; else Temp2 = SONGAddr+; TR0 = 1; while(1) _Speak = _Speak; Delay_xMs(Temp1); if ( Temp2 = Count ) Count = 0; break; /*-功能:主程序-*/void main() Time0_Init(); /定时器0中断初始化 while(1) Play_Song(0); /播放
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1