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

📄 key.c

📁 自己设计的pic单片机开发板源程序和说明书(内有原理图)支持pic16系列28脚和40脚器件。串口输出信息。4个LED数码管驱动;4个LED驱动;4个按键驱动;1个RS232接口;1个RS485接口;
💻 C
字号:
//#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -