⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yingyue.c

📁 报警电路编译通过...大家下去直接用.支持程序员联合开发网
💻 C
字号:
/*  播放两首音乐(C语言)

*********************************
测试通过*/

#include<reg51.h>

void Music(unsigned char number);
void delay10ms(unsigned char time);
void delay50us(unsigned char time);
unsigned char code SOUNDLONG[];
unsigned char code SOUNDTONE[];
sbit P3_4=P3^4;
void main()
{
 while(1)
 {
  Music(1);  //生日快乐
  delay10ms(250);
  delay10ms(250);
  //Music(2);  //三轮车
  //delay10ms(250);
  //delay10ms(250);
 }
}

void Music(unsigned char number)
{
 unsigned int k,n;
 unsigned int SoundLong,SoundTone;
 unsigned int i,j,m;

 for(k=0;k<number-1;k++)
 {
  while(SOUNDLONG[i] !=0){i++;}
  i++;
  if(i>=25) i=0;//若要播放两段音乐改为57
 }
 for(k=0;k<number-1;k++)
 {
  while(SOUNDTONE[j] !=0){j++;}
  j++;
  if(j>=25) j=0;
 }

 do
 { 
  if(i>=25) i=0;
  if(j>=25) j=0;
  SoundLong=SOUNDLONG[i];
  SoundTone=SOUNDTONE[j];
  i++;
  j++;
 
  for(n=0;n<SoundLong;n++)
  {
   for(k=0;k<12;k++)
   {
    P3_4=0;
    for(m=0;m<SoundTone/2;m++)
     ; 
    P3_4=1;
    for(m=0;m<SoundTone/2;m++)
     ;
   }
  }
  delay50us(6);
 }while((SOUNDLONG[i] !=0) || (SOUNDTONE[j] !=0));
}

//延时程序
void delay10ms(unsigned char time)
{
 unsigned char a,b,c;
 for(a=0;a<time;a++)
  for(b=0;b<10;b++)
   for(c=0;c<120;c++)
   ;
}
void delay50us(unsigned char time)
{
 unsigned char a,b;
 for(a=0;a<time;a++)
  for(b=0;b<6;b++)
   ;
}

unsigned char code SOUNDLONG[]=
 {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 //生日快乐end
  //6,6,9,3,6,6,12,
  //6,6,6,6,6,6,12,
  //6,6,9,3,6,6,9,3,
  //6,3,3,6,3,3,6,6,9,
  //0 //三轮车end
 };

unsigned char code SOUNDTONE[]=
{
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 //生日快乐end
//239,239,212,189,159,159,189,
//159,159,142,126,120,120,159,
//120,120,142,159,189,142,159,189,
//239,212,189,159,142,159,189,212,239,
//0 //三轮车end
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -