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

📄 beep.h

📁 一个用1602显示的多功能电子钟,内有实时时钟功能和温度显示功能!
💻 H
字号:
#ifndef BEEP_H
#define BEEP_H
#include <reg52.h>
#include"key.h"
sbit beep=P3^7;

unsigned char Count=0;


/*******************************************************************
                     音乐编码存放区      
					 注意:code char 类型
*******************************************************************/
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,0x0,
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,0x6,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
};

/*************************************************************
                   延时函数
****************************************************************/
void Delay_xMs(unsigned char x)
{
  unsigned char i,j;
  for( i =0;i < x;i++ )
 {
   for( j =0;j<3;j++ );
  }
}
/***************************************************************
        定时器初始化函数
******************************************************************/
 void Time0_Init()
{
	TMOD = 0x01;
	IE|= 0x82;
	TH0  = 0xD8;
	TL0  = 0xEF;		//12MZ晶振,10ms
}
/**********************************************************************
          定时中断服务函数
*************************************************************************/
void Time0_Int() interrupt 1
{
	TH0 = 0xD8;
	TL0 = 0xEF;
	Count++;			//长度加1
}

/*****************************************************************************
                             播放子函数
******************************************************************************/  
void beeping(unsigned char frequence,unsigned char length)
{  
   	TR0=1;
 	while(1)
		{     
	  	beep = !beep;
	  	Delay_xMs(frequence);
		if ( length == Count )
			{
			Count = 0;
			break;
	     	}
		}
	TR0=0;
	beep=1;
}
/********************************************************************************
                      播放闹铃声音
********************************************************************************/
   void play_respond()
{	unsigned int i=20;
    for(;i>0;i--)
	{
		beeping(i,10);
	}	
}
/***********************************************************************************
                              播放主函数
************************************************************************************/
void Play_Song()
{
unsigned char Temp1,
               key=0;
unsigned int Addr=0,
			 Count = 0;                     //中断计数器清0
	         

while(1)
{  
    key=getch();				   //按键扫描
	if(key!=255)break;			   //若按下13,停止放音
	Temp1 = SONG[Addr++];
	if ( Temp1 == 0xFF )       //休止符
		{
		 TR0 = 0;
 		 Delay_xMs(100);
		}		
	else 
	    {
		  if ( Temp1 == 0x00 ) //歌曲结束符
			{
			return;
			}
		  else
			{	 						  
    		beeping(Temp1,SONG[Addr++]);
			}
		 }
	}
   play_respond();
}
#endif

⌨️ 快捷键说明

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