key_board._c

来自「数控电压源程序数控电压源程序数控电压源程序数控电压源程序」· _C 代码 · 共 56 行

_C
56
字号
#include "delay.h"
/*------宏定义------*/
#define uchar	unsigned char
#define uint	unsigned int

#define key_mask  0b00001111

//static uchar keyvalue;
uchar key_return=0;
uchar read_keyboard()
{
 static uchar key_value,key_line;
 uchar i;
 DDRD=0xf0;
   key_line=0b00010000;
   for(i=1;i<=4;i++)
   {
   PORTD=~key_line;
   PORTD=~key_line;
   key_value=key_mask&PIND;
   if(key_value==key_mask)
     key_line<<=1;
     else
	 break;
   }
	delay_nms(5);
  if(key_value==(key_mask&PIND))
   {
    
    switch(key_line|key_value)
    {
    case 0b00011110:key_return=1;
	                break;
	case 0b00011101:key_return=2;
	                break;
	case 0b00011011:key_return=3;
	                break;	
	case 0b00010111:key_return=4;
	                break;	
	case 0b00101110:key_return=5;
	                break;	
	case 0b00101101:key_return=6;
	                break;
    case 0b00101011:key_return=7;
	                break;	
	case 0b00100111:key_return=8;
	                break;		
	case 0b01001110:key_return=9;
	                break;	
	case 0b01001101:key_return=0;
	                break;																												
     }
  }
    return key_return;
}

⌨️ 快捷键说明

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