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

📄 l_key.c

📁 自己单片机板c程序
💻 C
字号:
/*键盘程序,本程序涉直接采用分时扫描法,将读到的键值直接输出P2口,在LED灯显示,
此程序也将直观看到每个按键所对应的键值了,都从LED表现出来,这是学习矩阵键盘的关键*/

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

unsigned char l_key=0xff;	//我们定入一个变量,存放按键值

void ReadKey(void);   //扫描键盘 获取键值


void main(void)     //入口函数
{
	while(1){
		ReadKey();				//调用键盘扫描
		if(l_key!=0xff)			//如果有键按下,将其输出P2口LED灯显示,
			P2=~l_key;			//这里取反是因为LED灯采用共阴接法
	}
}

void ReadKey(void)						//读键盘值
{
	P0=0xfe;	//将第一列拉低,扫描是否有按键按下,第一列按键包括:0,4,8,C
	l_key=P0;	//读取键值
	if(l_key!=0xfe)	//如果l_key不等于0xfe,说明有键按下,就返回,否则继续扫描下一列	
	     return;
	P0=0xfd;	//将第二列拉低,扫描是否有按键按下,第二列按键包括:1,5,9,D
	l_key=P0;	//读取键值
	if(l_key!=0xfd)	//如果l_key不等于0xfd,说明有键按下,就返回,否则继续扫描下一列	
	     return;
	P0=0xfb;	//将第三列拉低,扫描是否有按键按下,第三列按键包括:2,6,A,F
	l_key=P0;	//读取键值
	if(l_key!=0xfb)	//如果l_key不等于0xfb,说明有键按下,就返回,否则继续扫描下一列	
	     return;
	P0=0xf7;	//将第四列拉低,扫描是否有按键按下,第四列按键包括:3,7,B,F
	l_key=P0;	//读取键值
	if(l_key!=0xf7)	//如果l_key不等于0xf7,说明有键按下,就返回,否则扫描完毕将l_key=0xff	
	     return;
	l_key=0xff;
}  

⌨️ 快捷键说明

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