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

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

3天内不再提示

矩阵键盘实现16个按键操作原理及应该方案

贸泽电子设计圈 来源:互联网 作者:佚名 2017-09-08 13:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。矩阵键盘的优点是节约单片机IO口,例如普通键盘8个IO口只能用作8个按键,而矩阵键盘能作16个按键。

本文以51单片机为载体介绍一种4*4矩阵键盘实现16个按键操作的原理、电路和软件设计要点。

1、 矩阵键盘的一般电路

如图 1矩阵键盘电路所示,4*4矩阵键盘有4行4列按键,单片机4个I/O口接矩阵键盘的行线,另外4个I/O口接矩阵键盘的列线,通过对行线列线的操作完成按键的识别和操作。

2、 矩阵键盘的原理

矩阵键盘按键识别的流程一般是这样的:(1)置第1行为低电平(0),其余行为高电平,读取列线数据,列线有低电平表示此行有按键按下。(2)置第2行为低电平(0),其余行为高电平,读取列线数据,列线有低电平表示此行有按键按下。......(N-1)根据行线列线的电平不同可以识别是否有按键按下,哪一个按键按下,获取按键号。(N) 根据按键号跳转至对应的按键处理程序。

3、 一个矩阵键盘程序的例子

图2为按键处理的主流程,思路是依次拉低按键的各个行,再读取列线的数据,假如列线有低电平,则认为此行有按键按下,标记此行有按键按下并存入行值。

读取列线数据的思路则是这样,依次读取第1-4列,假如读取此列时为低电平,则标记并存入列值。

下面是部分代码:

//(1)按键识别程序void key() //按键扫描{unsigned char key_value_temp; //临时按键值,默认1111 1111(二进制)key_value=0xff;

//键值key_value_temp=0xff; //键值临时变量//矩阵键盘程序流程//依次拉低第1234行,读入列线数据Pin_r_1=0; Pin_r_2=1;Pin_r_3=1;Pin_r_4=1; //拉低第1行。//Pin_r_1第1行行线,Pin_r_2第2行行线,其余类似key_value_temp=read_column();//读列数据if (key_value_temp != 0xff)

//表示第一行有按键按下{key_value=key_value_temp & 0x1f;//获取按键号,例如0001

1101表示第1行第2列的按键按下}Pin_r_1=1; Pin_r_2=0;Pin_r_3=1;Pin_r_4=1; //拉低第2行key_value_temp=read_column();//读列数据if (key_value_temp != 0xff)

//表示第2行有按键按下{key_value=key_value_temp &0x2f;}Pin_r_1=1; Pin_r_2=1;Pin_r_3=0;Pin_r_4=1; //拉低第3行key_value_temp=read_column();//读列数据if (key_value_temp != 0xff)

//表示第3行有按键按下{key_value=key_value_temp &0x3f;}Pin_r_1=1; Pin_r_2=1;Pin_r_3=1;Pin_r_4=0; //拉低第4行key_value_temp=read_column();//读列数据if (key_value_temp != 0xff)

//表示第4行有按键按下{key_value=key_value_temp &0x4f;}}//(2)读取列线数据unsigned char read_column() //读矩阵键盘的列{unsigned char key_column;key_column=0xff;if(Pin_c_1==0 ) key_column=key_column & 0xfe;//1110

表示第1列按键按下。 key_column的低4位表示按键号,高4位常为1111if(Pin_c_2==0 ) key_column=key_column & 0xfd;//1101

表示第2列按键按下。if(Pin_c_3==0 ) key_column=key_column & 0xfb;//1011

表示第3列按键按下。if(Pin_c_4==0 ) key_column=key_column & 0xf7;//0111

表示第4列按键按下。return key_column;}以上程序对应的键值表如下:

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

    关注

    7

    文章

    207

    浏览量

    32656
  • 矩阵键盘电路

    关注

    0

    文章

    4

    浏览量

    8324

原文标题:一种单片机矩阵键盘设计,实在是太实用了~~~~

文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FZH217 带键盘扫描接口的大笔段 LED 驱动控制专用电路 原厂技术支持

    至8位×24段,可根据需求配置。键盘扫描功能o 内置16×2bit键扫描矩阵,支持按键检测,内置5kΩ下拉电阻。辉度调节o 提供8级占空比可调的辉度控制,支持动态亮度调节。串行接口o
    发表于 12-03 11:01

    FZH216 带键盘扫描接口的大笔段 LED 驱动控制专用电路

    o 16×2bit 矩阵扫描,支持按键中断返回(KEYINT 引脚)。o 内置下拉电阻(5kΩ)和上拉电阻(10kΩ)。通信接口o 串行接口(CLK、STB、DIO),支持数据读写和指令配置。关键
    发表于 12-02 11:57

    FAQ_MA35_Family如何设置矩阵键盘

    FAQ_MA35_Family如何设置矩阵键盘
    发表于 09-02 06:57

    键盘薄膜高弹UV胶则是一种特殊改性的UV固化胶,用于薄膜键盘按键弹性体的部分或高弹性密封

    键盘来说更薄、更轻巧,节省了空间,适合移动设备和轻薄电子产品的设计。2.薄膜键盘采用薄膜作为触发器,按键触感柔软,操作起来更轻松、更安静。3.薄膜
    的头像 发表于 08-26 10:03 684次阅读
    <b class='flag-5'>键盘</b>薄膜高弹UV胶则是一种特殊改性的UV固化胶,用于薄膜<b class='flag-5'>键盘</b><b class='flag-5'>按键</b>弹性体的部分或高弹性密封

    ‌TLC6983 48×16共阴极矩阵LED显示驱动器技术文档总结

    TLC6983是一款高度集成的共阴极矩阵LED显示驱动器,具有48恒流源和16扫描FET。单个TLC6983能够驱动 16 ×
    的头像 发表于 08-22 13:53 751次阅读
    ‌TLC6983 48×<b class='flag-5'>16</b>共阴极<b class='flag-5'>矩阵</b>LED显示驱动器技术文档总结

    16段*8位/8*4按键阵矩 具有按键扫描LED专用电路

    显示设备。特点:#CMOS工艺#低功耗#显示模式:16 段 x8 位#键扫描矩阵:8x4 按键矩阵#8层次显示亮度调节#4线串行接口#内置
    发表于 08-06 16:30

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯
    的头像 发表于 06-05 14:19 1564次阅读

    ADP5587移动I/O扩展器和QWERTY键盘控制器技术手册

    无需监控键盘,从而将电流消耗降至较低,并增加了处理器带宽。ADP5587 还配有缓冲器/FIFO 和按键事件计数器,借助溢出换行和中断功能,可处理和跟踪多达 10 未处理的按键或 G
    的头像 发表于 05-22 11:08 758次阅读
    ADP5587移动I/O扩展器和QWERTY<b class='flag-5'>键盘</b>控制器技术手册

    hid usb读取不到扩展按键的问题

    windows电脑外接了一遥控器(标准hid键盘设备),这个遥控器上有四按键,分别是上一页、下一页(这两按键是标准
    发表于 05-20 20:22

    基于Nordic nRF52840无线键盘、鼠标物联网解决方案

    光学或激光传感器,提供准确的指针控制和灵敏的滚轮操作,让用户获得更好的操控体验。 3、舒适设计:注重人体工程学设计,无线键盘提供舒适的按键感受和手感,减少用户长时间操作的疲劳感。 4、
    发表于 03-25 17:44

    KEY按键静电保护方案

    方案简介 KEY按键是电子设备中常见的输入设备之一,其原理简单,常见于许多应用,包括手机、汽车和人机界面 (HMD)。KEY按键通常由按键帽、弹簧、触点等部分组成。当
    的头像 发表于 02-25 16:24 1147次阅读
    KEY<b class='flag-5'>按键</b>静电保护<b class='flag-5'>方案</b>

    4按键,3GPIO如何实现按下指示灯闪烁

    电路如果图,现在怎么操作才可以实现按下4按键有效,请大神写一程序或者说写按键检测程序。我怎
    发表于 02-18 16:50

    AN-660:XY矩阵键盘与MicroConverter的接口

    电子发烧友网站提供《AN-660:XY矩阵键盘与MicroConverter的接口.pdf》资料免费下载
    发表于 01-13 16:02 0次下载
    AN-660:XY<b class='flag-5'>矩阵</b><b class='flag-5'>键盘</b>与MicroConverter的接口

    开发第1LVGL程序与实现按键操作

    开发第1LVGL程序与实现按键操作
    的头像 发表于 01-07 13:49 4399次阅读
    开发第1<b class='flag-5'>个</b>LVGL程序与<b class='flag-5'>实现</b><b class='flag-5'>按键</b><b class='flag-5'>操作</b>

    求解答!用STC89C51系列数字秒表

    ,继续计秒键,归零键,通过上述按键,完成计秒功能 2.使用矩阵键盘结合8位LED数码管和蜂鸣器,能够实现100以内数字的加减乘除运算,显示结果,每按下
    发表于 12-08 16:48