key.c

来自「0834实现数据的采集」· C语言 代码 · 共 61 行

C
61
字号
#include  <reg52.h>
#include<intrins.h>
#define  uchar  unsigned  char
#define  uint   unsigned  int
#define  ulint  unsigned  long int
sbit  ACC_0 =ACC^0;
sbit  KeyButton =P1^6;
sbit  Button1   =P2^0;
#define  Keyio  P0
uchar  code  Kconst=0x75;//1为重复输出,0不重复
uchar  Kinput;
uchar  Ktemp;
uchar  Kstore;
uchar  Kready;
uchar  Koutput;

/*code uchar value[16]=
{
0x01,0x02,0x03,0x0a,
0x04,0x05,0x06,0x0b,
0x07,0x08,0x09,0x0c,
0x0e,0x00,0x0f,0x0d
};    */

uchar  Key(void)
{
  uchar  i,temp;
  temp=0xfe;
  Kinput=0;
     for(i=0;i<8;i++)
     {
           KeyButton=1;
	       Keyio=temp;
           KeyButton=1;
           KeyButton=1;
           KeyButton=1;
           KeyButton=1;
           KeyButton=1; 
	   if(KeyButton==0)
	   Kinput|=(~Keyio);
	   temp=_crol_(temp,1);//不带进位的左移
       }
           Button1=1;
           if(Button1==0)
           Kinput=0x3;
    Keyio=0xff;
    Kready=Ktemp&Kinput|Kready&(Ktemp^Kinput);
    Ktemp=Kinput;

/*以下表示式用于输出重复键和非重复键*/
   if(Kready!=0x3)
   Koutput=Kready&(~Kstore|Kconst);
   else
   Koutput=Kready&(~Kstore);

   Kstore=Kready;
   return Koutput;
}


⌨️ 快捷键说明

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