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

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

3天内不再提示

基于单片机的独立键盘与矩阵键盘检测

CHANBAEK 来源: Machine City 作者: 失落的龙族 2023-10-31 15:00 次阅读

独立键盘与矩阵键盘检测

NEWS

独立键盘与矩阵键盘介绍

图片

独立键盘,是指每一个键位单独由一个IO口控制的按键。

矩阵键盘,主要是指像矩阵一样分布,由两个IO口(行IO与列IO)才能够识别的按键。

与按键所连接的IO口既可以输出也可以输入,检测按键主要通过检测IO口接受的电平信号来实现。

图片

如图所示,所有键盘的IO口由P3控制,P3IO口由高到低的排列是P3.7~P3.0。

PART

01 独立键盘的检测

在对独立键盘进行检测之前,应当先确保其对应的IO口都处于高电平的状态,当按键被按下时,IO口与接地会接通,会接收到低电平信号。检测时只需依次对按键对应的IO口检测其是否有接收到低电平信号即可。

由于点平的变化并非完美的波形,其在按下与松开时会有短暂的不稳定的高低电平,因此要通过延时二次检测来进行防抖。

图片

在本示例程序中对S2按键进行了检测,其中先对P3IO口进行设置都为高电平,key _S2已经提前配定义为了P3.4IO口,然后用判断语句来判断电平是否有变化,delay延时后在此进行检测,如果确实收到了低电平则开始执行对应程序。程序执行完毕后,用while函数来决定是否继续往下执行,只有彻底松开后才能够继续向下执行程序。

图片

PART

02 矩阵键盘的检测

矩阵键盘不同于独立键盘,它需要对行和列都进行检测,检测原理与独立键盘一样,只是独立键盘的接地变成了为低电平的IO口。

图片

在进行检测时,行和列必须有一个为高电平,有一个为低电平。我们在此要将逐一将列IO赋为低电平,行IO都为高电平然后去检测行IO是否接收到低电平。示例程序如下

//ju zhen an jian cheng xu

void matrix_key()

{

P3=0Xef;/ 将P3.4赋为低电平对S6所在列进行检测 /

matrix_demo=P3;//读取P3

matrix_demo=matrix_demo&0x0f;

//对P3低四位进行比较

if(matrix_demo!=0x0f)

{

delay(10);

matrix_demo=P3;

matrix_demo=matrix_demo&0x0f;

if(matrix_demo!=0x0f)

{

matrix_demo=P3;

switch(matrix_demo)

{

case 0xee://KEY_S6(1110 1110)

dis_num=7;

shiwan=dis_num/10;

wan=dis_num%10;

_shiwan=num_table[shiwan];

_wan=num_table[wan];

break;

case 0xed://KEY_S10(1110 1101)

dis_num=4;

shiwan=dis_num/10;

wan=dis_num%10;

_shiwan=num_table[shiwan];

_wan=num_table[wan];

break;

case 0xeb://KEY_S14(1110 1011)

dis_num=1;

shiwan=dis_num/10;

wan=dis_num%10;

_shiwan=num_table[shiwan]

;_wan=num_table[wan];

break;

case 0xe7://KEY_S18(1110 0111)

shiwan=15;wan=15;

_shiwan=num_table[shiwan];

_wan=num_table[wan];

break;

}

//检测按键是否断开,后四位是否恢复为高电平

while(matrix_demo!=0x0f)

{

matrix_demo=P3;

matrix_demo=matrix_demo&0x0f;

}

delay(10);

while(matrix_demo!=0x0f)

{

matrix_demo=P3;

matrix_demo=matrix_demo&0x0f;

}

}

}

上附程序为对S6所在列进行检测的程序。

PART

03 自我测验

自己编写程序使键盘达到以下效果。

1、开启单片机时,数码管前两位显示00;

2、按下S2按键数码管加1,到六十自动归 零

3、按下S3数码管减1,如果数码管为00,则 0-1变为60

4、按下S4归零

5、按下S5开/暂停计时,满六十归零

6、矩阵键盘十六个按键按下分别使数码管显 示0-F

本次讲解及示例使用的为郭天祥TX-1C的开发板。

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

    关注

    6001

    文章

    43973

    浏览量

    620845
  • 矩阵键盘
    +关注

    关注

    7

    文章

    204

    浏览量

    31133
  • IO口
    +关注

    关注

    3

    文章

    164

    浏览量

    23756
  • 键盘检测
    +关注

    关注

    0

    文章

    4

    浏览量

    5771
  • 独立键盘
    +关注

    关注

    0

    文章

    5

    浏览量

    4549
收藏 人收藏

    评论

    相关推荐

    51单片机矩阵键盘独立键盘冲突

    请问在用51单片机做一个计算器,4*4矩阵键盘和四个独立按键都要使用到,如何扫描按键才能使它们不冲突,想请教关键的代码是怎样的?
    发表于 07-27 12:17

    独立键盘检测矩阵键盘检测

    键盘检测1、工作原理打开单片机原理图文件,找到独立键盘的原理图:上图中89C52与独立
    发表于 07-20 06:20

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

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

    矩阵键盘检测独立按键与单片机连接

    4.2 矩阵键盘检测独立按键与单片机连接时,每个按键都需要单片机的一个I/O口,若
    发表于 02-22 06:14

    第四棵--KEY独立键盘矩阵键盘检测

    独立键盘矩阵键盘检测,十分详细。适合新手。
    发表于 09-01 11:44 0次下载

    一种实用的单片机矩阵键盘设计

    矩阵键盘单片机外部设备中所使用的排布类于矩阵键盘组。矩阵式结构的
    发表于 11-24 07:42 559次阅读

    单片机8x8矩阵键盘原理说明

    本文主要介绍了介绍基于51单片机矩阵键盘原理以及单片机8x8矩阵键盘原理说明,另外还详细的附上
    的头像 发表于 02-24 16:14 2.4w次阅读
    <b class='flag-5'>单片机</b>8x8<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>原理说明

    AVR单片机十日通:介绍独立键盘矩阵键盘的原理及应用

    欣世纪电子阿迪老师单片机系列视频教程之《AVR单片机十日通》,这是第五日:独立键盘矩阵键盘原理
    的头像 发表于 07-10 11:11 4660次阅读

    单片机键盘检测与应用

    非编码键盘通常又分为独立键盘矩阵键盘两大类。所谓独立键盘
    的头像 发表于 09-18 16:34 4892次阅读

    单片机--矩阵键盘实验

    实验目的和任务目的:利用“模块化单片机教学实验平台”,加深对单片机矩阵键盘的接口电路设计以及程序设计的理解。任务:1、学习独立式按键的查询
    发表于 11-11 12:06 17次下载
    <b class='flag-5'>单片机</b>--<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>实验

    51单片机矩阵键盘

    独立键盘单片机连接时,每一个按键都需要单片机的一个I/O口若某单片机系统需较多按键,如果用独立
    发表于 11-12 10:51 12次下载
    51<b class='flag-5'>单片机</b>之<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>

    51单片机按键检测--独立按键与矩阵键盘

    按键,每个按键对应一个IO口,通过循环或者中断去检测,这种方法常用于按键个数较少得时候。如果按键的个数较多,每个按键都分配一个IO口,会占用大量的资源,所以就有了矩阵键盘矩阵
    发表于 11-12 11:06 13次下载
    51<b class='flag-5'>单片机</b>按键<b class='flag-5'>检测</b>--<b class='flag-5'>独立</b>按键与<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>

    PIC单片机矩阵键盘检测原理及实现

    PIC单片机矩阵键盘检测原理及实现
    发表于 11-16 11:51 2次下载
    PIC<b class='flag-5'>单片机</b><b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b><b class='flag-5'>检测</b>原理及实现

    PIC单片机矩阵键盘检测原理及实现

    PIC单片机矩阵键盘检测原理及实现
    发表于 11-16 12:51 7次下载
    PIC<b class='flag-5'>单片机</b><b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b><b class='flag-5'>检测</b>原理及实现

    学习笔记之51单片机键盘篇(非编码键盘与编码键盘、非编码键盘的扫描方式、独立键盘矩阵键盘

    这篇博文主要记录51单片机键盘篇(非编码键盘与编码键盘、非编码键盘的扫描方式、独立
    发表于 11-23 16:51 13次下载
    学习笔记之51<b class='flag-5'>单片机</b><b class='flag-5'>键盘</b>篇(非编码<b class='flag-5'>键盘</b>与编码<b class='flag-5'>键盘</b>、非编码<b class='flag-5'>键盘</b>的扫描方式、<b class='flag-5'>独立</b><b class='flag-5'>键盘</b>、<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>)