矩阵键盘模块

目录

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

相关推荐
程序员阿超的博客20 小时前
Python 数据分析与机器学习入门 (八):用 Scikit-Learn 跑通第一个机器学习模型
python·机器学习·数据分析·scikit-learn·入门教程·python教程
Moonnnn.11 天前
【51单片机】串口通信
笔记·嵌入式硬件·学习·51单片机
智者知已应修善业12 天前
【51单片机2位数码管100毫秒的9.9秒表】2022-5-16
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
iFulling14 天前
【单片机】51单片机练习代码
单片机·嵌入式硬件·51单片机
iFulling14 天前
【单片机】51单片机学习笔记
单片机·学习·51单片机
passer__jw76715 天前
【51单片机】8. 矩阵LED显示自定义图案、动画
51单片机
Geometry Fu15 天前
物联网控制技术 知识点总结 第三章 汇编语言 第四章 C51语言
汇编·物联网·51单片机
小狗祈祷诗16 天前
day40- 硬件学习之 51单片机II (中断处理)
51单片机·keil
小兔子25317 天前
嵌入式之硬件学习(一)51单片机
单片机·嵌入式硬件·51单片机
yifa2016040421 天前
STM32、Arduino和51单片机
stm32·学习·51单片机