📄 key.h
字号:
#ifndef KEY_H
#define KEY_H
#include<reg52.h>
unsigned char KEY=0; //用于读取键盘值,4*4键盘从第一行第一个开始到第四行最后一个的编码为1-16,第没有按下时应令KEY=0
void delaykey(unsigned char);
void keyreak();
//==============延时=======================
void delaykey(unsigned char t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<200;j++);
}
//=========================================
/*================================================*/
/* 读键盘值 */
/*================================================*/
//将读到到的键盘值放入全局变量KEY中
void keyread()
{
unsigned char x,y,z;
P2=0xff;
P2=0xf0; //列扫描
if(P2!=0x0f) //若有按下信号
{
delaykey(30);
y=P2; //保存行扫描时有键按下时状态
P2=0x0f; //行扫描
delaykey(30);
x=P2; //保存列扫描时有键按下时状态
z=x|y; //取出键值
switch (z) //判断键值
{
case 0xe7: KEY=13;break;
case 0xd7: KEY=9;break;
case 0xb7: KEY=5;break;
case 0x77: KEY=1;break;
case 0xeb: KEY=14;break;
case 0xdb: KEY=10;break;
case 0xbb: KEY=6;break;
case 0x7b: KEY=2;break;
case 0xed: KEY=15;break;
case 0xdd: KEY=11;break;
case 0xbd: KEY=7;break;
case 0x7d: KEY=3;break;
case 0xee: KEY=16;break;
case 0xde: KEY=12;break;
case 0xbe: KEY=8;break;
case 0x7e: KEY=4;break;
}
delaykey(30);
}
P2=0xff; //回复
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -