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

📄 keybd.c

📁 键盘扫描的例子,包括了按键滤波和长按检测
💻 C
字号:

#include "upsd3200.h"
#include "NGTPOS.h"

#define Key_KeepTime 12000
#define Key_KeepBase 10000
data uchar Key_Ch1,Key_Ch2,Key_Ch3,Key_KeepFlag;
data uint Key_Keep;
data unsigned long Key_Code;

uchar Key_Scan(void)
{
	data uchar K1,K2,K3;
	 Key_V2=1; Key_V3=1;
	Key_V1=0; K1=(~Key_H)>>3; Key_V1=1;
	Key_V2=0; K2=(~Key_H)>>3; Key_V2=1;
	Key_V3=0; K3=(~Key_H)>>3; Key_V3=1;
	if ((K1==Key_Ch1)&&(K2==Key_Ch2)&&(K3==Key_Ch3))
	{ Key_Keep++;
	  if ((K1==0)&&(K2==0)&&(K3==0)) {Key_Keep=Key_KeepBase; Key_KeepFlag=0;} //无按键复原
	  if (Key_Keep>Key_KeepTime)
	  {
	   if (Key_KeepFlag==1) Key_Code=0x0100; //如果是本来保持住的按键
		else Key_Code=0;
	   Key_Keep=0; Key_KeepFlag=1; //按键保持
	   Key_Code += Key_Ch1; Key_Code <<= 8;
	   Key_Code += Key_Ch2; Key_Code <<= 8;
	   Key_Code += Key_Ch3;
	   return(1);}
	}
	else
	{ Key_Keep=Key_KeepBase; Key_KeepFlag=0; //按键变化复原
	  Key_Ch1=K1; Key_Ch2=K2; Key_Ch3=K3;
	}
	return(0);
}

⌨️ 快捷键说明

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