矩阵键盘模块

目录

1.矩阵键盘介绍

2.扫描的概念

数码管扫描(输出扫描)

矩阵键盘扫描(输入扫描)

矩阵按键采用逐行扫描:

3.矩阵键盘代码

第一步:

第二步:

第三步:

第四步:

第五步:

第六步:

第七步:

4.矩阵键盘密码锁

第一步:

第二步:

第三步:

第四步:

第五步:


1.矩阵键盘介绍

在矩阵中按键数量较多时,为了减少I/O口的占用,通常将按键排列矩阵形式

采用逐行或逐列的"扫描",就可以读出位置按键的状态

2.扫描的概念

数码管扫描(输出扫描)

原理:显示第1位→显示第2位→显示第3位→......,然后快速循环这个过程,最终实现所有数码管同时显示的效果

矩阵键盘扫描(输入扫描)

原理:读取第1行(列)→读取第2行(列) →读取第3行(列) → ......,然后快速循环这个过程,最终实现所有按键同时检测的效果

以上两种扫描方式的共性:节省I/O口

矩阵按键采用逐行扫描:

因为P15连接到步进电机的BZ,而BZ连接到蜂鸣器,为了让他们不冲突,所以不能逐行扫描,所以矩阵按键要逐列扫描。

逐行扫描:给0就代表扫描,其他给1(没选中),一次只能扫描一行;P10-P13给0表示按下,给1表示没按下

按列扫描也一样思路

3.矩阵键盘代码

第一步:

将延迟的和LCD1602(液晶显示)的代码复制到工程目录下

第二步:

添加到keil中(选中文件右键,Add filess to Grop---)

第三步:

引用头文件使用(前面知识,要先初始化才能用)

补充:如果不想看警告就去掉警告,不显示

补充:快速生成常用格式代码

设置,完成后双击就可以生成了

第四步:

扫描矩阵按键代码,可以选中图片右键浏览,这样看模糊:(局部变量要赋初始值)

第五步:

第一列判断是否被按下代码

第六步:

那一列检测那一列置0,再检测列的第几个按下(其他的列复制过来改下)

头文件声明

第七步:

main函数调用

矩阵按键函数其他列如下

4.矩阵键盘密码锁

第一步:

将矩阵键盘代码复制过来到工程目录下(复制功能模块点C和点H文件)在主函数引入头文件

第二步:

第三步:

乘以10和+=操作理解

矩阵键盘密码锁

第四步:

显示密码超出范围(大于int类型函数显示值),解决方法Count,计数

11按键确认键

第五步:

取消键12

相关推荐
智者知已应修善业19 小时前
【51单片机串口通信甲机四个按键模拟四位二进制值发送乙机以十进制显示2位数码管】2024-6-14
c++·经验分享·笔记·算法·51单片机
深圳市晶科鑫实业有限公司2 天前
国产TCXO温补晶振是否可以完美替代欧美日系主流型号
人工智能·stm32·单片机·物联网·51单片机·信息与通信
xxwxx__2 天前
51单片机串口通信完全指南:从原理到实战(发送、接收、回环与控制)
c语言·单片机·嵌入式硬件·51单片机
智者知已应修善业3 天前
【51单片机2个外部中断显示中断历时,初始化8左移3位共阳数码管】2024-6-6
c++·经验分享·笔记·算法·51单片机
智者知已应修善业3 天前
【51单片机8位数码管同时倒计时从9999】2024-1-25
c++·经验分享·笔记·算法·51单片机
H__Rick4 天前
C51学习-DAY4
嵌入式硬件·学习·51单片机·硬件工程
H__Rick4 天前
C51学习-DAY7
单片机·嵌入式硬件·学习·51单片机
清风6666665 天前
基于51单片机的电阻测量仪设计
单片机·嵌入式硬件·毕业设计·51单片机·课程设计·期末大作业