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

📄 key.c

📁 主要用于控制单片机中的键盘的操作,操作相应的按键,就在相应数码管显示相应数字
💻 C
字号:

#include<reg51.h>
/*#include<stdio.h>
#include<stdlib.h>
#include<absacc.h>
#include<intrins.h>
#include<math.h>
#include"key.h"*/
#define uc unsigned char

void delay50xus(uc count)
{
  uc i,j;
  for(j=0;j<count;j++)
   for(i=0;i<6;i++);
}

bit judgekey()   /*判键程序*/
{
  uc scancode;    /*P1高4位列线,低4位行线*/
  P1=0xf0;
  scancode=P1;
  scancode&=0xf0;
  if(scancode==0xf0)
  return(0);
  else
  return(1);
}

 uc sankey()
{
  uc scancode,keycode;
  scancode=0xfe;
  while(scancode!=0xef)
  {
    P1=scancode;
	keycode=P1;
	if((keycode&0xf0)!=0xf0) break;
	scancode=scancode<<1|0x01;
   }
  return keycode;
}

void main()
{
   uc keycode,bd;
   while(1)
   { 
     delay50xus(100);
     if(judgekey());
	 
	   keycode=scankey();
	   while(judgekey());
	 
   }
   switch(keycode)
   {
     case 0xee:  bd=0xc0; break;
	 case 0xde:  bd=0xf9; break;
	 case 0xbe:  bd=0xa4; break;
	 case 0x7e:  bd=0xb0; break;
	 case 0xed:  bd=0x99; break;
	 case 0xdd:  bd=0x92; break;
	 case 0xbd:  bd=0x82; break;
	 case 0x7d:  bd=0xf8; break;
	 case 0xeb:  bd=0x90; break;
	 case 0xbb:  bd=0x88; break;
	 case 0x7b:  bd=0x83; break;
	 case 0xe7:  bd=0xc6; break;
	 case 0xd7:  bd=0xa1; break;
	 case 0xb7:  bd=0x86; break;
	 case 0x77:  bd=0x8e; break;
	}
   P2=bd;
}



  

⌨️ 快捷键说明

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