key.c

来自「自己设计的pic单片机开发板源程序和说明书(内有原理图)支持pic16系列28脚」· C语言 代码 · 共 86 行

C
86
字号
//#include "..\demo\def.h"


void key_init()
{
	enable_interrupts(GLOBAL);
	enable_interrupts(INT_RB);
	input(key1);
	input(key2);
	input(key3);
	input(key4);
}
//==============================================
int8 get_key()
{
	key_init();
	if(bit_key_prss)
	{
		keyval = keyval>>4;
		keyval &= 0x0f;
		bit_key_prss = 0;
	}
	else
	{
		keyval = 0xff;
	}
	return(keyval);
}
//==============================================
void Test_key()
{
	bit_key_prss = 0;
	puts("please press a key in board.ESC to escape\n");
	key_init();
	while(TRUE)
	{	
		if(bit_key_prss)
		{
			keyval = keyval>>4;
			keyval &= 0x0f;
			switch(keyval)
				{
					case 0x07:
						printf("key1 pressed\n");
						break;
					case 0x0b:
						printf("key2 pressed\n");
						break;
					case 0x0d:
						printf("key3 pressed\n");
						break;
					case 0x0e:
						printf("key4 pressed\n");
						break;
					default:
						break;
				}
			//	while((input_b() & 0xf0) != 0xf0);
				bit_key_prss = 0;
			//	enable_interrupts(int_rb);		
			}
		if(kbhit())
		{
			if(getc()==ESC_KEY)
			{
				disable_interrupts(GLOBAL);
				disable_interrupts(INT_RB);
				return;
			}
		}
	}
}
#int_rb
void service_rb()
{	
	if(bit_key_prss)
		return;
	keyval = input_b();
	keyval &= 0xf0;
	if(keyval == 0xf0)
		return;
	bit_key_prss = 1;
}
	

⌨️ 快捷键说明

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