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

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

3天内不再提示

51单片机--矩阵键盘

倩倩 来源:电子开发网 2020-09-18 16:51 次阅读

这次我接着上次的说,讲一下 复合按键和 矩阵键盘。

先说矩阵键盘,因为我写的组合键代码是在矩阵键盘的基础上写的,当然在独立按键上写组合键更简单一些。所以当你矩阵键盘的组合键会写的时候,你在独立按键上的组合键也就会写了。

矩阵键盘的检测和独立按键有很大的区别,但是究其本质还是一样的。

先看一下矩阵键盘的原理图:

矩阵键盘原理图

由于矩阵键盘中每一个按键的两个接线口都是接在IO口上的,所以我们就必须在软件里面控制单片机在每个独立按键的两端加上不同的电平。

【注】:独立按键很简单,直接在一端接地就行了。

从上面的原理图中可以看出 P1 口的高四位控制 行,第四位控制 列;所以我们就可以写 P1 = 0X0F 或者写 P1 = 0XF0,这样就实现了在每一个独立按键两端加上不同的电平。

代码编写流程和独立按键一样,第一步要先检测到按键按下,根据上面的原理图,矩阵键盘检测按键是否按下只要给 P1 口赋值 0X0F,然后检测 P1 口的值是否还是 0X0F即可。

之后就要消除抖动,消除抖动的方法还是一样,延时一段时间即可,如图:

单片机矩阵键盘消除抖动

之后就判断具体是哪个按键按下就行了。

【注】矩阵键盘复杂就是复杂在这里。

判断到底是哪个按键按下的思路有两种:

1、逐行扫描

逐行扫描就是说先扫描第一行中的哪个按键按下了,如果没有再扫描第二行,看一下是不是第二行里的某个按键按下了,如果还没有找到按下的那个按键,那么就继续扫描第三行、第四行,知道找出哪个按键被按下了。这个代码实现比较简单,而且这种扫描方法不怎么常用,效率不高,所以这里我就不写了。

2、行列扫描

行列扫描就是说先扫描所有的行,确定是哪一行的按键被按下了,之后再扫描所有的列,找出哪一列有按键被按下了,这样只要扫描两次就可以确定出到底是哪个按键被按下了。

具体代码实现如下:

1、行扫描:

单片机矩阵键盘行扫描

2、列扫描:

单片机矩阵键盘列扫描

最后别忘了按键的松开检测:

单片机矩阵键盘按键松开检测

这样矩阵键盘的编写就说完了,下面说组合键,写第七篇的时候我给它起名字叫复合按键,现在觉得不太好,要不就叫组合键吧。

组合键就是说当按住一个按键的同时再按另一个按键的时候,会有不同的效果。比如:Ctrl+C是复制、Shift+数字键可以敲出特殊字符等等。

代码编写思路就是:当按住第一个按键的时候,只要这个按键不松开就一直检测能够和它组合的按键,根据按键的不同组合实现不同的效果。

代码如下:

单片机矩阵键盘组合键

大家对照代码仔细看一下就明白了。

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

    关注

    6001

    文章

    43973

    浏览量

    620803
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66747
  • 矩阵键盘
    +关注

    关注

    7

    文章

    204

    浏览量

    31125
收藏 人收藏

    评论

    相关推荐

    51单片机矩阵键盘控制设计

    51单片机矩阵键盘控制设计
    发表于 05-30 11:33

    51单片机矩阵键盘c语言1602密码锁

    51单片机矩阵键盘c语言密码锁.....全是c语言最基础写的,学过的都看得懂,包含1602,24c02,矩阵
    发表于 11-08 20:20

    51单片机矩阵键盘和数码管实现计算器

    51单片机矩阵键盘和数码管实现计算器,,,最简单的c语言写的,保定看得懂
    发表于 11-08 20:23

    stc89c51单片机矩阵键盘扫描 精选资料分享

    c51单片机矩阵键盘扫描实现代码
    发表于 07-20 06:00

    51单片机矩阵键盘C程序主程序

    51单片机矩阵键盘C程序主程序1:void main(){uchar i,j,ki=0;j=0;while(1){i=key();//键盘
    发表于 07-20 06:01

    51单片机矩阵键盘c语言程序

    51单片机矩阵键盘c语言程序,c51单片机实现矩阵
    发表于 07-21 09:20

    基于51单片机矩阵键盘电子密码锁

    基于51单片机矩阵键盘电子密码锁,使用矩阵键盘输入四位密码,有错误和正确提示音。
    发表于 07-21 11:23 113次下载

    51单片机矩阵键盘的原理图

    51单片机矩阵键盘的原理图
    发表于 12-30 11:32 65次下载

    基于AT89C51单片机矩阵键盘电子琴

    方案介绍AT89C51单片机矩阵键盘电子琴通过16个按键弹奏16种音调;数码管根据按键显示。
    发表于 12-15 17:08 6次下载

    基于89C51单片机矩阵键盘反转扫描源程序

    基于89C51单片机矩阵键盘反转扫描源程序
    发表于 05-15 11:02 2次下载

    基于89C51单片机矩阵键盘简易计算器源程序

    基于89C51单片机矩阵键盘简易计算器源程序
    发表于 05-15 11:01 20次下载

    基于89C51单片机矩阵键盘密码锁源程序

    基于89C51单片机矩阵键盘密码锁源程序
    发表于 05-15 11:01 0次下载

    基于89C51单片机矩阵键盘行列扫描源程序

    基于89C51单片机矩阵键盘行列扫描源程序
    发表于 05-15 11:00 1次下载

    基于89C51单片机矩阵键盘中断扫描源程序

    基于89C51单片机矩阵键盘中断扫描源程序
    发表于 05-15 11:00 2次下载

    51单片机矩阵键盘扫描程序

    51单片机矩阵键盘扫描程序
    发表于 05-17 17:20 4次下载