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

📄 键盘扫描.c

📁 mcs51单片机键盘扫描程序
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint key1 ,temp;
uint keyscan();
void display(uint i);
uchar code table []={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,
0xa1,0x86,0x8e,0xff};
sbit a = P1^3;
sbit b=  P1^4;
sbit c=  P1^5;
sbit d=  P1^6;
void delay(uint N)
{
  while(N!=0) N--;

}

void main()					  
{  	// P0=0xff;
    
 while(1)
   { 
   a=b=c=d=1;
   key1=keyscan();
   display(key1); 
   delay(5000);
   
   
  // P0=0xff;
    
   }
}

void display(uint i)
{
 
  P0=0xff;
  delay(100);
  P0=table[i];
  
  
}	

uint keyscan()
{ uint key;
  P2=0x7f;
  temp=P2;
  temp=temp&0x0f;
  if(temp!=0x0f)
  {	 delay(500) ;
     temp=P2;
	 temp=temp&0x0f;
	 if(temp!=0x0f)
	 {
	 	switch(temp)
		{ case 0x0e: key=12;break;
		  case 0x0d: key=13;break;
		  case 0x0b: key=14;break;
		  case 0x07: key=15;break;
		}
	 }
  }
  while(temp!=0x0f)
  {
  	 temp=P2;
	 temp=temp&0x0f;
  }
	P2=0xbf;
  temp=P2;
  temp=temp&0x0f;
  if(temp!=0x0f)
  {	 delay(500) ;
     temp=P2;
	 temp=temp&0x0f;
	 if(temp!=0x0f)
	 {
	 	switch(temp)
		{ case 0x0e: key=8;break;
		  case 0x0d: key=9;break;
		  case 0x0b: key=10;break;
		  case 0x07: key=11;break;
		}
	 }
  }
  while(temp!=0x0f)
  {
  	 temp=P2;
	 temp=temp&0x0f;
  }
  P2=0xdf;
  temp=P2;
  temp=temp&0x0f;
  if(temp!=0x0f)
  {	 delay(500) ;
     temp=P2;
	 temp=temp&0x0f;
	 if(temp!=0x0f)
	 {
	 	switch(temp)
		{ case 0x0e: key=4;break;
		  case 0x0d: key=5;break;
		  case 0x0b: key=6;break;
		  case 0x07: key=7;break;
		}
	 }
  }
  while(temp!=0x0f)
  {
  	 temp=P2;
	 temp=temp&0x0f;
  }
  P2=0xef;
  temp=P2;
  temp=temp&0x0f;
  if(temp!=0x0f)
  {	 delay(500) ;
     temp=P2;
	 temp=temp&0x0f;
	 if(temp!=0x0f)
	 {
	 	switch(temp)
		{ case 0x0e: key=0;break;
		  case 0x0d: key=1;break;
		  case 0x0b: key=2;break;
		  case 0x07: key=3;break;
		}
	 }
  }
  while(temp!=0x0f)
  {
  	 temp=P2;
	 temp=temp&0x0f;
  }
  if(0<=key&&key<=15)
  return key;
  else return 16;
}				 

⌨️ 快捷键说明

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