ESP32 矩阵键盘 4*3状态机

news2024/10/24 2:35:17

简洁高效的ESP32处理矩阵键盘代码…
在这里插入图片描述

/**********矩阵键盘IO映射***************
  3(9)  1(8)   5(4)
                    2(13)
                    7(12)
                    6(18)
                    4(19)
 *************************************/
uint8_t Trg=0,Cont=0;
void Key_Task(void)
{
  uint8_t ReadData,ColumnData,RowData;
  pinMode(9,INPUT_PULLUP);pinMode(8,INPUT_PULLUP);pinMode(4,INPUT_PULLUP);//列线输入
  pinMode(13,OUTPUT);pinMode(12,OUTPUT);pinMode(18,OUTPUT);pinMode(19,OUTPUT);//行线
  //列高行低
  digitalWrite(13,0);digitalWrite(12,0);digitalWrite(18,0);digitalWrite(19,0);
  ColumnData =0x01<<8 | (digitalRead(9)<<6) | (digitalRead(8)<<5) | (digitalRead(4)<<4); //读取列线

  pinMode(9,OUTPUT);pinMode(8,OUTPUT);pinMode(4,OUTPUT);//列线
  pinMode(13,INPUT_PULLUP);pinMode(12,INPUT_PULLUP);pinMode(18,INPUT_PULLUP);pinMode(19,INPUT_PULLUP);//行线输入
  //列低行高
  digitalWrite(9,0);digitalWrite(8,0);digitalWrite(4,0);
  RowData = (digitalRead(19)<<3) | (digitalRead(18)<<2) | (digitalRead(12)<<1) | digitalRead(13); //读取行线

  ReadData=(ColumnData | RowData)^0XFF;
  Trg = ReadData&(ReadData^Cont);	//记录短按键值
  Cont = ReadData;	//记录长按键值

/****************矩阵键码表***********
  1-0X41  	2-0X21 	3-0X11
  4-0X42	5-0X22 	6-0X12
  7-0X44	8-0X24 	9-0X14
  *-0X48	0-0X28 	#-0X18
************************************/
  //按键任务区
  if(Trg == 0x48){ //*按下
    
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1843030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[面试题]RabbitMQ

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

候选键的确定方法-如何判断属性集U的子集K是否为候选键、如何找到关系模式的候选键

一、候选键的定义 在关系模式R(U,F)中&#xff0c;若&#xff0c;且K满足&#xff0c;则K为关系模式R的候选键 关系模式R的候选键必须满足以下两个条件&#xff1a; &#xff08;1&#xff09;必须是属性集U的子集 &#xff08;2&#xff09;完全函数决定属性集U 二、如何…

使用opencv合并两个图像

本节的目的 linear blending&#xff08;线性混合&#xff09;使用**addWeighted()**来添加两个图像 原理 (其实我也没太懂&#xff0c;留个坑&#xff0c;感觉本科的时候线代没学好。不对&#xff0c;我本科就没学线代。) 源码分析 源码链接 #include "opencv2/imgc…

工控 UI 风格美轮美奂

工控 UI 风格美轮美奂

Docker 部署项目,真的太雅了~

大家好&#xff0c;我是南城余&#xff01; 最近在找工作&#xff0c;正好手里有台服务器&#xff0c;之前项目上线用的宝塔部署项目上线&#xff0c;在公司实习了一年后&#xff0c;发现如今项目部署都使用的是容器化部署方案&#xff0c;也就是类似于和 Docker 一样的部署方案…

PFC 离散元数值模拟仿真技术与应用

近几年&#xff0c;随着计算能力的提高和算法的优化&#xff0c;离散元仿真技术得到了快速发展&#xff0c;并在学术界产生了大量研究成果。在 PFC 离散元计算中无需给定材料的宏观本构关系和对应的参数&#xff0c;这些传统的参数和力学特性在程序中可以自动得到。据调查&…

【绝对有用】刚刚开通的GPT-4o计算这种数学题目出现问题了

欢迎关注如何解决以上问题的方法&#xff1a;查看个人简介中的链接的具体解决方案

Matlab数学建模实战应用:案例2 - 传染病传播

目录 前言 一、问题分析 二、模型建立 三、Matlab代码实现 四、模型验证 灵敏度分析 五、模型应用 实例总结 总结 前言 传染病传播模型是公共卫生和流行病学的重要研究内容&#xff0c;通过数学建模可以帮助我们理解传染病的传播规律和趋势&#xff0c;以便制定有效的…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 机器人搬砖(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

全网最易懂,开源时序数据库influxDB,实际应用评测

前言&#xff1a; 当今是信息爆炸的时代&#xff0c;在处理高频数据时&#xff0c;关系型数据库oracle/mysql明显表现出乏力&#xff0c;因秒级、毫秒级高频数据&#xff0c;分分钟可以把关系型数据库的表塞爆。在日常生活工作中&#xff0c;我们经常会遇到哪些需要高频分析的场…

令人震撼的人类智慧的科学领域-AI技术

AI&#xff0c;全称为人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;是一门致力于让机器模仿人类智慧的科学领域。其核心技术涵盖了机器学习、自然语言处理、计算机视觉及专家系统等多个方面。AI旨在开发能够感知环境、进行逻辑推理、自主学习并做出决策…

Leetcode 力扣124. 二叉树中的最大路径和 (抖音号:708231408)

二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &#xff0c…

基于JSP的二手交易平台网站

开头语&#xff1a; 你好&#xff0c;我是计算机专业的学长猫哥。如果你对二手交易平台感兴趣或有开发相关需求&#xff0c;欢迎联系我&#xff0c;我的联系方式见文末。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;ECLI…

vue3 antdv Select 实现输入关键词,通过服务器去查询数据,并显示到表格中的实现思路。

实现思路&#xff1a; 1&#xff09;输入关键词&#xff0c;通过Select的查询事件&#xff08;onSearch&#xff09;来到服务器查询数据。 2&#xff09;根据查询到的数据显示到表格中&#xff0c;然后通过表格的&#xff08;cellClickEvent&#xff09;事件来选择相关的用户…

第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

第四届人工智能、机器人和通信国际会议&#xff08;ICAIRC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 2024年12月27-29日 | 中国厦门 重要信息 会议官网&#xff1a;www.icairc.net 录用通知时间&…

视觉应用线扫相机速度反馈(倍福CX7000PLC应用)

运动控制实时总线相关内容请参考运动控制专栏,这里不再赘述 1、运动控制常用单位u/s运动控制单位[u/s]介绍_运动控制 unit是什么单位-CSDN博客文章浏览阅读176次。运动控制很多手册上会写这样的单位,这里的u是英文单词unit的缩写,也就是单位的意思,所以这里的单位不是微米…

阿里云服务器提醒漏洞要不要打补丁?

我们自己用的电脑一旦发现漏洞&#xff0c;往往是第一时间进行打补丁重启等等&#xff0c;但是作为服务器而言&#xff0c;往往没有这个习惯&#xff0c;为什么&#xff1f;因为害怕服务器打补丁以后&#xff0c;重启后出现打不开的情况&#xff0c;毕竟稳定的运行似乎在这种情…

免费企业级日志采集工具

免费试用下载: Gitee下载 最新版本 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

rust数据类型

一&#xff0c;基本类型 1&#xff0c;基本类型 &#xff08;1&#xff09;整数类型 let x111_222_3334;let y:u161123; 整数默认是i32类型&#xff0c;整数中间的下划线可以忽略。 &#xff08;2&#xff09;浮点数 在 Rust 中浮点类型数字也有两种基本类型&#xff1a; …

停车场防逃费设备有哪些,捷曜超眸相机怎么样,有哪些功能?

在当今快速发展的城市交通环境中&#xff0c;车场管理面临着诸多挑战&#xff0c;其中防逃费现象尤为突出。频繁的逃费行为不仅给车场运营带来了经济损失&#xff0c;也严重影响了停车场的正常秩序。对于车场防逃费方案中&#xff0c;超眸相机&#xff0c;以其尖端的高清成像技…