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

📄 key.c

📁 单片机程序 接上一个header.rar文件的
💻 C
字号:
//-------------------------------------------------------------
// ID Code      : 
// Description	:
// Update Note  : 
//
//-------------------------------------------------------------

#define _KEY_C

#include "header\include.h"

//--------------------------------------------------
// Global Variables
//--------------------------------------------------
UINT8 SystemState = NormalDisplay;
UINT8 mdfitem = mdfhour;

UINT8 Keymsg = nokeymsg;

//--------------------------------------------------
// Description  :
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void KeyHandler(void)
{
	KeyScan();
	switch (SystemState)
	{
		//---------------------------
		case NormalDisplay:
			switch (Keymsg)
			{
				case nokeymsg:
					break;	

				case key1msg:
					SystemState = (SystemState + 1) % max_state_amount;
					mdfitem =  mdfhour;
					break;

				case key2msg:					
					break;

				case key3msg:
					break;	
				
				default :
					break;
			}

			break;
		//---------------------------
		case ModifyTime:
			switch (Keymsg)
			{
				case nokeymsg:
					break;	

				case key1msg:
					SystemState = (SystemState + 1) % max_state_amount;
					mdfitem =  mdfhour;
					break;				

				case key2msg:
					mdfitem = (mdfitem+1)%max_item_amount;
					break;

				case key3msg:
					MdfTimeProc( &stCurrTime);
					UpdataTime(&stCurrTime);
					break;	
				
				default :
					break;
			}
			break;
		//---------------------------
		case AlarmSet:			 
			switch (Keymsg)
			{
				case nokeymsg:
					break;	

				case key1msg:
					SystemState = (SystemState + 1) % max_state_amount;
					mdfitem =  mdfhour;
					break;				

				case key2msg:
					mdfitem = (mdfitem+1)%max_item_amount;
					break;

				case key3msg:
					MdfTimeProc(&stAlarmTime);
					UpdataTime(&stAlarmTime);
					break;	
				
				default :
					break;
			}
			break;
		//---------------------------
		default :
			break;		
	}

	#if  0//(_Use_Second_Modify  == _ENABLE)
	if((mdfitem == mdfsecond )&&(SystemState == ModifyTime))
		TR0 = 0;
	else 
		TR0 = 1;	
	#endif
}



//--------------------------------------------------
// Description  :
// Input Value  : None
// Output Value : None
//--------------------------------------------------
void KeyScan(void)
{
	P1 = 0xff; 
	_nop_();  	 _nop_();
	if(P1 == 0xff)	
	{
		Keymsg = nokeymsg;
		return;
	}
	//---------------------------------------------
	P1 = 0xff;
	Delay();
	switch (P1&0x07)
	{
		case 0x06:
			Keymsg = key1msg;
			break;
				
		case 0x05:
			Keymsg = key2msg;
			break;
				
		case 0x03:
			Keymsg = key3msg;
			break;
			
		default :
			Keymsg = nokeymsg;
			break;
	}
		
	do
	{
		P1 = 0xff;
		Display();
	}while(P1 != 0xff );
}




⌨️ 快捷键说明

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