keyscan.txt
来自「功能:4×4键盘扫描程序 返回:键序号(0~F)」· 文本 代码 · 共 47 行
TXT
47 行
简洁高效的键盘扫描程序(单片机)/********************************************************************
*
* 函数原型:byte K_input(void);
* 功 能:4×4键盘扫描程序
* 返 回:键序号(0~F),0xFF表示没有字符输入
*
* 硬件连接:P1口(高4位 - 行;低4位 - 列)
* 软件特点:简洁高效,无须延时消抖,避免连发
*
*--------------------------------------------------------------------
*
* 编程语言:Keil-C
* 作 者:古长宏(lfgch@sohu.com) 10/18/2006
*
*********************************************************************/
#include <reg51.h>
#define byte unsigned char
#define KBD_Port P1
byte code key[16]={0xEB,0xD7,0xDB,0xDD, //0 1 2 3
0xB7,0xBB,0xBD,0x77, //4 5 6 7
0x7B,0x7D,0xE7,0xED, //8 9 - +
0xEE,0xDE,0xBE,0x7E}; //= * / C
byte K_input(void)
{
static bit K_status; /*键盘状态Flag(静态局部变量) */
byte i,k;
KBD_Port=0x0F;
k=KBD_Port;
KBD_Port=0xFF;
KBD_Port=k|0xF0;
k=KBD_Port;
KBD_Port=0xFF;
if(k!=0xFF)
{
for(i=0;i<16;i++)
{
if(k==key && K_status==0)
{
K_status=1;
return(i);
}
}
}
else
K_status=0;
return(0xFF);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?