scankb.c
来自「常用子程序-61个-4.2M.zip」· C语言 代码 · 共 26 行
C
26 行
#include <reg51.h>
void delay(void)
{uchar i;
for(i=200;i>0;i--);
}
uchar scankb(void)
{uchar sccode,recode;
P2=0xf0;
if((P2&0xf0)!=0xf0)//有键按下
{delay();
if((P2&0xf0)!=0xf0)//仍然有键按下
{sccode=0xfe;
while((sccode&0x10)!=0)//移位没完
{P2=sccode;//行扫描开始
if((P2&0xf0)!=0xf0)//若在该行
{recode=(P2&0xf0)|0x0f;//中间结果
P2=0xff; //关P2
return((~sccode)+(~recode));//返回Keyword
}
else sccode=(sccode<<1)|0x01;//不在该行则扫下一行
}
}
}
return(0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?