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

📄 key.c

📁 3*3键盘专用驱动C程序 有需要的朋友可与我联系
💻 C
字号:
//#include	<reg52.h>
#include	"key.h"
#include "main.h"
#include "mcs51.h"
extern	uchar idata KeyVal;//全局变量
extern	bit key_time_flag;
extern	uchar data  key_time;
uchar getkey()
{
  static uchar i;
  SC_LED=1;
  switch(i&0x03){
    case 0:{//防抖动
      KOUT0=0;KOUT1=0;KOUT2=0;
      KIN0=1;KIN1=1;KIN2=1;
      if(!KIN0||!KIN1||!KIN2) i=1;
      return KeyVal;
    }break;
    case 1:{//得到KeyVal值
      KOUT0=0;KOUT1=0;KOUT2=0;
      KIN0=1;KIN1=1;KIN2=1;
      if(!KIN0||!KIN1||!KIN2){//若有其中的一个按键按下时
        KOUT0=0;KOUT1=1;KOUT2=1;//并且输出为KOUT0时
        //if(!KIN0)  {i=2;return 1;}
        if(!KIN1)  {i=2;return 1;}
        if(!KIN2)  {i=2;return 2;}
        KOUT0=1;KOUT1=0;KOUT2=1;
        if(!KIN0)  {i=2;return 3;}
        if(!KIN1)  {i=2;return 4;}
        if(!KIN2)  {i=2;return 5;}
        KOUT0=1;KOUT1=1;KOUT2=0;
        if(!KIN0)  {i=2;return 6;}
        if(!KIN1)  {i=2;return 7;}
        if(!KIN2)  {i=2;return 8;}
        KOUT0=1;KOUT1=1;KOUT2=1;
        if(!KIN0)  {i=2;return 0X10;}
        if(!KIN1)  {i=2;return 0X11;}
        if(!KIN2)  {i=2;return 0X0B;}
        i=0;
        return 0;
      }
      else{
        i=0;
        return 0;
      }
    }break;
    case 2:{//key8++,key9--
      KOUT0=0;KOUT1=0;KOUT2=0;
      KIN0=1;KIN1=1;KIN2=1;
      if(KIN0&&KIN1&&KIN2) i=3;
      KOUT0=1;KOUT1=1;KOUT2=0;
      if(!KIN1&&key_time_flag) {KeyVal=8; key_time=2;key_time_flag=0;}
      if(!KIN2&&key_time_flag) {KeyVal=9; key_time=2;key_time_flag=0;}
      return KeyVal;
    }break;
    case 3:{//KeyVal复位
      KOUT0=0;KOUT1=0;KOUT2=0;
      KIN0=1;KIN1=1;KIN2=1;
      if(KIN0&&KIN1&&KIN2) {i=0; KeyVal=0;}
      return KeyVal;
    }break;
  }
}

⌨️ 快捷键说明

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