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

📄 sprek.c

📁 运行于51单片机的音乐彩灯源代码
💻 C
字号:
#include "..\h\config.h"


char const aMusic1[]={
 0x18, 0x30, 0x1C, 0x10,
 0x20, 0x40, 0x1C, 0x10,
 0x18, 0x10, 0x20, 0x10,
 0x0C, 0x10, 0x18, 0x40,
 0x1C, 0x20, 0x20, 0x20,
 0x1C, 0x20, 0x18, 0x20,
 0x20, 0x80, 0x0F, 0x20,
 0x30, 0x1C, 0x10, 0x18,
 0x20, 0x15, 0x20, 0x1C,
 0x20, 0x20, 0x20, 0x26,
 0x40, 0x20, 0x20, 0x2B,
 0x20, 0x26, 0x20, 0x20,
 0x20, 0x30, //0xFF, 0xFF,
 0x20, 0x20, 0x1C, 0x10,
 0x18, 0x10, 0x20, 0x20,
 0x26, 0x20, 0x2B, 0x20,
 0x30, 0x20, 0x2B, 0x40,
 0x20, 0x20, 0x1C, 0x10,
 0x18, 0x10, 0x20, 0x20,
 0x26, 0x20, 0x2B, 0x20,
 0x30, 0x20, 0x2B, 0x40,
 0x20, 0x30, 0x1C, 0x10,
 0x18, 0x20, 0x15, 0x20,
 0x1C, 0x20, 0x20, 0x20,
 0x26, 0x40, 0x20, 0x20,
 0x2B, 0x20, 0x26, 0x20,
 0x20, 0x20, 0x30, 0x80,
 0x20, 0x30, 0x1C, 0x10,
 0x20, 0x10, 0x1C, 0x10,
 0x20, 0x20, 0x26, 0x20,
 0x2B, 0x20, 0x30, 0x20,
 0x2B, 0x40, 0x20, 0x15,
 0x1F, 0x05, 0x20, 0x10,
 0x1C, 0x10, 0x20, 0x20,
 0x26, 0x20, 0x2B, 0x20,
 0x30, 0x20, 0x2B, 0x40,
 0x20, 0x30, 0x1C, 0x10,
 0x18, 0x20, 0x15, 0x20,
 0x1C, 0x20, 0x20, 0x20,
 0x26, 0x40, 0x20, 0x20,
 0x2B, 0x20, 0x26, 0x20,
 0x20, 0x20, 0x30, 0x30,
 0x20, 0x30, 0x1C, 0x10,
 0x18, 0x40, 0x1C, 0x20,
 0x20, 0x20, 0x26, 0x40,
 0x13, 0x60, 0x18, 0x20,
 0x15, 0x40, 0x13, 0x40,
 0x18, 0x80, 0x00, 0x00,

 };
const char aMusic2[]={
  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};
char const *aMusic[MUSIC_MAX];
//////////////////////////////////////////////////////////////////////////////////////////////
//** 函数名称 :
//** 函数功能 :
//** 入口参数 :             
//** 出口参数 :
//   使用方法 :
//   注意事项 :
//////////////////////////////////////////////////////////////////////////////////////////////
char MUsic_reg=0;
void  delay(char timer)
{
  while(timer--)
  {
   _nop_(); 
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();   
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();   
   _nop_();
   _nop_();
   _nop_();
   _nop_();   
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();   
   _nop_();
   _nop_();
   _nop_();
  

  }

}
//////////////////////////////////////////////////////////////////////////////////////////////
//** 函数名称 :
//** 函数功能 :
//** 入口参数 :             
//** 出口参数 :
//   使用方法 :
//   注意事项 :
//////////////////////////////////////////////////////////////////////////////////////////////
void  timer1init(void)
{
  TMOD|=0x10;
  IE|=0x88;
  TH1=0x0Dc;
  TL1=0x00;
}
void  time1start(void)
{
  TR1=1;
}
void  time1stop(void)
{
  TR1=0;
}
//////////////////////////////////////////////////////////////////////////////////////////////
//** 函数名称 :
//** 函数功能 :
//** 入口参数 :             
//** 出口参数 :
//   使用方法 :
//   注意事项 :
//////////////////////////////////////////////////////////////////////////////////////////////
void  timer1exp(void) interrupt 3
{
 MUsic_reg++; 
  TH1=0x0Dc;
  TL1=0x00; 
}
//////////////////////////////////////////////////////////////////////////////////////////////
//** 函数名称 :
//** 函数功能 :
//** 入口参数 :             
//** 出口参数 :
//   使用方法 :
//   注意事项 :
//////////////////////////////////////////////////////////////////////////////////////////////

char ID_speak=0;
 bit MUSIC_OK=1;//为1时,不允许播放音乐

void   Speak(void)
{
 int h_speak=0;
 char i=0,x=0;
 while(((i=aMusic[ID_speak][h_speak++])!=0)&&(MUSIC_OK==0)) //是停止符
 {
     x=aMusic[ID_speak][h_speak++];
      if(i==0xff)  //是停顿符
      {
 	   time1stop();
	   SPEAK=1;
	   delay(i); 
      }
	  
      else {
        
		time1start();
        while(x!=MUsic_reg)
		{
		 delay(i);
		 SPEAK=~SPEAK;
		}
		MUsic_reg=0;
        }
		SPEAK=1;
 }
 SPEAK=1;
 time1stop();
}

⌨️ 快捷键说明

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