key_in.c

来自「51单片机写得MODBUS协议程序」· C语言 代码 · 共 82 行

C
82
字号
#include <reg52.h>
#include "KEY_IN.h"
#include "DelayTime.h"
#include "BDcfg.h"

unsigned char KEY_IN(void)
{
unsigned char i;
unsigned char Key = 0;;
Dat_OUT = 1;
SHIFT_OUT = 1;
LOAD_IN = 0;
Delay(10) ;
LOAD_IN = 1;
Delay(10) ;
   if(Dat_OUT)
      Key |= 1;
   for(i=0;i<7;i++)
      {
       SHIFT_OUT = 0;
	   Delay(10) ;
	   SHIFT_OUT = 1;
	   Delay(10) ;
       Key = Key<<1;
	   if(Dat_OUT)
  	     {
		  Key |= 1;
		  }
	  }
Key &= 0xf0;
LOAD_IN = 0;
if(KEY0 == 0)
   {
    while(KEY0 == 0);
    Key |= (1<<2);
    }
if(KEY1 == 0)
   {
    while(KEY1 == 0);
    Key |= (1<<3);
    }
return Key;

}


unsigned char GetKey(void)
{
unsigned char KEY;
KEY = KEY_IN();
switch(KEY)
    {
	case 0x04: //key0
		 KEY = 1;
	     break;

	case 0x08: //key1
         KEY = 2;
		 break;

	case 0x10: //key2
	     KEY = 3;
	     break;

	case 0x20: //key3
	     KEY = 4;
	     break;

	case 0x40: //key4
	     KEY = 5;
	     break;

	case 0x80: //key5
	     KEY = 6;
	     break;

	default :
	     KEY = KEY;

	}
	return KEY;
}

⌨️ 快捷键说明

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