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

📄 键盘.c

📁 又一个AT89c51等单片机可以使用的4*4 键盘程序
💻 C
字号:
#include<reg52.h>
#include<math.h>   
#include<absacc.h>
#define uchar unsigned char 
#define uint unsigned int
#define TRUE 1
#define FALSE 0
uchar key_flag;
uchar code key[10]={0x00,0x01,0x002,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
void delay(void);
void dy(uchar k);
uchar keyscan();
void main(void)		  //
{

uchar k;
  while(1)
  {	 P1=0x0f;
  	if(P1!=0x0f)
	{ 
    k=keyscan(); 
	 dy(k); 
}
}
}
uchar keyscan()	   //
{ uchar h,l,k1;
 if(P1!=0x0f)
 { 
  delay();
  if(P1!=0x0f)
  {
   
   h=P1&0x0f;
   P1=0xf0;
   
   l=P1&0xf0;
   
   k1=h|l;
  
   return(k1);
  }
  else return(0xff);
 }
}
void delay()
{int n;
for(n=0;n<200;n++);
} 	

void dy(uchar k)	  
{
int i,j;	
switch(k)
	 {
		  case 0xee: 
		  
		  
		  for(i=0;i<10;i++)
		   {P3=key[i];
			for(j=0;j<12000;j++);
			}
			
			break;
           case 0xde:  
		      P3=0x80;break;
           case 0xbe: 
		            P3=0x80;break;
           case 0x7e:  
		               P3=0x80;break;
           case 0xed: 
		               P3=0x80;break;
           case 0xdd: 
		               P3=0x80;break;
           case 0xbd: 
	                  P3=0x80 ;break;
           case 0x7d: 
	                   P3=0x80;break;
           case 0xeb: 
	                   P3=0x80;break;
           case 0xdb: 
	                  P3=0x80;break;
           case 0xbb: 
	                   P3=0x80;break;
           case 0x7b: 
	                  P3=0x80; break;
           case 0xe7: 
	                  P3=0x80 ;break;
           case 0xd7: 
	                  P3=0x80; break;
           case 0xb7: 
	           P0=0x80;break;
           case 0x77: 
		   for(i=0;i<10;i++)
		   {P0=key[i];
			for(j=0;j<12000;j++);
			}
            break;
    	} 

}

⌨️ 快捷键说明

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