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

📄 key.c

📁 采用反正法扫描方法对4X4矩阵式按键进行扫描
💻 C
字号:
#include<reg51.h>				//头文件
#include<stdio.h>

int hang;						//定义行号
int lie;		  				//定义列号

int KeyScan();	 				//子函数声明
void Delay();

void main()		  				//主函数
{
	int Key;
	while(1){						//开始循环扫描键盘
		Key=KeyScan();				//键盘扫描子函数
		if(Key==1){					//如果扫描到按键按下
	 		P2=0x80;				//点亮发光二极管
		}
		Delay();					//延时
		P2=0x00;					//熄灭发光二级管
	}
}

void Delay() 					//延时子函数
{
	long i;
	for(i=10000;i>0;i--);			//可以根据系统的时钟频率来调整
}

int KeyScan()  					//键盘扫描子函数
{
	P1=0xF0;						//列输出全0
	if((P1&0xF0)!=0xF0){			//扫描行,如果不全为0,则进入
		switch(P1)			 		//获得行号
		{
			case 0x70:
				hang=1;
				break;
			case 0xB0:
				hang=2;
				break;
			case 0xD0:
				hang=3;
				break;
			case 0xE0:
				hang=4;
				break;
			default:
				break;
		}
		Delay();					//延时去抖动
		P1=0x0F;		 			//行输出全0
		if((P1&0x0F)!=0x0F){			//扫描列,如果不全为0,则确认按键按下
			switch(P1)				//获得列号
			{
				case 0x07:
					lie=1;
					break;
				case 0x0B:
					lie=2;
					break;
				case 0x0D:
					lie=3;
					break;
				case 0x0E:
					lie=4;
					break;
				default:
					break;
			}
			return 1; 				//扫描到按键按下,返回1
		}
	}
	else{
		return 0;					//未扫描到按键按下,返回0
	}
}

⌨️ 快捷键说明

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