📄 key.c
字号:
#include<main.h>
unsigned char k;
unsigned char Getkey()
{
P7=0xFE;
if(P7==0xEE)return 1;
if(P7==0xDE)return 2;
if(P7==0xBE)return 3;
//if(P7==0x7E)return 10;
P7=0xFD;
if(P7==0xED)return 4;
if(P7==0xDD)return 5;
if(P7==0xBD)return 6;
//if(P7==0x7D)return 11;
P7=0xFB;
if(P7==0xEB)return 7;
if(P7==0xDB)return 8;
if(P7==0xBB)return 9;
//if(P7==0x7B)return 12;
P7=0xF7;
//if(P7==0xE7)return 13;
if(P7==0xD7)return 0;
//if(P7==0xB7)return 15;
//if(P7==0x77)return 16;
return 0;
}
void key_delay(void) //延时
{
int t;
for(t=0;t<2500;t++);
}
/*******************************键盘扫描************************************/
void keyscan(void) //键盘扫描函数
{
unsigned char a;
P7 = 0xf0; //键盘初始化
if(P7!=0xf0) //有键按下?
{
key_delay(); //延时
if(P7!=0xf0) //确认真的有键按下?
{
P7 = 0xfe; //使行线P2.4为低电平,其余行为高电平
key_delay();
a = P7; //a作为缓存
switch (a) //开始执行行列扫描
{
//case 0xee:k=15;break;
//case 0xde:k=11;break;
case 0xbe:k=7;break;
case 0x7e:k=3;break;
default:P7 = 0xfd; //使行线P2.5为低电平,其余行为高电平
a = P7;
switch (a)
{
//case 0xed:k=14;break;
//case 0xdd:k=10;break;
case 0xbd:k=6;break;
case 0x7d:k=2;break;
default:P7 = 0xfb; //使行线P2.6为低电平,其余行为高电平
a = P7;
switch (a)
{
//case 0xeb:k=13;break;
case 0xdb:k=9;break;
case 0xbb:k=5;break;
case 0x7b:k=1;break;
default:P7 = 0xf7; //使行线P2.7为低电平,其余行为高电平
a = P7;
switch (a)
{
//case 0xe7:k=12;break;
case 0xd7:k=8;break;
case 0xb7:k=4;break;
case 0x77:k=0;break;
default:break;
}
}
}
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -