跟着江协科技学51---第6站 矩阵键盘

目录

前言

一、本站实验

1、实验6-1 矩阵键盘

2、实验6-2 矩阵键盘密码锁

二、矩阵键盘

1、矩阵键盘介绍

2、扫描

三、本站实验---矩阵按键

(一)实验6-1 矩阵键盘

1、实验现象

2、代码设计

①main.c

②MatrixKey.c

(二)实验6-2 矩阵键盘密码锁

1、实验现象

2、代码设计

总结


前言

本站带领大家了解矩阵键盘,知道其电路连接,以及在此连接模式下如何通过“扫描”来获取键值。

通过简易密码锁制作来带大家感受单片机带来的小乐趣,同时熟悉逻辑代码的实现。

一、本站实验

1、实验6-1 矩阵键盘

通过编写函数MatrixKey(),获取矩阵键盘键值S1-S16并返回。主函数中利用lcd_1602模块输出显示MatrixKey()返回的键值。

2、实验6-2 矩阵键盘密码锁

实验6-1中我们通过函数MatrixKey()、lcd_1602模块化编程实现了在lcd模块显示输入的键值。在实验6-2中,我们实现通过矩阵键盘输入密码并实时显示在lcd模块,设计清零和确认按钮,实现可重复输入,确认密码是否正确,输入清零的功能,通过清晰明了的代码简单实现了简易密码锁。

二、矩阵键盘

1、矩阵键盘介绍

普中51开发板上的矩阵键盘是由4*4的机械按键组成的矩阵,将某一行的其中一个引脚连接在同一个IO口,将某一列的按键的另一个引脚连接在同一个IO口,例如第一行的S1-S4按键左边的引脚共同连接在P1_7,第一列的S1-S13按键右侧的引脚连接在P1_3。这种连接方式可以节约IO口,通过独立按键的学习知道每个独立按键占一个IO用来检测其是否按下,那么矩阵键盘如果按照独立的连接方式则需要16个IO,而通过矩阵形式排列只需要(行+列)个IO。图6-1为矩阵键盘实物图及电路图。

图6-1 矩阵键盘

2、扫描

本文所使用的扫描方式为列扫描,对应的还有行扫描,我们来介绍一下列扫描。

矩阵按键有16个口,我们想要知道哪个按键按下,就要检测对应连接的引脚的电平,现在每一行的按键的其中一个引脚连接在一起,比如S1-S4连接在P1_7,而每一列的按键引脚连接在一起,比如

 第一列的S1-S13连接在P1_3;

我们单独看某一行或者某一列,比如第一列S1-S13,我们令公共端P1_3为低电平,然后检测各个按键的另一个引脚的电平,如果是0,就说明对应的按键被按下;同理,我们可以让第二行的公共端P1_2为低电平,再检测这一列的按键是否被按下。

注意:当我们检测第一列时,第一列公共端引脚设为低电平,其他三列为高电平;同理,检测第二列时,其他列设为高电平。

按照上述,我们想要知道哪个按键被按下,可以轮询所有按键,检测非公共端的引脚是否为低电平(前提是设置了公共端引脚为低电平)。

此时列扫描的意思就是,按列进行扫描,先扫描第一列的四个IO,再扫描第二列,以此类推。

行扫描就是扫描第一行,再第二行。。。

三、本站实验---矩阵按键

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值