⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key2.h

📁 脉冲宽度的测量
💻 H
字号:

#ifndef  KeyBoard_Scan
#define  KeyBoard_Scan

#include <delay.h>
#include <intrins.h>

typedef unsigned int  uint;
typedef unsigned long ulong;

//**************************************************
uchar keyScan(void)
{  uchar scancode,tmpcode;
   P1=0xf0;
   if(((~P1)&0xf0)!=0)
   {  delay_1ms(10);
      if(((~P1)&0xf0)!=0)
      {  tmpcode=(~P1)&0xf0;           //得出行号
         scancode=0xef;
         while((scancode&0xff)!=0xff)
         {  P1=scancode;
            if((P1&0x0f)!=0x0f)        //本行有键按下
            {  scancode=(~P1)&0x0f;    //得出列号
               break;
            }
            else scancode=(scancode<<1)|0x01;
         }
      }
      while((P1&0x0f)!=0x0f)         //键释放则跳出循环
      {  ;}
      delay_1ms(10);
      if((P1&0x0f)==0x0f)            //键已经释放
      {   switch(scancode+tmpcode)
          {  case 0x11: return 11;         //1行1列 
             case 0x21: return 21;         //2行1列
             case 0x41: return 31;         //3行1列
             case 0x81: return 41;         //4行1列
             case 0x12: return 12;         //1行2列 
             case 0x22: return 22;         //2行2列 
             case 0x42: return 32;         //3行2列
             case 0x82: return 42;         //4行2列
             case 0x14: return 13;         //1行3列
             case 0x24: return 23;         //2行3列
             case 0x44: return 33;         //3行3列
             case 0x84: return 43;         //4行3列
             default:break;  
         }//switch 
      }//if
   }//if
   return(0);
}

//****************************************************
#endif

⌨️ 快捷键说明

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