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

📄 key.h

📁 4×4按键扫描
💻 H
字号:
#ifndef _key_h_
#define _key_h_

#include<reg52.h>
#include<intrins.h>

sbit Hor1 = P2^7;			// 水平第一行
sbit Hor2 = P2^6;
sbit Hor3 = P2^5;
sbit Hor4 = P2^4;
sbit Ver1 = P2^3;			// 垂直第一列		
sbit Ver2 = P2^2;	
sbit Ver3 = P2^1;		
sbit Ver4 = P2^0;		
		
/********************************************************
		 Ver1	   Ver2		  Ver3		  Ver4
		  ↓	    ↓         ↓		  ↓
Hor1 →	ValKey1   ValKey2    ValKey3	ValKey4

Hor2 →	ValKey5	  ValKey6	 ValKey7	ValKey8
  	
Hor3 →	ValKey9	  ValKey10	 ValKey11	ValKey12

Hor4 →	ValKey13  ValKey14	 ValKey15	ValKey16

********************************************************/

#define ValKey1		1			// 定义键值		
#define ValKey2		2
#define ValKey3		3
#define ValKey4		4
#define ValKey5		5
#define ValKey6		6
#define ValKey7		7
#define ValKey8		8
#define ValKey9		9
#define ValKey10	10
#define ValKey11	11
#define ValKey12	12
#define ValKey13	13
#define ValKey14	14
#define ValKey15	15
#define ValKey16	16
#define ValNull  	0

/********************************************************
**名称:KeyScan()
**功能:键盘扫描
**输入:无
**返回:LcdData
**说明:无
********************************************************/
unsigned char KeyScan()
{
	Hor1 = 0;	Hor2 = 1;	Hor3 = 1;	Hor4 = 1;		//扫描第一行
	if (!Ver1)
	{
		DelayMs(10);
		if (!Ver1);
		{
			return (ValKey1);	
		}
	}
	else if (!Ver2)
	{
		DelayMs(10);
		if (!Ver2);
		{
			return (ValKey2);	
		}
	}
	else if (!Ver3)
	{
		DelayMs(10);
		if (!Ver3);
		{
			return (ValKey3);	
		}
	}
	else if (!Ver4)
	{
		DelayMs(10);
		if (!Ver4);
		{
			return (ValKey4);	
		}
	}

	Hor1 = 1;	Hor2 = 0;	Hor3 = 1;	Hor4 = 1;		//扫描第二行
	if (!Ver1)
	{
		DelayMs(10);
		if (!Ver1);
		{
			return (ValKey5);	
		}
	}
	else if (!Ver2)
	{
		DelayMs(10);
		if (!Ver2);
		{
			return (ValKey6);	
		}
	}
	else if (!Ver3)
	{
		DelayMs(10);
		if (!Ver3);
		{
			return (ValKey7);	
		}
	}
	else if (!Ver4)
	{
		DelayMs(10);
		if (!Ver4);
		{
			return (ValKey8);	
		}
	}

	Hor1 = 1;	Hor2 = 1;	Hor3 = 0;	Hor4 = 1;		//扫描第三行
	if (!Ver1)
	{
		DelayMs(10);
		if (!Ver1);
		{
			return (ValKey9);	
		}
	}
	else if (!Ver2)
	{
		DelayMs(10);
		if (!Ver2);
		{
			return (ValKey10);	
		}
	}
	else if (!Ver3)
	{
		DelayMs(10);
		if (!Ver3);
		{
			return (ValKey11);	
		}
	}
	else if (!Ver4)
	{
		DelayMs(10);
		if (!Ver4);
		{
			return (ValKey12);	
		}
	}

	Hor1 = 1;	Hor2 = 1;	Hor3 = 1;	Hor4 = 0;		//扫描第四行
	if (!Ver1)
	{
		DelayMs(10);
		if (!Ver1);
		{
			return (ValKey13);	
		}
	}
	else if (!Ver2)
	{
		DelayMs(10);
		if (!Ver2);
		{
			return (ValKey14);	
		}
	}
	else if (!Ver3)
	{
		DelayMs(10);
		if (!Ver3);
		{
			return (ValKey15);	
		}
	}
	else if (!Ver4)
	{
		DelayMs(10);
		if (!Ver4);
		{
			return (ValKey16);	
		}
	}
	return ValNull;
}

#endif

⌨️ 快捷键说明

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