解决方案:51个单片机矩阵键盘

电脑杂谈  发布时间:2020-09-24 02:03:09  来源:网络整理

52单片机矩阵键盘_51单片机矩阵键盘程序_51单片机键盘矩阵程序

52单片机矩阵键盘

这次我将从上次继续,并讨论复合键和矩阵键盘。

让我们先谈谈矩阵键盘,因为我编写的组合键代码基于矩阵键盘。当然,在独立键上编写键组合会更容易。因此,当矩阵键盘的组合键可以书写时,独立键的组合键也将被书写。

矩阵键盘检测和独立键之间有很大的区别,但是本质仍然相同。

首先查看矩阵键盘的:

52单片机矩阵键盘

矩阵键盘

52单片机矩阵键盘_51单片机矩阵键盘程序_51单片机键盘矩阵程序

由于矩阵键盘中每个按钮的两个接线端口都已连接到IO端口,因此我们必须控制软件中的微控制器在每个独立按钮的两端添加不同的电平。

[注意]:独立按钮非常简单,只需将一端直接接地即可。

从上面的中,我们可以看到端口P1的高四位控制行和第四控制列;因此我们可以写P1 = 0X0F或写P1 = 0XF0,以便每个独立按钮的两端都添加不同的级别。

代码编写过程与独立键相同。第一步是检测按键。根据上面的,矩阵键盘检测是否按下了按键,只需要为P1端口分配0X0F,然后检查P1端口的值是否仍为0X0F就可以了。

之后,应消除抖动,消除抖动的方法仍然相同,只是延迟一段时间,如图所示:

52单片机矩阵键盘

单芯片矩阵键盘可消除抖动

51单片机键盘矩阵程序_52单片机矩阵键盘_51单片机矩阵键盘程序

之后,只需确定按下了哪个按钮即可。

[注意]矩阵键盘在这里很复杂。

有两种判断按下哪个按钮的方法:

1、逐行扫描

逐行扫描是指首先扫描第一行中的哪个按钮。如果不扫描第二行,请查看是否按下了第二行中的按钮。如果尚未找到按钮,则继续扫描第三行和第四行,以找出按下了哪个按钮。该代码实现起来相对简单,并且这种扫描方法不是很常用,效率也不高,因此在此不再赘述。

2、行和列扫描

行和列扫描是指先扫描所有行以确定按下了哪一行键,然后扫描所有列以找出哪一列按下了键,这样就可以通过扫描两次确定哪一个按钮来确定被按下。

51单片机键盘矩阵程序_51单片机矩阵键盘程序_52单片机矩阵键盘

具体代码实现如下:

1、线扫描:

52单片机矩阵键盘

单芯片矩阵键盘行扫描

2、列扫描:

52单片机矩阵键盘

SCM矩阵键盘列扫描

51单片机矩阵键盘程序_52单片机矩阵键盘_51单片机键盘矩阵程序

最后,不要忘记按钮释放检测:

52单片机矩阵键盘

MCU矩阵键盘按键释放检测

这样,矩阵键盘的准备工作就完成了。让我们讨论一下组合键。当我撰写第七章时,我将其命名为复合键。现在,我认为它不是很好,或者称为组合键。

组合键表示在按下一个键的同时按下另一个键,会有不同的效果。例如:Ctrl + C用于复制,Shift +数字键可以键入特殊字符,等等。

编写代码的想法是:按下第一个键时,只要不松开键,它将始终检测可以与之组合的键,并根据不同的组合来达到不同的效果键。

代码如下:

52单片机矩阵键盘

SCM矩阵键盘组合键

仔细查看代码以了解。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-321458-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...