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

📄 key.c

📁 LCD12864
💻 C
字号:
#include <t89c51rd2.h>
#include "key.h"
#include "utili.h"

uchar cur_key;
uchar pre_key;

void (*onKeyUp)(uchar key);
void (*onKeyDown)(uchar key);

void KeyInit()
{
	cur_key = 0;
	pre_key = 0;
	
	onKeyUp = NULL;
	onKeyDown = NULL;
}

uchar ReadKey(void) 
{
	uchar key;
	
	//这里读串口发过来的键盘指令,如果有则优先串口指令
	//
	//
	
	//以下是检测本机键盘接口
	key = (~P0) & 0x1f; //
	if( key == 0)
		return 0;
	
	delay(250);

	key = (~P0) & 0x1f; //

	if( key == 0)
		return 0;

	return key;	
}

//键盘扫描,并产生相应的事件
void KeyEvent()
{
	cur_key = ReadKey();
	
	if( cur_key != 0)	//有键盘按下
	{
		if( pre_key == cur_key)	//前一个键没释放
			return;
			
		pre_key = cur_key;
		
		if( onKeyDown != NULL) onKeyDown(cur_key);
	}
	else
	{
		if( pre_key != 0)	//有按键刚放开
		{
			if( onKeyUp != NULL) onKeyUp(pre_key);
		}
		pre_key = 0;
	}
}

⌨️ 快捷键说明

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