c语言怎样判断键盘按键的按下、释放?

来源:百度知道 编辑:UC知道 时间:2024/05/19 16:21:23
这个涉及到键盘扫描码的知识


C语言判断键盘按下和释放,是通过检测该键的状态来实现的。如果是单一的一个按键,那么直接检测该键是“1”还是“0”,就可以确定是按下还是释放。如果是矩阵键盘,那么需要发送扫描码,再检测输入值,来判断键盘中键的状态。以下举例说明:

bit keychk()    //单一按键检测

{

if(P1.0==0)    //如果键按下

    {

    delay();     //延时去抖

    if(P1.0==0)return(1);    //返回键状态


   }

return(0);

}

unsigned char kbscan(void)    //矩阵扫描按键检测

{

unsigned char sccode,recode;

P1=0x0f;  //发0扫描,列线输入

if ((P2 & 0x0f) != 0x0f)  //有键按下

{

delay(20);   //延时去抖动

if ((P1&0x0f)!= 0x0f)

{

sccode = 0xef;    //逐行扫描初值

while((sccode&0x01)!=0)

{

  &nbs