4x4key.c

来自「与C51相关模块LCD,24CXX,等的源代码程序」· C语言 代码 · 共 32 行

C
32
字号
//--------------------------------------------------------
#include <at89x51.h>
#include "4X4Key.h"
//--------------------------------------------------------
#define KEYPORT P1
#define HLINES	4
#define VLINES	4
//--------------------------------------------------------
unsigned char GetKey(void);
//--------------------------------------------------------
static unsigned char oldkey=0;
//--------------------------------------------------------
unsigned char GetKey(){
	unsigned char i,j,tmp;
	
	KEYPORT=0xf0;
	tmp=~(KEYPORT|0x0f);
	if(!tmp){oldkey=NOKEY;return NOKEY;}
	if(oldkey!=NOKEY)return NOKEY;

	for(i=0;i<HLINES;i++){
		KEYPORT=~(1<<i);
		tmp=~(KEYPORT|0x0f);	
		for(j=0;j<VLINES;j++)if(tmp==(0x10<<j)){
			oldkey=i*4+j;
			return oldkey;
		}
	}
	return NOKEY;
}
//--------------------------------------------------------

⌨️ 快捷键说明

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