51单片机--矩阵键盘

本文介绍了51单片机实现4x4矩阵键盘的接线方法和工作原理,通过设置行、列线的电平变化,检测按键状态。通过数码管显示按键值,将按键行接P3.0-P3.3,列接P3.4-P3.7,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

一、接线(4×4)
将16个键盘排成4行4列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,所以共有4行4列8根线,连接到单片机的GPIO口。
二、原理
总体来说检测该键对应IO口是否为低电平。
1、检测时,先将一行设为低电平,其余几行为高电平。
2、然后立即轮流检测一次各列是否为低电平,若检测到某一列为低电平,可以确定是某行某列的按键,设置此按键的键值。
3、用同样的方法轮流设置各行为低电平,再轮流检测各列是否为低电平,这样就可以检测完所有的按键,扫描所有的键值。
4、也可以设置列为低电平再检测各行。
三、例子
通过数码管,按键显示对应的键值,按键行接P3.0-P3.3,按键列接P3.4-P3.7,代码如下:

#include <reg52.h>

#define uint unsigned int
#define uchar unsigned char
	
void Delay_ms(uint y);
void Display(uchar x);
void MatrixKEYDect();
void Init();
	
sbit WE1 = P2^4;	       //数码管十位位选
sbit WE2 = P2^5;		   //数码管个位位选

//8段共阴极数码管
uchar code SEG[] = {
   
	//0    1     2     3     4
	0x3f, 0x06, 0x5b, 0x4f, 0x66,
	//5    6     7     8     9
	0x6d, 0x7d, 0x07, 0x7f, 0x6f};

uint KEYNum;     //按键显示的数字

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值