haas506 2.0开发教程 - KeyPad - 矩阵键盘
- 矩阵键盘
- 320矩阵键盘连线
- 案例说明
- 测试代码
- 功能测试
- class - KeyPad
- keypad.init() - 初始化keypad
- keypad.set_callback(usrFun) - 设置回调函数
矩阵键盘
- 矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
320矩阵键盘连线
- 矩阵式结构的键盘显然比直接法要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
- 开发板KEYIN1~KEYIN5是输入口,作为列线
- 开发板KEYOUT0~KEYOUT3是输出口作为行线
- 总共组成19个键的矩阵键盘(其中KEYIN5与KEYOUT3键值不存在)
案例说明
- 如下图,使用两组线,一组接入行线,一组接入列线
- 本案例将行线与列线短接,检测320开发板的矩阵键盘返回数值
测试代码
main.py
from driver import KeyPad
import utime as timekeypad=KeyPad()
keypad.init()
#usrFun参数为list数据类型,list[0]: 对应键值;list[1] :按键状态:按下为1,松开为2
def userfun(l_list):if l_list[1] == 1 :print('key_value:',l_list,'-------------------')else:print('release the key:',l_list)keypad.set_callback(userfun)
while True:time.sleep_ms(500)
功能测试
- 将两组线随机短接测试,pin脚接触时打印(‘key_value:’,l_list,‘-------------------’)
- 松开时打印(‘release the key:’,l_list)
- 不同行列的pin脚短接会返回不同的键值,共计19个键值.
class - KeyPad
keypad.init | keypad.set_callback |
---|---|
初始化keypad | 设置回调函数 |
创建keypad对象
keypad = KeyPad()
参数:
- 无
keypad.init() - 初始化keypad
参数:
- 无
返回值:
- 成功返回0,失败返回-1。
keypad.set_callback(usrFun) - 设置回调函数
作用:
- 按键接入模组后,按放按键后触发回调函数设置。
参数
参数 | 参数类型 | 参数说明 |
---|---|---|
usrFun | function | 回调函数,当外接键盘按键按放会触发此函数。 |
注意:usrFun参数为list数据类型。
list包含2个参数。其含义如下:
list[0]: 对应键值
list[1] :按键状态:按下为1,松开为2