矩阵按键行列反转扫描法

article/2025/1/17 6:06:34

51单片机 | 矩阵键盘行扫描

————————————————————————————————————————————

分类:

  • 按结构原理分:

    • 触点式开关按键
    • 无触点开关按键
  • 接入方式

    • 独立式按键
    • 矩阵式键盘

————————————————————————————————————————————

矩阵式键盘识别方法(行扫描法)

  • 检测列线的状态:

    列线Y4~Y7置高电平,行线Y0~Y3置低电平。只要有一列的电平为低,则表示键盘该列有一个或多个按键被按下。若所有列线全为高电平,则键盘中无按键按下。

  • 判断闭合按键所在的位置:

    行线置高电平,列线置低电平。检测行线的状态。

  • 举例:当按下第一行第一列的按键时

    • 行扫描,行线为低电平,列线为高电平,得到 1110 0000
    • 列扫描,行线为高电平,列线为低电平,得到 0000 1110
    • 将得到的结果进行或运算,得到 1110 1110,对应第一行第一列,十六进制为0xEE
  • 按键表

bin

hex

1

1

1110 1110

0xEE

1

2

1101 1110

0xDE

1

3

1011 1110

0xBE

1

4

0111 1110

0x7E

2

1

1110 1101

0xED

2

2

1101 1101

0xDD

2

3

1011 1101

0xBD

2

4

0111 1101

0x7D

3

1

1110 1011

0xEB

3

2

1101 1011

0xDB

3

3

1011 1011

0xBB

3

4

0111 1011

0x7B

4

1

1110 0111

0xE7

4

2

1101 0111

0xD7

4

3

1011 0111

0xB7

4

4

0111 0111

0x77

————————————————————————————————————————————

矩阵式键盘应用实例

实现结果:

通过4*4矩阵键盘对应数码管显示0~F

 

设计思路:

  • 当检测到按键被按下时,将此时行扫描的结果存入临时变量,再进行列扫描,得到的结果和临时变量进行或运算。
  • 通过数组存放按键和数码管编码,行列扫描得到结果后遍历数组,找到对应的编码位置并显示数码管编码

实现代码:

 

复制代码

 1 #include <reg52.h>2 typedef unsigned char uchar;3 typedef unsigned int uint;4 uchar code KEY_TABLE[] =5 {6     0xEE, 0xDE, 0xBE, 0x7E,7     0xED, 0xDD, 0xBD, 0x7D,8     0xEB, 0xDB, 0xBB, 0x7B,9     0xE7, 0xD7, 0xB7, 0x77
10 };
11 uchar code TABLE[] =
12 {
13     0x3F, 0x06, 0x5B, 0x4F,
14     0x66, 0x6D, 0x7D, 0x07,
15     0x7F, 0x6F, 0x77, 0x7C,
16     0x39, 0x5E, 0x79, 0x71,
17 };
18 void Delay(uchar m)
19 {
20     --m;
21 }
22 void main()
23 {
24     uchar temp, key, i;
25     while(1)
26     {
27         P3 = 0xF0;
28         if (P3 != 0xF0)
29         {
30             Delay(2000);
31             if (P3 != 0xF0)
32             {
33                 temp = P3;
34                 P3 = 0x0F;
35                 key = temp | P3;
36                 for (i = 0; i < 16; ++i)
37                     if (key == KEY_TABLE[i])
38                         break;
39                 P2 = TABLE[i];
40             }
41         }
42     }
43 }

复制代码


http://chatgpt.dhexx.cn/article/gGCXQ2YT.shtml

相关文章

基于GD32矩阵按键程序实现

目录 一、简介 二、原理图 三、程序实现 一、简介 矩阵键盘&#xff0c;也称矩阵按键&#xff0c;是为了节约单片机IO口占用所引入的一种外设。 二、矩阵按键的原理图 三、程序实现 GPIO初始化引脚代码 /*!\brief Init Key Function\param[in] none\param[out] non…

4、按键(独立/矩阵按键)

一、 独立按键原理 按键在闭合和断开时&#xff0c;触点会存在抖动现象。 PS:定义小灯时&#xff0c;如果定义为#define led P2&#xff0c;这样按下K1时八个灯就会同时熄灭或点亮&#xff0c;&#xff0c;当然&#xff0c;如果要其中几个灯点亮&#xff0c;就分别定义…

蓝桥杯单片机 独立按键与矩阵按键

文章目录 前言一、蓝桥杯按键原理图二、独立按键与矩阵按键处理思路 1.独立按键2.矩阵按键代码实现总结 前言 按键设计一般分为两种&#xff1a;独立按键和矩阵键盘。按键数量较少的用前者&#xff0c;按键数量较多的用后者。虽然两种设计都是操作按键&#xff0c;但是其键盘扫…

单片机STM32入门——(3)矩阵按键

单片机STM32入门——&#xff08;3&#xff09;矩阵按键 1.理论分析1.1键盘扫描方式1.2行扫描逻辑1.3列扫描逻辑 2.程序编写2.1按键扫描程序2.1.1按键初始化2.1.2按键扫描程序头文件2.1.3行扫描函数2.1.3列扫描函数 2.2主程序 1.理论分析 1.1键盘扫描方式 我们所用到的键盘为…

51单片机之按键(独立按键矩阵按键)

难的东西学不会是因为简单的知识没学好 基础不牢&#xff0c;地动山摇 按键 1.1基础温习 &#xff08;1&#xff09;按键的物理结构 &#xff08;2&#xff09;单片机引脚有两种状态&#xff08;I/O&#xff09;输入【读】或者输出【写】 &#xff08;3&#xff09;上拉电阻…

51学习-矩阵按键篇

使用并行接口方式连接键盘&#xff0c;对独立式键盘而言&#xff0c;8根I/O口线可以接 **8** 个按键&#xff0c;而对矩阵式键盘而言&#xff0c;8根I/O口线最多可以接 **64** 个按键。 项目(工程)的时候&#xff0c;我们经常要用到比较多的按键&#xff0c;而且IO资源紧张&am…

4x4矩阵按键应用详解

一.简介 4x4矩阵按键是单片机外部设备中所使用的排布类似于矩阵的按键组。显然矩阵按键的使用要比独立按键要复杂一些&#xff0c;编程也要复杂一些&#xff0c;但可以单片机IO资源。4x4矩阵按键即分为4组列线&#xff0c;4组行线&#xff0c;并将行线所接的单片机的I/O口作为…

独立按键和矩阵按键c语言,第八章 独立按键和矩阵按键

我们和单片机之间进行信息交互,主要包含两大类,输入设备和输出设备。前边讲的LED小灯、数码管、点阵都是输出设备,这节课我们学习一下最常用的输入设备——按键。在本节课的学习过程中我们还会穿插介绍一点硬件设计的基础知识。 8.1单片机最小系统电路解析 8.1.1电源 我们在…

单片机 矩阵式按键

单片机 矩阵式按键 一、简述 在单片机应用系统中&#xff0c;通过按键实现数据输入及功能控制是非常普遍的&#xff0c;通常在所需按键数量不多时&#xff0c;系统常采用独立式按键。需要按键数量比较多&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵。测…

矩阵按键原理和BUG

当我们的电路有很多按键时&#xff0c;一般会采用矩阵方式与单片机相连来减少对单片机IO的浪费&#xff0c;如下图方式。 这个电路的原理: 1、比如检测S13是否按下&#xff0c;单片机把Line4设为输出&#xff0c;并输出低电平&#xff0c;而Line3、Line2、Line1设为开路输入&…

关于矩阵按键

前段时间老师讲了矩阵按键&#xff0c;就把程序的理解写下来 看图片&#xff0c;只有主函数和串口。串口在此用来发送我们的按键值&#xff0c;波特率9600&#xff0c;频率11.0592。 我们用的是4*4矩阵按键 我们的矩阵按键连在了单片机的P0口&#xff08;stc15f2k60s2&#xf…

独立按键和矩阵按键c语言,单片机独立按键与矩阵按键原理图

当前位置:电工之家 > 电工知识 > 单片机 > 正文 单片机独立按键与矩阵按键原理图 时间:2017-02-22 12:40 来源:电工之家 单片机独立按键与矩阵按键原理图 独立按键 通常的按键分为独立式按键和矩阵式按键两种,独立式按键比较简单,并且与独立的输入线相连接,如图13…

【按键扫描】矩阵按键之多按键扫描

前言 上一章我们介绍了经典矩阵键盘的实现方法&#xff0c;但是示例程序中仅实现了单按键检测功能。虽说单按键已经基本可以覆盖矩阵键盘的常见需求&#xff0c;但在一些特殊应用场合&#xff0c;我们仍然需要多按键识别操作&#xff0c;或者一些类似电脑组合按键的功能支持。…

STM32矩阵按键

矩阵按键原理 本实验使用STM32F103单片机&#xff0c;主题代码通用的。 如果每个按键占用一个GPIO引脚&#xff0c;对于使用多个按键来说就是一种资源的浪费&#xff0c;因此当我们在设计时&#xff0c;可以考虑矩阵这种方式。本实验使用4*4也就是16个按键。 矩阵按键相对于独立…

【按键扫描】独立按键与矩阵按键

按键介绍 我们通常提到按键&#xff0c;一般是指按键开关&#xff0c;也称为轻触开关。轻触开关是最常用的几种电子元器件之一&#xff0c;被各种电子产品广泛使用。 轻触开关与普通开关类似&#xff0c;但又略有不同。普通开关有闭合与断开两种状态&#xff0c;切换后状态会…

矩阵按键实验

矩阵按键简介 以 4*4 矩阵键盘为例。 16 个按键被排成 4 行 4 列&#xff0c;第一行将每个按键的一端连接在一起构成行线&#xff0c;第一列将每个按键的另一端连接在一起构成列线&#xff0c;这样便一共有 4 行 4 列共 8 根线&#xff0c;如图所示&#xff1a; 将这 8 根线连接…

51单片机学习记录(五)矩阵按键

文章目录 1、矩阵按键的控制原理2、矩阵按键实现1、行列式法实现矩阵按键2、线翻转法实现矩阵按键3、按键实战 1、矩阵按键的控制原理 独立按键与单片机连接时&#xff0c; 每一个按键都需要单片机的一个 I/O 口&#xff0c; 若某单片机系统需较多按键&#xff0c; 如果用独立…

51单片机矩阵键盘扫描及使用方法

一、矩阵键盘简介 矩阵键盘&#xff0c;也称矩阵按键&#xff0c;是为了节约单片机IO口占用所引入的一种外设。 &#xff08;图片截取至普中A2开发板原理图&#xff09; &#xff08;图片截取至普中A2开发板实物图&#xff09; 我们知道&#xff0c;一个独立按键需要1个IO口。但…

单片机编辑库四之矩阵按键

单片机编辑库一之延时与led灯 单片机编辑库二之按键 单片机编辑库三之蜂鸣器 单片机编辑库四之矩阵按键 之前为大家介绍了独立按键的原理和使用方法&#xff0c;这一章给大家带来一个升级体验——矩阵按键&#xff0c;话不多说&#xff0c;直接开始今天的内容。 一、矩阵按键…

51单片机——矩阵按键实验,小白讲解,相互学习

矩阵按键介绍&#xff1a; 独立按键与单片机连接时&#xff0c;每一个按键都需要单片机的一个I/O 口&#xff0c;若某单片机系统需较多按键&#xff0c;如果用独立按键便会占用过多的I/O 口资源.单片机系统中I/O 口资源往往比较宝贵&#xff0c;当用到多个按键时为了减少I/O 口…