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

📄 键盘2.c

📁 又一个AT89c51等单片机可以使用的4*4 键盘程序
💻 C
字号:
#include<reg52.h>             
#include<math.h>                
#include<intrins.h>              
#define	uchar unsigned char      
#define	uint  unsigned int
void delay(void);
uchar getkey(void)///得到键值
{ uchar h,l,k,k1;
  if(P1!=0x0f)
  delay();
  if(P1!=0x0f)
  {
   h=P1&0x0f;
   P1=0xf0;
   l=P1&0xf0;
   k=h|l;
  
   return(k);
  }
}
void delay(void)
{
uchar i;
for(i=0;i<200;i++) ;
}
void yanshi(uint n)///////////////延时函数///////////////////////////////////
{
 uint i;
  for(i=0;i<n;i++){};
}

void xunhuan(void)
{
 uint i;
 while(1)
 {  P3=0x55;
   for(i=0;i<8;i++)
   {  
   P3<<=1;
   yanshi(20000);
   }
 }
}
void diaoyong(uchar i)///////////调用各键的函数//////输入密码
{  
         switch(i)
	     { 
		   case 0xee:  xunhuan();P2=0x55;
	                   break; //对键值赋值
           case 0xde:  
		               break;
           case 0xbe: 
		               break;
           case 0x7e:  
		               break;
           case 0xed: 
		               break;
           case 0xdd: 
		               break;
           case 0xbd: 
	                   break;
           case 0x7d: 
	                   break;
           case 0xeb: 
	                   break;
           case 0xdb: 
	                   break;
           case 0xbb: 
	                   break;
           case 0x7b: 
	                   break;
           case 0xe7: 
	                   break;
           case 0xd7: 
	                   break;
           case 0xb7: 
	                   break;
           case 0x77: xunhuan(); 
                       break;
    } 
}



void main(void)
{
   uchar   key;
   while(1)
 {  
    P1=0x0f;
  if(P1!=0x0f)  
 {
   key=getkey(); 
   diaoyong(key); 
  }
 }

}

⌨️ 快捷键说明

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