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

📄 time.c

📁 abov公司的单片机器MC80F7208的演示程序,C代码,包含LCD,I2C,KEY,ADC,NVM,TIME等内容,适合初学者熟悉.
💻 C
📖 第 1 页 / 共 2 页
字号:
//--------------------------------------------------------------- 
//	Note Frequency @ 4MHz Crystal Oscillator 
//--------------------------------------------------------------- 
/*
#define	Do1		0xFB		// 131Hz
#define	Re1		0xF4		// 147Hz
#define	Mi1		0xEE		// 165Hz
#define	Fa1		0xEC		// 175Hz
#define	Sol1		0xE7		// 197Hz
#define	Ra1		0xE3		// 220Hz
#define	Chi1		0xBF		// 247Hz

#define	Do2		0xFB		// 262Hz
#define	Re2		0xF4		// 294Hz
#define	Mi2		0xEE		// 330Hz
#define	Fa2		0xEC		// 349Hz
#define	Sol2		0xE7		// 392Hz
#define	Ra2		0xE3		// 440Hz			坷纳胶飘扼 扁霖 林颇荐 
*/
#define	Chi2		0xFE		// 494 --> 496Hz

#define	Do3		0xFB		// 523 --> 512Hz
#define	Re3		0xF4		// 587 --> 590Hz
#define	Mi3		0xEE		// 659 --> 665Hz
#define	Fa3		0xEC		// 698 --> 694Hz
#define	Sol3		0xE7		// 784 --> 781Hz
#define	Ra3		0xE3		// 880 --> 868Hz
#define	Chi3		0xBF		// 988 --> 976Hz

#define	Do4		0xBB		// 1046 --> 1042Hz
#define	Re4		0xB4		// 1175 --> 1179Hz
#define	Mi4 		0xAE		// 1319 --> 1330Hz
#define	Fa4		0xAC		// 1397 --> 1389Hz
#define	Sol4		0xA7		// 1568 --> 1563Hz
#define	Ra4		0xA3		// 1760 --> 1736Hz
#define	Chi4		0x7F		// 1975 --> 1953Hz

#define	Do5		0x7B		// 2092 --> 2083Hz
#define	Re5		0x74		// 2350 --> 2358Hz
#define	Mi5 		0x6E		// 2638 --> 2660Hz
#define	Fa5		0x6C		// 2794 --> 2778Hz
#define	Sol5		0x67		// 3136 --> 3125Hz
#define	Ra5		0x62		// 3520 --> 3571Hz
#define	Chi5		0x3E		// 3950 --> 3968Hz

//--------------------------------------------------------------- 
//     Melody : "炉啊"  
//--------------------------------------------------------------- 
CODE uchar Tab_Beep_JjangGa[] =
{	Allegro/16,Ra4,				// 傈林邦  
	Allegro/16,Chi4,				//    
	Allegro/16,Do5,				//
	Allegro/16,Ra4,				//     
	Allegro/8, Ra4,				//
	Allegro/8, Mi4,				//
	Allegro/8, Fa4,				//
	Allegro/8, Re4,				//
	Allegro/8, Mi4,				//
	Allegro/8, Do4,				//

	Allegro/16,Chi3,				//  
	Allegro/16,Do4,				//    
	Allegro/16,Re4,				//
	Allegro/16,Mi4,				//     
	Allegro/8, Do4,				//     
	Allegro/8, Chi3,				//
	Allegro/8, Ra3,				//
	Allegro/8, Sol3-3,			// #
	Allegro/8, Ra3,				// 

	Allegro/1, PAUSE,				//    
	//-------------------------------------------------
	Allegro/8, Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/8, Mi4,				//    
	Allegro/8, Do4,				//    
	Allegro/4, Re4-2,				//    
	Allegro/8, Re4-3,				// #   

	Allegro/16,Chi3,				//    
	Allegro/16,Chi3,				//    
	Allegro/8, Re4,				//    
	Allegro/16,Re4,				//    
	Allegro/16,Re4,				//    
	Allegro/8, Re4,				//    
	Allegro/8, Do4,				//    
	Allegro/4, Ra3,				//    
	Allegro/4, PAUSE,				//    

	Allegro/8, Ra3,				//    
	Allegro/16,Ra3,				//    
	Allegro/16,Ra3,				//    
	Allegro/8, Ra3,				//    
	Allegro/8, Ra4,				//    
	Allegro/8, Sol4,				//    
	Allegro/16,Fa4,				//    
	Allegro/16,Fa4,				//    
	Allegro/8, Fa4,				//    

	Allegro/8, Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/16,Do4,				//    
	Allegro/8, Re4,				//    
	Allegro/4, Mi4,				//   
	Allegro/4, PAUSE,				//  

	Allegro/8, Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/16,Mi4,				//    
	Allegro/8, Mi4,				//    
	Allegro/16,Do4,				//    
	Allegro/4, Re4-3,				// #   
	Allegro/8, Re4-3,				//   
	
	Allegro/16,Chi3,				//    
	Allegro/16,Chi3,				//    
	Allegro/8, Re4,				//    
	Allegro/16,Re4,				//    
	Allegro/16,Re4,				//    
	Allegro/8, Re4,				//    
	Allegro/8, Mi4,				//    
	Allegro/4, Do4,				//    
	Allegro/4, PAUSE,				//   

	Allegro/8, Mi4,				//   
	Allegro/16,Mi4,				//     
	Allegro/16,Ra4,				//   
	Allegro/16,Ra4,				//   
	Allegro/8, Ra4,				//   
	Allegro/4, Do5,				//   
	Allegro/8, Chi4,				//   
	Allegro/8, Ra4,				//   
	Allegro/8, Do5,				//   
	Allegro/16,Do5,				//   
	Allegro/16,Chi4,				//   
	Allegro/8, Chi4,				//   
	Allegro/16,Chi4,				//   
	Allegro/4, Ra4,				//   
	Allegro/4, PAUSE,				//   

	//--------------------------------------
	Allegro/16,Ra4,				//饶放备 
	Allegro/16,Chi4,				//    
	Allegro/16,Do5,				//
	Allegro/16,Ra4,				//     
	Allegro/8, Ra4,				//
	Allegro/8, Mi4,				//
	Allegro/8, Fa4,				//
	Allegro/8, Re4,				//
	Allegro/8, Mi4,				//
	Allegro/8, Do4,				//

	Allegro/16,Chi3,				//  
	Allegro/16,Do4,				//    
	Allegro/16,Re4,				//
	Allegro/16,Mi4,				//     
	Allegro/8, Do4,				//     
	Allegro/8, Chi3,				//
	Allegro/8, Ra3,				//
	Allegro/8, Sol3-3,			// #
	Allegro/4, Ra3,				// 

	Allegro/2, PAUSE,				//    

	Allegro/16,Ra4,				// 
	Allegro/16,Chi4,				//    
	Allegro/16,Do5,				//
	Allegro/16,Ra4,				//     
	Allegro/8, Ra4,				//
	Allegro/8, Mi4,				//
	Allegro/8, Fa4,				//
	Allegro/8, Re4,				//
	Allegro/8, Mi4,				//
	Allegro/8, Do4,				//

	Allegro/16,Chi3,				//  
	Allegro/16,Do4,				//    
	Allegro/16,Re4,				//
	Allegro/16,Mi4,				//     
	Allegro/8, Do4,				//     
	Allegro/8, Chi3,				//
	Allegro/8, Ra3,				//
	Allegro/8, Sol3-3,			// #
	Allegro/8, Ra3,				//------------
	EOT,EOT  					// End of table
};

//--------------------------------------------------------------- 
//     Melody sound : "绊氢狼 航"  
//--------------------------------------------------------------- 
CODE uchar Tab_Beep_Home[] =
{	Andante/8,Sol3,				//  
	Andante/100,PAUSE,			//     
	Andante/8,Sol3,				//    
	Andante/16,Mi3,				//
	Andante/16,Fa3,				//     
	Andante/8,Sol3,				//
	Andante/8,Ra3,				//
	Andante/100,PAUSE,			//     
	Andante/8,Ra3,				//    
	Andante/4,Sol3,				//
	Andante/100,PAUSE,			//     
	Andante/8,Sol3,				//    
	Andante/8,Do4,				//
	Andante/8,Mi4,				//
	Andante/16,Re4,				//
	Andante/16,Do4,				//
	Andante/2, Re4,				//
	Andante/8,Mi4,				//
	Andante/100,PAUSE,			//     
	Andante/8,Mi4,				//
	Andante/8,Re4,				//
	Andante/8,Re4,				//
	Andante/8,Do4,				//
	Andante/16,Re4,				//
	Andante/16,Do4,				//
	Andante/4,Ra3,				//
	Andante/8,Sol3,				//
	Andante/100,PAUSE,			//     
	Andante/8,Sol3,				//
	Andante/100,PAUSE,			//     
	Andante/8,Sol3,				//
	Andante/16,Mi3,				//
	Andante/16,Re3,				//
	Andante/2,Do3,				// --------------
	EOT,EOT  					// End of table
};

//--------------------------------------------------------------- 
//     off sound : "荤扼咙 瓤苞澜"
//--------------------------------------------------------------- 
CODE uchar Tab_Beep_Off[]=			// 
{	Andante/60,Mi4,				//  
	Andante/60,Re4,				//    
	Andante/60,Do4,				//
	Andante/60,Chi3,				//
	Andante/50,Ra3,				//     
	Andante/50,Sol3,				//
	Andante/50,Fa3,				//    
	Andante/30,Mi3,				//
	Andante/30,Re3,				//    
	Andante/20,Do3,				//
	EOT,EOT  					// End of table
};

//--------------------------------------------------------------- 
//     1736 Hz beep sound table 
//--------------------------------------------------------------- 
CODE uchar Tab_Alarm_High[]=
{	Andante/20,Ra4,				// 1.736 kHz
	Andante/50,PAUSE,				//    
	Andante/20,Ra4,				//
	Andante/50,PAUSE,				//     
	Andante/20,Ra4,				//
	Andante/20,PAUSE,				//     
	Andante/20,Ra4,				//
	Andante/50,PAUSE,				//    
	Andante/20,Ra4,				//
	Andante/50,PAUSE,				//    
	Andante/20,Ra4,				//
	EOT,EOT  					// End of table
};
//--------------------------------------------------------------- 
//     521 Hz beep sound table 
//--------------------------------------------------------------- 
CODE uchar Tab_Beep_Low[]=
{	Andante/20,Do3,				// 521 Hz
	Andante/50,PAUSE,				//    
	Andante/20,Do3,				//
	Andante/50,PAUSE,				//     
	Andante/20,Do3,				//
	Andante/8, PAUSE,				//     
	Andante/20,Do3,				//
	Andante/50,PAUSE,				//    
	Andante/20,Do3,				//
	Andante/50,PAUSE,				//    
	Andante/20,Do3,				//
	EOT,EOT  					// End of table
};
//--------------------------------------------------------------- 
//	task	: Melody start 
//--------------------------------------------------------------- 

void Melody_Out(void)				//
{
	TM2		= 0x00;			//
	TDR2		= 249;			// 16ms interval  
	TM2		= 0x13;			// T2 psc = 64us 

	rMelody_cnt = 1;  			// 
	T2E	= ON;					// Timer2 interrupt enable 
}

//==================================================================
//	task	: Time check process  
//==================================================================
//--------------------------------------------------------------- 
//     task  : Timer2 25 mSec time interval interrupt 
//--------------------------------------------------------------- 

void T2_Int_Handler(void)				// bit timer 
{
	T2IF	= OFF;					// 06-07-25 appended ! 

	if (rMelody_cnt) 					// 
		rMelody_cnt--;				// 50 x N   ms 
	else
	{	iTemp = *wMelody_Ptr++;			//
		if (iTemp == EOT)				// 
		{	T2E	= OFF;			//
			R0FUNC= 0x00;			// pulse out 
		}
		else	rMelody_cnt = iTemp;		//
		
		iTemp = *wMelody_Ptr++;			// 
		if(iTemp == PAUSE) 			//
			R0FUNC= 0x00;			// pulse out 
		else if (iTemp != EOT)			// 	
		{	BUZR  = iTemp;			//
			T2E	= ON;				// timer2 interrupt enable 
			R0FUNC= 0x10;			// pulse out 
		}
	}
//	rStop_Timer	= 250;				// 20ms x 150 = 3sec delay before STOP mode in 
}

//---------------------------------------------------------------
//	Clock count and display 
//---------------------------------------------------------------

void Process_Time(void)
{
	if(f_Minute)						//
	{	f_Minute = OFF;					//
		rMinute++;						// Which minute?   
		if(rMinute > 59)					// 0~59 
		{	rMinute = 0;				//
			rHour++;					// Which hour?
			if (rHour > 23)				// 0~23
			{	rHour = 0;				// 
				rDate++;				// Which date?	
				if (Check_Last_Date());		// 30/31 or 28/29 modification 
				{	rDate = 1;			// 
					rMonth++;			// 1~12 Which month?
					if (rMonth > 12)		//
					{	rMonth = 1;		//
						rYear++;		// 2000~2099 Which year?
					}				// 
				}					//
				Check_Week_Day();			// 0~6 Which week day?  
			}
		}

		Clock_Hex_Decimal();				// change hex to decimal for LCD 


		if((rHour == rAlram_Hour)&&(rMinute == rAlram_Minute))	//
			rMelody_Mode = BEEP_ALARM;					// check Alarm 
	}	



	switch(rMelody_Mode)							// melody service 
	{	
		case	BEEP_ALARM:							//
			(uchar *)wMelody_Ptr = &Tab_Alarm_High[0];	// 
			Melody_Out();						// 
		break;								//

		case	BEEP_OFF:							//
			(uchar *)wMelody_Ptr = &Tab_Beep_Off[0];		// 
			Melody_Out();						// 
		break;								//
 
		case	BEEP_ERROR:							//
			(uchar *)wMelody_Ptr = &Tab_Beep_Home[0];		// 
			Melody_Out();						// 
		break;								//
		
		case	BEEP_LOW:							//
			(uchar *)wMelody_Ptr = &Tab_Beep_Low[0];		// 
			Melody_Out();						// 
		break;								// 

		case	BEEP_JjangGa:						//
			(uchar *)wMelody_Ptr = &Tab_Beep_JjangGa[0];	// 
			Melody_Out();						// 
		break;								// 
	} 
	rMelody_Mode = BEEP_NONE;						// 

}

//==================================================================
/*     the end of time.C							*/

⌨️ 快捷键说明

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