51单片机——矩阵键盘扫描(矩阵键盘1602显示及密码锁)

本文介绍了矩阵键盘的结构、工作原理以及51单片机I/O口的不同模式,包括逐行扫描和逐列扫描。通过编程示例展示了如何用矩阵键盘控制LCD1602显示数字,并实现了一个简单的密码锁功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、矩阵键盘介绍

1、独立按键和矩阵键盘实物图及其原理图

可以看到矩阵键盘是4*4的一个结构,而独立按键是2*4的结构

从原理图可以看到,二者按键数量虽然不同,但I/O口数量均为8个,这也就是矩阵键盘的优势所在,大大减少了外设对I/O口的使用

独立按键:4个按键为一小组,一端接GND(低电平),另外一端连接4个I/O口,也就是说,通过给予I/O口高低电平进行按键的扫描

矩阵键盘:低四位(接口1234)控制行,高四位(5678)控制列,也就是说整个按键就是一个坐标图,通过(行,列)/(列,行)坐标来进行扫描,从而判断哪个按键被按下。

2、两种扫描方式(逐行扫描、逐列扫描)

两组扫描方式其实原理都一样,区别就在于先扫描行还是先扫描列,如若先扫描行,那就是逐行扫描,反之则就是逐列扫描;

(1)逐行扫描

逐行扫描就是说先扫描第一行中的哪个按键按下了,如果没有再扫描第二行,看一下是不是第二行里的某个按键按下了,如果还没有找到按下的那个按键,那么就继续扫描第三行、第四行,知道找出哪个按键被按下了。

(2)逐列扫描

行列扫描就是说先扫描所有的行,确定是哪一行的按键被按下了,之后再扫描所有的列,找出哪一列有按键被按下了,这样只要扫描两次就可以确定出到底是哪个按键被按下了。

接下来科普一下:

二、传统51单片机I/O口的工作模式

描述:通过前面的输入输出的内容(LED控制与按键的使用),我们对控制I/O口有了一个基本的了解。如果需要输出高低电平,可以对该引脚进行写"1"或者"0";如果需要读取I/O的电平,直接判断该引脚是高电平或者低电平既可。

在程序上对P0 ~ P3的输入输出控制是一样的,但实际上它们内部结构是不一样的

1、开漏输出(双向I/O口)模式(P0)

         输出:可以输出低电平,不能输出高电平(如果需要输出高电平,则引脚端需要在外部接上                      拉电路,增强驱动能力)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值