scan_key.c

来自「2005年全国大学生电子设计竞赛论文集」· C语言 代码 · 共 97 行

C
97
字号
#include <SPCE061V004.H>
//变量声明

extern unsigned int key_value;
unsigned int set_bit=0;			//光标闪动位置
unsigned int set_sign=0;		//电流符号(方向)
unsigned int set_value=0;		//电流设定值
unsigned int set_mode=0;		//设定标志位,set_mode=0时处于非设定状态
								//			  set_mode=1时处于设定状态


//函数声明
void keyboard(void);
void scankey(void);
//=========================================================================================
//
//=========================================================================================
void scankey(void)
{
	keyboard();
	switch (key_value)
	{
		case 0:	break;		//没按键
		case 1:	
			if (set_mode)
				switch (set_bit) 
				{
					case 0:	set_value=(set_value+1)%2001;break;
					case 1: set_value=(set_value+10)%2001;break;
					case 2: set_value=(set_value+100)%2001;break;
					case 3: set_value=(set_value+1000)%2001;break;
					case 4:	set_sign=(set_sign+1)%2;
					default:break;
				}
			asm("INT OFF");	
			LCD_Set_Num();
			asm("INT IRQ");
			key_value=0;
			break;
		case 2:
			if (set_mode) 
				switch (set_bit) 
				{
					case 0:	set_value=(set_value-1+2001)%2001;break;
					case 1: set_value=(set_value-10+2001)%2001;break;
					case 2: set_value=(set_value-100+2001)%2001;break;
					case 3: set_value=(set_value-1000+2001)%2001;break;
					case 4: set_sign=(set_sign+1)%2;
					default:break;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
				}
			asm("INT OFF");
			LCD_Set_Num();
			asm("INT IRQ");
			key_value=0;
			break;		
		case 3:
			if (set_mode) 
			{
				set_bit=(set_bit+1)%5;
				asm("INT OFF");
				LCD_Set_Shift();
				asm("INT IRQ");
			}
			key_value=0;
			break;
		case 4:
			if (set_mode) 
			{
				set_bit=(set_bit-1+5)%5;
				asm("INT OFF");
				LCD_Set_Shift();
				asm("INT IRQ");
			}
			key_value=0;
			break;
		case 5:
			set_mode=(set_mode+1)%2;
			if (set_mode) 
			{
				set_bit=0;	
				asm("INT OFF");		
				LCD_Set_Ini();
				asm("INT IRQ");				
			}
			else
				asm("INT OFF");
				LCD_Set_Finish();
				asm("INT IRQ");
			key_value=0;
			break;
		default: 
			break;
	}
}


⌨️ 快捷键说明

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