51单片机蜂鸣器播放音乐代码生日快乐两只蝴蝶祝你平安.docx
- 文档编号:8317947
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:7
- 大小:15.69KB
51单片机蜂鸣器播放音乐代码生日快乐两只蝴蝶祝你平安.docx
《51单片机蜂鸣器播放音乐代码生日快乐两只蝴蝶祝你平安.docx》由会员分享,可在线阅读,更多相关《51单片机蜂鸣器播放音乐代码生日快乐两只蝴蝶祝你平安.docx(7页珍藏版)》请在冰豆网上搜索。
51单片机蜂鸣器播放音乐代码生日快乐两只蝴蝶祝你平安
51单片机蜂鸣器播放音乐代码(生日快乐-两只蝴蝶-祝你平安)
/*生日快乐歌曲*/
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitbeep=P1^5;
ucharcodeSONG_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};
ucharcodeSONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,
9,3,12,12,12,12,12,9,3,12,12,12,24,0};
//延时
voidDelayMS(uintx)
{
uchart;
while(x--)for(t=0;t<120;t++);
}
voidPlayMusic()
{
uinti=0,j,k;
while(SONG_LONG[i]!
=0||SONG_TONE[i]!
=0)
{//播放各个音符,SONG_LONG为拍子长度
for(j=0;j { beep=~beep; //SONG_TONE延时表决定了每个音符的频率 for(k=0;k } DelayMS(10); i++; } } voidmain() { beep=0; while (1) { PlayMusic();//播放生日快乐 DelayMS(500);//播放完后暂停一段时间 } } 两只蝴蝶: #include #defineucharunsignedchar sbitbeepIO=P1^5;//输出为P1.5可以修改成其它IO口 ucharm,n; ucharcodeT[49][2]={{0,0}, {0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,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,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81} }; ucharcodemusic[][2]={{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,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,24},{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}}; voiddelay(ucharp) { uchari,j; for(;p>0;p--) for(i=181;i>0;i--) for(j=181;j>0;j--); } voidpause() { uchari,j; for(i=150;i>0;i--) for(j=150;j>0;j--); } voidT0_int()interrupt1 { beepIO=! beepIO; TH0=T[m][0];TL0=T[m][1]; } voidmain() { uchari=0; TMOD=0x01;EA=1;ET0=1; while (1) { m=music[i][0];n=music[i][1]; if(m==0x00) {TR0=0;delay(n);i++;} elseif(m==0xFF) {TR0=0;delay(30);i=0;} elseif(m==music[i+1][0]) {TR0=1;delay(n);TR0=0;pause();i++;} else {TR0=1;delay(n);i++;} } } 祝你平安: #include"reg52.h" unsignedcharCount; sbit_Speak=P1^5; unsignedcharcodeSONG[]={//祝你平安 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,0x10,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,0x20,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,0x20,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}; voidTime0_Init() { TMOD=0x01; IE=0x82; TH0=0xD8; TL0=0xEF;//12MZ晶振,10ms } voidTime0_Int()interrupt1 { TH0=0xD8; TL0=0xEF; Count++;//长度加1 } /*------------------------------------------------- 功能: 1MS延时子程序 -------------------------------------------------*/ voidDelay_xMs(unsignedintx) { unsignedinti,j; for(i=0;i { for(j=0;j<3;j++); } } voidPlay_Song(unsignedchari) { unsignedcharTemp1,Temp2; unsignedintAddr; Count=0;//中断计数器清0 Addr=i*217; while (1) { Temp1=SONG[Addr++]; if(Temp1==0xFF)//休止符 { TR0=0; Delay_xMs(100); } elseif(Temp1==0x00)//歌曲结束符 { return; } else { Temp2=SONG[Addr++]; TR0=1; while (1) { _Speak=~_Speak; Delay_xMs(Temp1); if(Temp2==Count) { Count=0; break; } } } } } /*------------------------------------------------- 功能: 主程序 -------------------------------------------------*/ voidmain() { Time0_Init();//定时器0中断初始化 while (1) { Play_Song(0);//播放 } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 蜂鸣器 播放 音乐 代码 生日快乐 蝴蝶 平安