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

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

3天内不再提示

单片机矩阵按键的工作原理和组成部分

CHANBAEK 来源:工控小新 作者:工控小新 2023-11-09 16:19 次阅读

单片机矩阵按键是一种常用的输入设备,它可以让用户通过按下不同的按键来控制单片机的功能。矩阵按键的原理是利用了电路的开关特性,将多个按键排列成一个矩阵,每个按键都连接了一行和一列的电路。当用户按下某个按键时,就会使得对应的行和列的电路导通,从而产生一个唯一的信号,这个信号可以被单片机识别并执行相应的操作。

矩阵按键的组成主要有两部分:按键和扫描电路。

按键是用来输入信号的部分,它可以是机械式的或者触摸式的,不同的按键可以有不同的标识,例如数字、字母或者符号。

扫描电路是用来检测信号的部分,它可以是硬件实现的或者软件实现的,它的作用是定时地给矩阵按键的每一行和每一列施加一个电压,并检测是否有电流流过,如果有,则说明有按键被按下,并根据行列号确定是哪个按键。

具体方法说明:

方法一:逐行扫描:我们可以通过低四位轮流输出低电平来对矩阵键盘进行逐行扫描,当高四位援收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。

方法二:

行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平,当接收到数据时,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下。这样就能够确定是哪一个按键按下了

图片

矩阵按键如何变成独立按键?

留心发现,矩阵按键想要独立按键的话,只需要将高四位或者低四位永远拉低,那么就能把一行或者一列看作一个按钮,这样就变成了一个独立按键了。

程序展示:

#include< reg52.h >

typedef unsigned char u8;

typedef unsigned int u16;

u8 value;

unsigned char code sunduan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

void delay(u16 t)

{

while(t--);

}

 

void key()

{

u8 a;

P3=0xF0;

if(P3!=0xF0)

{

delay(1000);

         if(P3!=0xF0)

{

P3=0xF0;

switch(P3)

{

case 0xE0:value=0;break;

case 0xD0:value=1;break;

case 0xB0:value=2;break;

case 0x70:value=3;break;

}

P3=0x0F;

switch(P3)

{

case 0x0E:value=value;break;

case 0x0D:value=value+4;break;

case 0x0B:value=value+8;break;

case 0x07:value=value+12;break;

}

while((a< 50)&&(P3!=0x0F))                //按键超时松开判断

{

delay(1000);

a++;

}

}

}

}

 

void main()

{

while(1)

{

key();

P2=sunduan[value];

}

}

效果展示:

下载程序到proteus仿真系统中。

我们在程序中设置了十六个按键分别对应的0~F这十六个数值,当我们按下第一个按键时,在数码管上显示的是0,当我们按下第二个按键时,显示的是数值1…

使用矩阵按键需要注意以下几点:

  • 矩阵按键需要与单片机相连接,通常使用多根导线或者排针来实现。
  • 矩阵按键需要配置好扫描电路,通常使用单片机的输入输出端口来实现。
  • 矩阵按键需要编写好扫描程序,通常使用单片机的定时器中断来实现。
  • 矩阵按键需要处理好信号干扰,通常使用去抖动技术来实现。

矩阵按键的作用主要有以下几种:

  • 矩阵按键可以作为单片机的人机交互界面,让用户可以输入数据或者选择功能。
  • 矩阵按键可以作为单片机的控制器,让用户可以控制单片机的运行状态或者输出结果。
  • 矩阵按键可以作为单片机的扩展器,让用户可以增加单片机的输入端口或者功能模块。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620844
  • 数码管
    +关注

    关注

    31

    文章

    1827

    浏览量

    89949
  • 扫描电路
    +关注

    关注

    0

    文章

    8

    浏览量

    8016
  • 矩阵按键
    +关注

    关注

    0

    文章

    28

    浏览量

    8305
收藏 人收藏

    评论

    相关推荐

    单片机重要组成部分

    。   欢迎加入嵌入式学习就业群③ 162753713提升技术指导 单片机指令系统与汇编语言程序 前面已经讲述了单片机的几个主要组成部分,这些部分构成了
    发表于 07-19 02:16

    RFID技术的工作原理组成部分是什么?

    什么是RFID技术,基本工作原理组成部分是什么,是什么让零售商如此推崇RFID,RFID的典型应用是什么 .什么是RFID?自2004年以来,与RFID技术相关的文章在各个媒体上不断涌现,相关
    发表于 08-05 07:57

    单片机的主要组成部分

      单片机的主要组成部分  单片机单片微型计算机的简称,由于单片机主要用于控制领域,所以国际上通常将
    发表于 06-28 09:24

    按键矩阵扫描的原理

    51单片机_按键矩阵扫描demo代码工作以来一直在搞单片机方面的软件,决定把工作以来写的一些模块
    发表于 07-15 07:46

    单片机为什么叫单片机呢?

    单片机之所以叫单片机,是因为单片机芯片把CPU、数据存储器、程序存储器、总线系统都集成到了一个芯片上。要搞清楚个问题,我们必须先搞明白计算机的组成部分
    发表于 07-20 08:23

    单片机由哪些部分构成?是什么工作原理

    单片机由哪些部分构成?是什么工作原理
    发表于 09-27 09:12

    怎么实现51单片机矩阵按键

    怎么实现51单片机矩阵按键
    发表于 10-09 09:12

    51单片机矩阵键盘的工作原理和检测方法

    独立键盘与单片机连接时,每一个按键都需要单片机的一个I/O口若某单片机系统需较多按键,如果用独立按键
    发表于 11-18 08:26

    单片机组成及特点

    文章目录前言一、单片机组成二、单片机的发展趋势三、单片机的特点四、经典型单片机AT89C51五、单片机
    发表于 11-22 07:52

    单片机独立按键矩阵键盘的原理是什么?

    单片机独立按键矩阵键盘的原理是什么?键盘的工作方式是什么?
    发表于 01-18 07:31

    51单片机矩阵按键

    51单片机矩阵按键,根据按键数在数码管上显示。
    发表于 05-09 10:59 4次下载

    51单片机(V51)———独立按键、4x4矩阵按键

    51单片机(V51)———独立按键、4x4矩阵按键
    发表于 11-16 17:36 25次下载
    51<b class='flag-5'>单片机</b>(V51)———独立<b class='flag-5'>按键</b>、4x4<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>

    C语言按键矩阵实现

    51单片机_按键矩阵扫描demo代码工作以来一直在搞单片机方面的软件,决定把工作以来写的一些模块
    发表于 11-21 09:51 14次下载
    C语言<b class='flag-5'>按键</b><b class='flag-5'>矩阵</b>实现

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

    单片机编辑库一之延时与led灯单片机编辑库二之按键单片机编辑库三之蜂鸣器单片机编辑库四之矩阵
    发表于 12-31 19:37 12次下载
    <b class='flag-5'>单片机</b>编辑库四之<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>

    单片机学习-矩阵按键

    目录矩阵按键介绍检测方法C51例程欢迎加QQ及邮件交流矩阵按键介绍 独立键盘与单片机连接时,每一个
    发表于 12-31 19:37 8次下载
    <b class='flag-5'>单片机</b>学习-<b class='flag-5'>矩阵</b><b class='flag-5'>按键</b>