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

📄 key.h

📁 JDL16A..........keil c51
💻 H
字号:
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define KEYPORT   P2
 unsigned char keyscan(void)
  {
    uchar scancode,tmpcode;
	KEYPORT=0xf0;		                  //发全1行扫描码
	  if((KEYPORT&0xf0)!=0xf0)					  //若有键按下
	     {
	        uchar i;
	            for(i=300;i>0;i++);				  //延时去抖动

	            if((KEYPORT&0xf0)!=0xf0)			  //延时后再判断一次,去除抖动影响
	            {
		          scancode=0xfe;

	 	              while((scancode&0x10)!=0)	    //逐行扫描
	                 	{
		                  KEYPORT=scancode;				  //输出行扫描码

		                     if((KEYPORT&0xf0)!=0xf0)        //本行有键按下
		                        {
		                           tmpcode =(KEYPORT&0xf0)|0x0f;  /* 返回特征字节码,为1的位即对应于行和列*/
			                       return((~scancode)+(~tmpcode));
		                         }
		                     else scancode =(scancode<<1)|0x01;  //行扫描码左移一位
		                  }

	              }

	       }

	    else return(0);
	}

 uchar convert(void)
 {
   uchar key,k=0;

   key=keyscan();

	   switch(key)
	   {
	      case 0x11: k=0x30; break;
          case 0x21: k=0x31; break;
	      case 0x41: k=0x32; break;
	      case 0x81: k=0x33; break;
	      case 0x12: k=0x34; break;
	      case 0x22: k=0x35; break;
	      case 0x42: k=0x36; break;
	      case 0x82: k=0x37; break;
	      case 0x14: k=0x38; break;
	      case 0x24: k=0x39; break;
	      case 0x44: k=0x41; break;
	      case 0x84: k=0x42; break;
	      case 0x18: k=0x43; break;
	      case 0x28: k=0x44; break;
	      case 0x48: k=0x45; break;
	      case 0x88: k=0x46; break;
	      default:   break;
	   }
	   return(k);

	   

  }
      
    

⌨️ 快捷键说明

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