getkey.c
来自「温度传感器DS18B20驱动程序晶振是11.0592MHZ希望对大家有帮助!」· C语言 代码 · 共 52 行
C
52 行
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define key_bus P0
uchar code tablekey[16]={15,0,14,13,7,8,9,12,4,5,6,11,1,2,3,10}; //查表对应键盘
/*****************读按键***************/
uchar getkey()
{
uchar keycode=0xff,temp,i;
key_bus=0x0f;
temp=key_bus&0x0f;
if(temp!=0x0f) //有键按下
{
key_bus=0x7f;
for(i=0;i<4;i++)
{
temp=key_bus&0x0f;
if(temp==0x07)
{
keycode=i*4;
break;
}
else if(temp==0x0b)
{
keycode=i*4+1;
break;
}
else if(temp==0x0d)
{
keycode=i*4+2;
break;
}
else if(temp==0x0e)
{
keycode=i*4+3;
break;
}
key_bus=(key_bus>>1)|0x80;
}
while((key_bus&0x0f)!=0x0f) //等待释放
{
key_bus=0x0f;
}
}
return tablekey[keycode];
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?