key.h
来自「FDY12864_KEY...keil c51」· C头文件 代码 · 共 69 行
H
69 行
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define KEYPORT P2
uchar keyscan(void)
{
uchar scancode,tmpcode;
KEYPORT=0xf0; //发全1行扫描码
if((KEYPORT&0xf0)!=0xf0) //若有键按下
{
uchar i;
for(i=300;i>0;i++); //延时去抖动
if((KEYPORT&0xf0)!=0xf0) //延时后再判断一次,去除抖动影响
{
scancode=0xfe;
while((scancode&0x10)!=0) //逐行扫描
{
KEYPORT=scancode; //输出行扫描码
if((KEYPORT&0xf0)!=0xf0) //本行有键按下
{
tmpcode =(KEYPORT&0xf0)|0x0f; /* 返回特征字节码,为1的位即对应于行和列*/
return((~scancode)+(~tmpcode));
}
else scancode =(scancode<<1)|0x01; //行扫描码左移一位
}
}
}
else return(0);
}
void convert(void)
{
uchar key,k;
key=keyscan();
k=0;
switch(key)
{
case 0x11: k=1; break;
case 0x21: k=2; break;
case 0x41: k=3; break;
case 0x81: k=4; break;
case 0x12: k=5; break;
case 0x22: k=6; break;
case 0x42: k=7; break;
case 0x82: k=8; break;
case 0x14: k=9; break;
case 0x24: k=10; break;
case 0x44: k=11; break;
case 0x84: k=12; break;
case 0x18: k=13; break;
case 0x28: k=14; break;
case 0x48: k=15; break;
case 0x88: k=16; break;
default: break;
}
key_code=k;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?