key44.c

来自「用键盘来输入电压或电流。实现恒流」· C语言 代码 · 共 65 行

C
65
字号

#define  KeyBoard  P1


uchar KeyCmp[]={    0xe7,0xd7,0xb7,0x77, 
					0xeb,0xdb,0xbb,0x7b, 
                    0xed,0xdd,0xbd,0x7d,                       
                    0xee,0xde,0xbe,0x7e };

/*********************************************
  键盘延时
**********************************************/
void KeyDelay(unsigned int i)
{
  while(i--) ;
}
/*********************************************
  键盘扫描(线反转法)
**********************************************/
uchar ScanKeyboard(void)
{ 
  uchar KeyValue=16;//初始化键盘返回值
  uchar i,c1,c2,k;

  KeyDelay(100);
  KeyBoard = 0x0F;
  
  if( KeyBoard&0x0F )
  {
	KeyDelay(100);
	c1 = KeyBoard&0x0F;
		
	KeyBoard =0xF0;
	KeyDelay(100);
	c2 = KeyBoard&0xF0;                               
	k=c1|c2;

	for(i=0;i<16;i++)
	{
	  if( k == KeyCmp[i]) KeyValue = i;
	}
  } 
  
  return KeyValue;
}

/***********************************************
 判断是否有键按下
***********************************************/
/*uchar KeyDown(void)
{
  KeyDelay(10);
  KeyBoard = 0x0F;
  KeyDelay(10);
  if (KeyBoard-0X0F) 
   {
     return (0);        //相等无键闭合
   }
  else
   {
     return (1);       //不等则有键闭合
   }
}*/

⌨️ 快捷键说明

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