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

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

  1. SAP UI5 应用开发教程之三十五 - 如何把本地开发的 SAP UI5 应用部署到 ABAP 服务器上试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

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

    HaaS506 - TTS语音云播报 简介 准备 硬件接口 代码流程 功能实现 1.物联网平台开发 2.设备端开发 代码 调试 3.应用平台开发 3.1新建'普通项目' 3.2关联产品和设备 3.3新 ...

  3. 微信网页开发教程 php,PHP实现微信网页授权开发教程,php授权教程_PHP教程

    PHP实现微信网页授权开发教程,php授权教程 微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息:在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信 ...

  4. mapbox-gl开发教程(一):搭建前端开发环境

    –mapbox-gl是一个开源.基于webgl技术的前端地图类库– 开发教程篇一:搭建前端开发环境 1.mapbox官网注册一个账号,生成一个开发token,在mapbox-gl2.0以前,使用自搭建 ...

  5. 微信小程序开发教程:项目二微信小程序开发基础 课后习题

    <微信小程序开发教程>主编/黄寿孟 易芳 陶延涛 湖南大学出版社 目录 一.单选题 二.多选题 三.判断题 四.填空题 五.简答题 1.请简单描述页面样式的单位rpx与px的关系. 2.简 ...

  6. 不会ps可不可以html5开发,零基础的 PhotoShop CEP 6 开发教程 「 7 」UI - HTML 开发的一些细节...

    <零基础的 PhotoShop CEP 6 开发教程>系列目录 CEP 面板实际上就是一个 Chormium 改造的浏览器(准确来说是 LIBCEF),在 CC2015 上 LIBCEF ...

  7. 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF

    支持Android的热门ARM硬件平台简介 ARMv7架构SOC l TI OMAP系列,2009年OMAP3和OMAP4关注度较高 l Freescale i.MX51系列 l Qualcomm 8 ...

  8. android 多界面开发,安卓开发教程(Android多界面应用程序开发)

    安卓开发教程(Android多界面应用程序开发) 开篇 本文阅读需10分钟,简单易上手,属于安卓开发教程的基础部分. 建议精读,深刻理解大意.多做实践.多写代码. 本文章由做全栈攻城狮原创首发. 同名 ...

  9. 聆思CSK6开发工具使用详解(支持Zephyr开发)

    目录 前言 工具概况 命令行工具lisa zep简介 安装 检查和修复 更新 常用命令行指令演示(灯控示例) 创建工程 编译工程 烧录 VSCode插件包 CSK Application Develo ...

最新文章

  1. iphonex重量_精仿苹果iPhone X手机配置介绍
  2. 关于 Capella 需要纠正的语音
  3. mysql为什么要重建索引_Oracle 重建索引的必要性
  4. Ubuntu 12.04 root用户登录设置
  5. jeecg3.8popup弹出窗口触发失去焦点事件,引发验证弹窗,影响体验问题的解决办法
  6. Win10开机跳过欢迎界面直接进系统桌面的设置方法
  7. shiro-cas------整合springboot客户端
  8. 无共享模式的数据架构
  9. TCP 的 keeplive保活机制
  10. 安川机器人外部急停信号点不开_安川机器人外部IO启动
  11. c语言编写五子棋报告,C语言编写五子棋游戏
  12. 编译原理实验一:单词的词法分析程序设计
  13. wbincms v1.5 综合门户管理系统发布 thinkphp3.2.3+amazui-2.5.2
  14. 改进YOLOv7系列:23.YOLOv7添加CBAM注意力机制
  15. matlab应用最简差分格式,泊松方程有限差分格式的构造以及MATLAB实现.docx
  16. c语言常用算法pdf,妙趣横生的算法(C语言实现 第2版) 带目录完整pdf[94MB]
  17. 第八章 STM32+SGP气体传感器+DHT11温湿度传感器+OLED模块显示室内温湿度、二氧化碳和甲醛浓度
  18. win11更新后,edge浏览器闪屏掉帧
  19. 我对双飞翼布局理解,以及双飞翼布局的好处
  20. 利用IP查主机名的三种方法

热门文章

  1. 多少往事付东风,go with wind
  2. 2022东南大学网安916专硕上岸经验帖
  3. Java中InputStream装饰器模式的大家族
  4. matlab数据导出excel,matlab数据点导出excel表格-怎样将matlab中数据导出到excel中?...
  5. 2022年亚太数学建模竞赛-问题C:全球变暖与否?-思路详解
  6. 什么是局域网域名?如何解析?
  7. Centos 7安装Quagga
  8. 科技让教育更美好:跟谁学更名高途,重新定义教育场景
  9. phpyun人才招聘系统接入阿里云短信
  10. 阿贝不变量等三个重要公式的推导