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

📄 key.bak

📁 本人设计的用802051实现的键盘程序的识别代码。系统采用定时查询
💻 BAK
字号:
#include "AT89X52.H"

sbit CLOCK=P3^5;
int K1ST=0;
int K2CD=0;
int longkey=0;

sbit OUT0=P1^0;
sbit OUT1=P1^1;
sbit OUT2=P1^2;
sbit OUT3=P1^3;

sbit IN0=P1^4;
sbit IN1=P1^5;
sbit IN2=P1^6;
sbit IN3=P1^7;
sbit IN4=P3^5;

unsigned char KeyCode;

int KeyOn()
{
   int i;
   int key0;
   char key1;
//   P3=0x7F;
   P1=0xF0;

   key0=P1;
   key0=key0&0x00F0;

   IN4=1;
   key1=IN4;
   key1=key1&0x01;

   if(key0==0xF0&&key1==0x01)
      return 0;
    else return 1;
}

void init_timer0(void)
{
    TMOD&=0xF0;
    TMOD|=0x1;
    TL0=0xF0;
    TH0=0xD8;
    ET0=1;
    TR0=1;
    PT0=1;
    EA=1;

 }

 timer_isr()interrupt 1
 {
  unsigned char keynum;
  int i;
  EA=0;

  TL0=0xF0;
  TH0=0xD8;


  if(KeyOn()==1)
  {
     if(K1ST==1)
     {
        if(K2CD==0)
        {
           K2CD=1;

       //第一列

           P1=0xFE;

           keynum=IN0;
           if(keynum==0)
           {
             KeyCode=1;
             P3=0xE1;
             }

           keynum=IN1;
           if(keynum==0)
             {
              KeyCode=5;
              P3=0xE5;
              }

           keynum=IN2;
           if(keynum==0)
           {
             KeyCode=9;
             P3=0xE9;
           }

           keynum=IN3;
           if(keynum==0)
           {
             KeyCode=13;
             P3=0xEd;
           }
           IN4=1;
           keynum=IN4;
           if(keynum==0)
           {
             KeyCode=17;
             P3=0xF1;
           }
           //The second column

           P1=0xFD;

           keynum=IN0;
           if(keynum==0)
           {
             KeyCode=2;
             P3=0xE2;
           }

           keynum=IN1;
           if(keynum==0)
           {
             KeyCode=6;
             P3=0xE6;
           }

           keynum=IN2;
           if(keynum==0)
           {
             KeyCode=10;
             P3=0xEA;
           }

           keynum=IN3;
           if(keynum==0)
           {
             KeyCode=14;
             P3=0xEE;
           }
           IN4=1;
           keynum=IN4;
           if(keynum==0)
           {
             KeyCode=18;
             P3=0xF2;
           }
          //The third column

           P1=0xFB;
           keynum=IN0;
           if(keynum==0)
           {
             KeyCode=3;
             P3=0xE3;
           }

           keynum=IN1;
           if(keynum==0)
           {
             KeyCode=7;
             P3=0xE7;
           }

           keynum=IN2;
           if(keynum==0)
           {
             KeyCode=11;
             P3=0xEB;
           }

           keynum=IN3;
           if(keynum==0)
           {
             KeyCode=15;
             P3=0xEF;
           }
           IN4=1;
           keynum=IN4;
           if(keynum==0)
           {
             KeyCode=19;
             P3=0xF3;
           }
           //The fourth column

           P1=0xF7;

           keynum=IN0;
           if(keynum==0)
           {
             KeyCode=4;
             P3=0xE4;
           }
           keynum=IN1;
           if(keynum==0)
           {
             KeyCode=8;
             P3=0xE8;
           }
           keynum=IN2;
           if(keynum==0)
           {
             KeyCode=12;
             P3=0xEC;
           }
           keynum=IN3;
           if(keynum==0)
           {
             KeyCode=16;
             P3=0xF0;
           }
           IN4=1;
           keynum=IN4;
           if(keynum==0)
           {
             KeyCode=20;
             P3=0xF4;
           }

           for(i=1;i<10;i++)
              CLOCK=0;
           CLOCK=1;
        }
        else longkey++;
        if(longkey==150)
        {
           longkey=0;
           if(KeyCode==10)
           {
             P3=0xFE;
             for(i=1;i<10;i++)
                CLOCK=0;
             CLOCK=1;
           }
        }
     }
     else K1ST=1;
  }
  else
  {
     K1ST=0;
     K2CD=0;
  }

 EA=1;
}
void main()
{

   int keyon;

   init_timer0();
   P3=0xFF;
 //  P3=0x7F;
   P1=0xFF;
   while(1)
   {

   }
}

⌨️ 快捷键说明

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