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

📄 key4x40.h

📁 4X4矩阵键盘的驱动
💻 H
字号:
//4&4键盘头文件定义 
#ifndef __KEY4X4_H__
#define __KEY4X4_H__
/*****************************************************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
/***************************************定义端口*****************************/

sbit P0_0=P0^0;				//P0_0,P0_1,P0_2,P0_3是键盘的列
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;

/*sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;			*/

uchar key,temp,rec;
uchar s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16;


/****************************************延时函数*************************************/
void delay(uint i)			//i=1 为 1ms  最大可到 65535 ms
{
	 uchar j;
	 while(i--)
	 for(j=0;j<100;j++);
}
/*****************************************************************************/


/*void flash(uchar led)
{
	switch(led)
	{
		case 0	:	led1=0;delay(5);led1=1;break;
		case 1	:	led2=0;delay(5);led2=1;break;
		case 2	:	led3=0;delay(5);led3=1;break;
		case 3	:	led4=0;delay(5);led4=1;break;
		case 4	:	led5=0;delay(5);led5=1;break;
		case 5	:	led6=0;delay(5);led6=1;break;
		case 6	:	led7=0;delay(5);led7=1;break;
		case 7	:	led8=0;delay(5);led8=1;break;
		default	:	break;
	}
}
/*****************************************************************************/

void keyscan()	    //按键扫描子程序
{
	s1=s2=s3=s4=s5=s6=s7=s8=s9=s10=s11=s12=s13=s14=s15=s16=1;
	//temp=P0;
	P0=0xf0;
	if((P0&0xf0)!=0xF0)
	  {
	  	
		delay(10);		
		if(P0&0xf0!=0xF0)
		{
			temp=0xfe;
			while(temp&0x10!=0)
			{
				P0=temp;
				if(P0&0xf0!=0xf0)
				{
				  rec=P0&0xf0|0x0f;
				  key=~rec|~temp;
				}
				else
				temp<<=1;				
			}
		}
	  }
	  delay(5);
	  switch(key)
	  {
	  	case 0x88:	s1=0;		break;
	 	case 0x84:	s2=0;		break;
	 	case 0x82:	s3=0;		break;
	 	case 0x81:	s4=0;		break;
	 	case 0x48:	s5=0;		break;
	 	case 0x44:	s6=0;		break;
	 	case 0x42:	s7=0;		break;
	 	case 0x41:	s3=0;		break;
	 	case 0x28:	s9=0;		break;
	 	case 0x24:	s10=0;		break;
	 	case 0x22:	s11=0;		break;
	 	case 0x21:	s12=0;		break;
	 	case 0x18:	s13=0;		break;
	 	case 0x14:	s14=0;		break;
	 	case 0x12:	s15=0;		break;
	 	case 0x11:	s16=0;		break;
	 	default  :				break;	  
	  }	 
}
/*****************************************************************************/
#endif

⌨️ 快捷键说明

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