keymatrix.c
来自「我自己整理的单片机4*4键盘最简扫描算法」· C语言 代码 · 共 61 行
C
61 行
/* ***********************************************
键盘扫描程序
完成日期:
修改日期:
修改人员:
修改日期:
修改人员:
***********************************************
*/
#include <reg52.h>
#include "type.h"
// ===============================================
// 键盘延迟程序
// 输入参数:d数据范围[0,255],该参数决定延迟时间
// 输出参数:无
void KeyDelay(UCHAR d)
{
UCHAR i;
while(d--)
{
for ( i = 0; i < 220 ;i ++);
}
}
// ===============================================
// 键盘扫描码获取程序
// 功能简述:当按键按下后以第一次按下的键为有效键
// 输入参数:无
// 输出参数:扫描码
UCHAR getKey(void)
{
UCHAR idx=0,rt;
while(TRUE)
{
idx ++;
idx &= 3;
P1 = ~(1<<idx);
if ( (P1 & 0XF0) != 0XF0)
{
//some key pressed
KeyDelay(20);
if ( (P1 & 0XF0) != 0XF0)
{
rt = (P1&0xf0)+idx;
while(TRUE)
{
if ((P1 & 0XF0) == 0XF0)
{
KeyDelay(20);
if((P1 & 0XF0) == 0XF0)
{
break;
}
}
}
return rt;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?