key_scan.h

来自「4×4矩阵式键盘的protuse阅读您的文件包然后写出其」· C头文件 代码 · 共 34 行

H
34
字号
#ifndef __key_scan_h__
#define __key_scan_h__
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar buff;
void delay1ms(void)
{ uchar i;
  for(i=200;i>0;i--);
}

void key_scan(void)
{ uchar hang,lie;
  P3=0xf0;
  if((P3&0xf0)!=0xf0)   //行码为0,列码为1
   { delay1ms();
     if((P3&0xf0)!=0xf0)  //有键按下,列码变为0
      { hang=0xfe;     //逐行扫描
        while((hang&0x10)!=0)  //扫描完4行后跳出
         { P3=hang;
           if((P3&0xf0)!=0xf0)  //本行有键按下
            { lie=(P3&0xf0)|0x0f;
              buff=((~hang)+(~lie));

            }
           else hang=(hang<<1)|0x01; //下一行扫描

         }
      }
   }
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?