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

📄 keyboard.c

📁 51的4*4键盘驱动当按键按下时返回一个值
💻 C
字号:
/*------------------------------
当按键按下时返回一个值(如键盘所标)且只在按下键时返回一次该值,之后返回0;无按键时返回0;

-----------------------------*/
#include <REG51F.H>
extern void delayms(unsigned int );


unsigned char readkey()
{
static unsigned char key1,key2,c[2],keyvalue;
P1=0xff;
P1=0xF0;
key1=P1;
P1=0x0F;
key2=P1;
c[0]=key1+key2;
delayms(5);
P1=0xF0;
key1=P1;
P1=0x0F;
key2=P1;
if(c[0]==(key1+key2)){	//

if((c[1]==0xff)&&(c[0]!=0xff))
{ 	
switch(c[0]){
	case 0x7e:{keyvalue=0;break;}
	case 0xee:{keyvalue=1;break;}
	case 0xed:{keyvalue=2;break;}
	case 0xeb:{keyvalue=3;break;}
	case 0xde:{keyvalue=4;break;}
	case 0xdd:{keyvalue=5;break;}
	case 0xdb:{keyvalue=6;break;}
	case 0xbe:{keyvalue=7;break;}
	case 0xbd:{keyvalue=8;break;}
	case 0xbb:{keyvalue=9;break;}
	case 0xe7:{keyvalue=10;break;}/* +1  */
	case 0xd7:{keyvalue=11;break;}/*-1  */
	case 0xb7:{keyvalue=12;break;}
	case 0x77:{keyvalue=13;break;}
	case 0x7d:{keyvalue=14;break;} /*  ent*/
	case 0x7b:{keyvalue=15;break;} /*   esc   */
	default: keyvalue=0;
	}}
	else keyvalue=0;
	c[1]=c[0];

	return keyvalue;
	
}  return 0;
}

⌨️ 快捷键说明

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