微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 矩阵键盘扫描函数-线反转法

矩阵键盘扫描函数-线反转法

时间:10-02 整理:3721RD 点击:
/*********************************
函数名:keyscan()
功能描述:矩阵键盘扫描(线反转法)
入口参数:无
返回值:key为0-15键码,返回88为错误码。
包含子函数:delayms(unsigned int xms)
*********************************/
keyscan()//矩阵键盘扫描函数 开始
{
unsigned char x,y,key;
P3=0x0f;
if (P3!=0x0f)
{
   delayms(10);
  if (P3!=0x0f)
  {
   x=P3&0x0f;
   P3=0xf0;
   y=P3&0xf0;
   key=x|y;
   while(P3!=0xf0);
   switch (key)
   {
    case 0xee: key=0;
     break;
    case 0xde: key=1;
     break;
    case 0xbe: key=2;
     break;
    case 0x7e: key=3;
     break;
    case 0xed: key=4;
     break;
    case 0xdd: key=5;
     break;
    case 0xbd: key=6;
     break;
    case 0x7d: key=7;
     break;
    case 0xeb: key=8;
     break;
    case 0xdb: key=9;
     break;
    case 0xbb: key=10;
     break;
    case 0x7b: key=11;
     break;
    case 0xe7: key=12;
     break;
    case 0xd7: key=13;
     break;
    case 0xb7: key=14;
     break;
    case 0x77: key=15;
     break;
    default:  key=88;
       break;
   }
   return key; /*返回值为:按键码*/
  }
}
}//矩阵键盘扫描函数 结束

不错的文件,值得收藏

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top