2.23 haas506 2.0开发教程 - KeyPad - 矩阵键盘(仅支持M320开发板)

news/2025/3/5 1:02:26/

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.initkeypad.set_callback
初始化keypad设置回调函数

创建keypad对象
keypad = KeyPad()

参数:

keypad.init() - 初始化keypad

参数:

返回值:

  • 成功返回0,失败返回-1。

keypad.set_callback(usrFun) - 设置回调函数

作用:

  • 按键接入模组后,按放按键后触发回调函数设置。

参数

参数参数类型参数说明
usrFunfunction回调函数,当外接键盘按键按放会触发此函数。

注意:usrFun参数为list数据类型。

list包含2个参数。其含义如下:

list[0]: 对应键值

list[1] :按键状态:按下为1,松开为2


http://www.ppmy.cn/news/561910.html

相关文章

2.22 haas506 2.0开发教程 - uhashlib - 哈希算法(仅支持M320开发板)

haas506 2.0开发教程 - uhashlib - 哈希算法 简介案例说明案例代码测试结果 class - uhashlibhmacsha1- 创建一个带密钥的sha1哈希对象sha1 - 创建一个SHA1哈希对象sha256 - 创建一个SHA256哈希对象md5 - 创建一个MD5哈希对象update - 将更多的数据加到散列队列中digest - 返回…

juniper M320设备日志采样

日志采用 set forwarding-options sampling input family inet rate 1000 set forwarding-options sampling input family inet max-packets-per-second 4500 set forwarding-options sampling output flow-inactive-timeout 15 set forwarding-options sampling output flow-a…

5.32 综合案例2.0 - TTS语音云播报(支持M320开发板)

HaaS506 - TTS语音云播报 简介准备硬件接口代码流程功能实现1、物联网平台开发2、设备端开发代码调试 3.应用平台开发3.1新建‘普通项目’3.2关联产品和设备3.3新建移动应用 简介 用python开发板写的云喇叭,文字转语音,附教程源码 手机端发送文字&#x…

MongoDB University课程M320 Data Modeling 学习笔记

讲数据模型,课程介绍参见这里。 Chapter 1: Introduction to Data Modeling 需要具备的基础知识 MongoDB Concepts and Vocabulary Database and Collection in MongoDB Performing joins with $lookup Relational Database Concepts and Vocabulary Table (W…

学计算机的雷蛇与苹果,雷蛇做了什么 让学霸苹果也抄袭他了

【IT168 资讯】苹果总是以那种:永远被抄袭却从未被超越的姿态展示在世人面前,似乎苹果就是那种不作弊的学生,永远只有他被抄作业却从来没有抄袭别人。不过这种观点,笔者只能说图样图森破!你肯定没见过比苹果还优秀的学生。 最近网…

CVE-2019-13142:雷蛇影音软件(Razer Surround)的权限提升漏洞

软件版本:Razer Surround 1.1.63.0 操作系统版本:Windows 10 1803(x64) 漏洞说明:Razer Surround软件中文件夹设置缺陷导致的权限提升 目的 我希望这篇文章能鼓励更多的人加入漏洞研究这个看似很困难的领域。虽然这…

绕过雷蛇官网的动态验证码

大家好,我是dhakal_ananda,来自尼泊尔,这是我在Hackerone上参加的雷蛇漏洞悬赏项目的一部分。一开始这个漏洞悬赏项目是一个非公开项目,我接到邀请后并没有参加;后来它变成了公开项目,我反而对它起了兴趣。…

铸博皇御:炒黄金入门这几点别忽略

炒黄金和投资股票一样,也是一种高风险回报大的投资方式。但无论如何,新手投资黄金须谨慎,一定要做好风险抵抗。那么,炒黄金入门需要注意哪几点呢? 任何投资都需要遵循一定的规律,开始以为很简单&#xff0c…