大家好,欢迎来到IT知识分享网。
矩阵按键:行列扫描法与反转扫描法
通常情况下,按键按下时会产生低电平信号,按键一般用低电平表示按下状态。
当按键没有被按下时,通常处于高电平状态,这是因为按键连接到电路时,内部的上拉电阻或外部的上拉电阻会将按键未按下的状态拉高为高电平。当按键被按下时,按键内部会导通,使连接到电路的引脚处于低电平状态,从而表示按键被按下。
这种低电平表示按下的设计方式是常见的,因为在数字电路中,低电平通常被认为是逻辑“0”,而高电平被认为是逻辑“1”。通过使用低电平表示按下,可以更容易地进行逻辑判断和控制。当然,也可以根据特定应用的需求,在设计中采用高电平表示按下,只需根据相应的逻辑处理即可。
1、矩阵按键行列扫描法:
原理:
矩阵按键行列扫描法是一种简单直观的按键扫描方法。在矩阵按键行列扫描法中,键盘的按键是通过行和列的交叉连接来构成一个矩阵。每个按键都位于一个行和一个列的交点上。通过轮询扫描的方式,逐个检测按键的状态。当有按键按下时,通过判断对应的行和列,可以确定按下的是哪一个按键。
一般来说:
行扫描,行线为低电平,列线为高电平。(就STC89C5类型的机子来说,一般都是用列扫描,以为行线端口有可能被其他的引脚占用(复用)(B站江协大的教学视频中的51单片机不建议用行扫描))
列扫描,行线为高电平,列线为低电平。
优点:
矩阵按键行列扫描法简单易懂,实现成本较低,适用于较小规模的键盘矩阵。
缺点:
随着键盘规模的增大,扫描效率会降低,因为需要逐一扫描每个按键。
矩阵按键行列扫描法(假设使用GPIO控制引脚):
2. 反转扫描法
原理:
反转扫描法是另一种常见的按键扫描方法。在反转扫描法中,将行和列的引脚分开连接,行引脚设置为输出,列引脚设置为输入。然后,将行引脚逐个设置为高电平,检测列引脚的状态来确定按键的状态。
优点:
反转扫描法的扫描效率相对较高,适用于大规模的键盘矩阵,因为只需逐一扫描行引脚。
缺点:
相比矩阵按键行列扫描法,反转扫描法在硬件连接上稍微复杂一些。
反转扫描法(假设使用GPIO控制引脚):
实例:
有一51矩阵按键的原理图如下:
#define KEY_MATRIX_PORT P1
//行列选中法:
//线反转法:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139534.html