0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

4*4矩阵键盘的工作原理

CHANBAEK 来源:博客园-立冬以东 作者:博客园-立冬以东 2023-02-15 13:52 次阅读

MCU读取按键是否按下,往往需要进行消抖,而消抖措施有很多种, 可以利用电容电路,可以用数电里学的触发器电路, 这些可以说都是在硬件层面来消抖的。 但是有更简单便宜的软件消抖措施。

软件消抖也分为延时重采样和持续采样两种方式。

延时重采样就是在采样到按键被按下信号后,延时约10ms后,再次采样,如果扔检测到是按下,则就会判定为按键确实被按下“一次”。

持续采样就是当采样到按键被按下信号后,在一段时间内连续检测,如果一直没变,则判定为被按下一次。

一个4*4的矩阵键盘的原理就是,四行串联在四位IO口,四列串联在四位IO口

以上图解释,先将PD = 1111 1110 ,即将第一列置低,然后取PD的高四位,若检测到高四位不是1111,比如是1101,说明第三行虽然一开始是置高的,但是被强制拉低了,所以说明S13键被按下了。

然后将PD循环左移,将第二列置低,以此类推。

这其中还要加上延时重采样消抖,就可以进行矩阵键盘的检测了。

举个栗子

1 #include 52.h>
 2 #include 
 3 
 4 #define uint unsigned int
 5 #define uchar unsigned char
 6 
 7 uchar key = 0;
 8 uchar table[]={
 9     0x3f, 0x06, 0x5b, 0x4f,
10     0x66, 0x6d, 0x7d, 0x07,
11     0x7f, 0x6f, 0x77, 0x7c,
12     0x39, 0x5e, 0x79, 0x71
13 };
14 
15 void init()
16 {
17     P1 = 0x00;
18     P0 = 0x00;
19 }
20 
21 void delayms(uint xms)
22 {
23     uint i, j;
24     for(i = 0; i < xms; i++)
25         for(j = 0; j < 110; j++);
26 }
27 
28 void keys()
29 {
30     uchar temp;
31     uint i;
32     for(i = 0; i < 4; i++){
33         P2 = _crol_(0xfe, i);
34         temp = P2;
35         temp &= 0xf0;
36         if(temp != 0xf0){
37             delayms(10);
38             temp = P2;
39             temp &= 0xf0;
40             if(temp != 0xf0){
41                 switch(temp)
42                 {
43                     case 0xe0 : key = 0+4*i; break;
44                     case 0xd0 : key = 1+4*i; break;
45                     case 0xb0 : key = 2+4*i; break;
46                     case 0x70 : key = 3+4*i; break;
47                 }
48                 while(temp != 0xf0){
49                     temp = P2;
50                     temp &= 0xf0;
51                 }
52             }
53         }
54     }
55 }
56 
57 void display(uchar key)
58 {
59     P1 = table[key];
60 }
61 
62 void main()
63 {
64     init();
65     while(1){
66         keys();
67         display(key);
68     }
69 }

代码实现功能是检测4*4键盘,每个按键代表一个数字,显示在屏幕上。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16992

    浏览量

    350310
  • 信号
    +关注

    关注

    11

    文章

    2780

    浏览量

    76629
  • 触发器
    +关注

    关注

    14

    文章

    1996

    浏览量

    61052
  • 矩阵键盘
    +关注

    关注

    7

    文章

    206

    浏览量

    31434
  • 电容电路
    +关注

    关注

    1

    文章

    11

    浏览量

    3103
收藏 人收藏

    评论

    相关推荐

    4*4矩阵键盘设计及源代码

    4*4矩阵键盘设计及源代码 一 实验目的1 学习使用4X4 扫描键盘的设计方法;2 实践对比按
    发表于 02-08 16:30 472次下载

    4×4矩阵键盘识别技术

    4×4矩阵键盘识别技术 1. 实验任务 如图4.14.2所示,用AT89S51的并行口P1接4×4
    发表于 04-16 10:26 5314次阅读
    <b class='flag-5'>4</b>×<b class='flag-5'>4</b><b class='flag-5'>矩阵</b>式<b class='flag-5'>键盘</b>识别技术

    4×4矩阵式非编码键盘电路

    4×4矩阵式非编码键盘电路 输入键盘控制电路采用4×4
    发表于 02-21 15:04 4957次阅读
    <b class='flag-5'>4</b>×<b class='flag-5'>4</b><b class='flag-5'>矩阵</b>式非编码<b class='flag-5'>键盘</b>电路

    4×4矩阵键盘工作原理

    发表于 07-31 10:28 9次下载

    4×4矩阵键盘工作原理与编程

    发表于 08-09 16:24 31次下载

    基于51单片机对4*4矩阵键盘扫描

    基于51单片机,对4*4矩阵键盘扫描,并用7段数码管显示按键信息。
    发表于 11-24 13:55 86次下载

    4x4矩阵键盘程序及原理图PCB

    4x4矩阵键盘程序及原理图PCB,供大家下载。
    发表于 12-21 18:25 0次下载

    单片机新手入门实例详解之三_4×4矩阵键盘工作原理与编程

    本文介绍了如何在ME300B型51/AVR单片机学习系统上使用数码管显示4X4矩阵键盘的键值。
    发表于 03-28 15:23 32次下载

    4x4矩阵键盘工作原理及扫描程序

    矩阵键盘的动态扫描确实略显复杂,不可能就是读一个端口数据,然后马上就出来结果。这需要对依次每一行的按键进行扫描、判断,然后得出结果。本文主要介绍了矩阵键盘扫描以及
    的头像 发表于 02-24 15:30 24.2w次阅读
    <b class='flag-5'>4x4</b><b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b><b class='flag-5'>工作原理</b>及扫描程序

    什么是矩阵键盘4*4键盘的原理软件设计分析

    矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。 在行线
    发表于 06-26 09:26 3.9w次阅读

    基于51单片机的4*4矩阵键盘字符输入

    使用4*4矩阵键盘和一个数码管在4*4矩阵
    发表于 06-26 09:56 1w次阅读

    4*4矩阵键盘工作原理和实现的详细资料介绍

    在单片机按键使用过程中,当键盘中按键数量较多时为了减少端口的占用通常将按键排列成矩阵 形式如下图所示,在矩阵键盘中每条水平线和垂直线在交叉处不直接连通而是通过一个按键加以连接,到底这
    发表于 12-26 08:00 151次下载
    <b class='flag-5'>4</b>*<b class='flag-5'>4</b><b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>的<b class='flag-5'>工作原理</b>和实现的详细资料介绍

    怎样连接4×4带Arduino的矩阵键盘以及如何从键盘获取数据

    在本教程中,我们将学习4×4矩阵键盘以及Arduino键盘接口的工作原理
    的头像 发表于 07-30 10:16 2.4w次阅读

    4*4矩阵键盘驱动程序

    4*4矩阵键盘驱动程序
    发表于 11-15 11:51 7次下载
    <b class='flag-5'>4</b>*<b class='flag-5'>4</b><b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>驱动程序

    带有stm32的宏键盘4x4矩阵

    电子发烧友网站提供《带有stm32的宏键盘4x4矩阵.zip》资料免费下载
    发表于 07-28 14:19 5次下载
    带有stm32的宏<b class='flag-5'>键盘</b><b class='flag-5'>4x4</b><b class='flag-5'>矩阵</b>