独立按键1(超详细版)

独立按键与矩阵按键 轻触按键:相当于是一种机械开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。在某一个系统设计中,如果需要使用很多的按键时,做成独立按键会大量占用 IO 口,因此我们引入了矩阵按键的设计。机械开关触点的断开、闭合时由于弹性作用,不会立马稳定的断开与接通,而是会产生一个轻微的抖动。根据按键抖动的波形图,我们只需要在按键按下的时候给程序一个延迟,延迟掉这段抖动的时间即可。为了防止多次检测按键或区分是按下触发程序还是抬手触发程序,我们需设计一个检测抬手的程序。 阅读详情
AI摘要

本文详细介绍了独立按键的工作原理,包括按键图、抖动现象及其解决方案(硬件和软件消抖)。还展示了如何使用按键控制LED的亮灭以及简单的数值显示,通过延时函数实现按键处理逻辑。

大家好,上一篇我们一起学习了数码管的理论基础和代码书写思路,并学会数码管如何应用——多参数分时显示,今天我们将一起学习独立按键的基本理论和相关应用。
我的人生格言:“尽最大努力,做最好的自己!”

一、按键介绍

1.按键图

独立按键一端接I/O口,另一端接地。
在这里插入图片描述

看下图为独立按键模块,按键左端统一接P3口,右端均接地:

key1接P3^0,
key2接P3^1,
key3接P3^2,
key4接P3^3。

在这里插入图片描述

2.按键抖动

按键写代码一定要注意抖动。

按键按下时,由于一端接地,会使按键接IO端变成低电平,相反,当按键被松开时,由于按键接IO端与接地端断开,会变成高电平。值得注意的是,按键是有一定弹性的,按键在按下时,按键接IO端变成低电平需要时间,这段时间按键会发生前沿抖动,同理,松开按键,按键接IO端变成高电平也需要一段时间,这段时间按键会发生后沿抖动,整个抖动需要5ms-10ms时间。

在这里插入图片描述

3.按键消抖

按键抖动大致有两个方向解决,分别为硬件消抖和软件消抖

1.硬件消抖
加一个电路,可以利用触发器等进行电路过滤。
2.软件消抖
(1)利用延时函数消抖。
(2)利用定时器精准消抖。
(2)中断法消抖

本章先我们简单使用延时函数进行代码讲解,后续会讲其他方法。

二、相关运用

1.简单实现按键控制8个LED的亮灭

(1)仿真图1

在这里插入图片描述

(2)代码1

key.c
这是按键控制模块,当按下key1的按键时,该模块函数key()会返回一个值,这个值表示第一个按键被按下。

#include "key.h"//独立键盘头文件
#include "delay.h"//延时头文件

/******************************************************************************************
函数名:key
功能:  独立键盘函数
参数:  无
返回值:unsigned char
******************************************************************************************/
unsigned char key()//独立键盘按键函数
{
   
   
	unsigned char temp=0;
	if(key1==0)//判断是否按下键盘
	{
   
   
		delay(10);//消抖
		if(key1==0)//再次判断是否按下键盘
		{
   
   
			temp=1;//键盘按下,中间值temp赋为1
		}while(key1==0);//松手等待
	}
【51单片机系列】独立按键介绍 51单片机中的独立按键模块介绍 阅读详情

相关推荐

蓝桥杯单片机学习4——独立按键&矩阵按键

独立按键&矩阵案件的使用方法和代码实现、按键扫描的思路、按键消抖的原理、

weixin_67907028的博客 3914

51单片机 --独立按键

前言 前几章介绍的都是IO 口输出的使用,这一教程我们通过独立按键实验来介绍IO 口作为输入的使用。开发板上板载8 个独立按键。本教程所要实现的功能是:通过开发板上的独立按键K1 控制D1 指示灯亮灭。大家可以参考前面的实验内容。 一、按键介绍 按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时,开关断开。开发板上使用的按键及内部简易图如下图所示: 按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态, 如果按键按下,初始导通状态变为断开,初始断开状

weixin_55922953的博客 1万+

独立按键BTN

独立按键位于整个矩阵键盘的最左侧,4、5、6、7.左下角,跳帽选择2、3,选择的是独立按键,起作用。按下对应按键之后,分别和地相连,置0.两个管脚同时和串口服务,用于串口通信以及给单片机下载程序用。通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动,如图所示。

weixin_66429617的博客 1876

蓝桥杯单片机 独立按键与矩阵按键

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 按键设计一般分为两种:独立按键和矩阵键盘。按键数量较少的用前者,按键数量较多的用后者。虽然两种设计都是操作按键,但是其键盘扫描方式和程序的设计思路是截然不同的。独立按键简单很多,矩阵键盘虽然复杂,只要掌握了本质思路,也没有什么困难之处。 一、蓝桥杯按键原理图 二、独立按键与矩阵按键处理思路 1.独立按键 独立按键有两个引脚,其中一个通过上拉电阻接到单片机...

m0_56670966的博客 3760

基于STC89C52的独立按键控制独立数码管显示

本文成功实现了基于 STC89C52 的独立按键控制独立数码管显示的功能,并借助 Proteus 软件完成了仿真验证。在这一过程中,深入了解了独立按键、独立数码管的工作原理,掌握了 STC89C52 单片机的编程技巧以及 Proteus 软件的使用方法。通过实际操作,读者可在此基础上进行功能扩展,如增加按键功能、显示更多数字或字符等,进一步提升电子系统设计能力,为更复杂的项目开发积累经验。

m0_59727887的博客 1358

ImageNet分类实战:用PyTorch复现AlexNet的5个关键技巧(附代码)

本文详细介绍了使用PyTorch复现经典AlexNet模型进行ImageNet图像分类的五个关键工程技巧。内容涵盖模型架构的现代重构、训练策略优化、核心组件实现与替代方案,以及实用的训练调试方法,并提供了完整的代码示例,帮助开发者深入理解深度卷积神经网络的实现细节与优化思路。

i0j1k2l3m的博客 92

SpringBoot整合oceanbase,实现oracle无缝切换到oceanbase

随着去“IOE”化的潮流,近些年来,许多与国家相关的项目不约而同到地往”国产化“方向靠拢,不可避免地,一些项目可能需要进行数据库迁移。

4620

【软件分享】天若OCR文字识别V4.48(翻译功能免费)

软件简介 吾爱破解论坛大佬天若幽心开发的一款OCR文字识别工具。支持快速截图识别,以及文本翻译。 下载地址 蓝奏云盘:点击下载 百度网盘:点击下载(密码:4dm4) 坚果云盘:点击下载 天翼云盘:点击下载 微软云盘:点击下载 使用教程 1、下载后对压缩包进行解压 2、双击天若OCR文字识别.exe 3、发现桌面右下角出现软件图标 4、双击软件图标即可开始截图识别 原帖地址 https://www.52pojie.cn/thread-692917-1-1.html ...

XavierJ的博客 1万+

gRPC之gRPC开发流程与入门案例

gRPC之gRPC开发流程与入门案例

YIYIYI 3757

吊打原版YOLOv8!ASF-YOLO多尺度融合+注意力机制实战解析(遥感/医疗/质检均适用)

ASF-YOLO融合YOLOv8的创新目标检测框架摘要 ASF-YOLO是针对小目标检测优化的先进框架,采用三重特征编码器和尺度序列融合技术增强多尺度特征提取能力。核心创新包括: 三重特征编码器(TPE)融合跨层级信息 尺度序列特征融合(SSFF)模块通过3D卷积处理多尺度信息 通道-位置注意力机制(CPAM)聚焦关键特征区域 Zoom_cat模块实现自适应多尺度特征融合 该框架特别适用于医学影像、遥感检测等小目标密集场景,通过动态特征权重调整显著提升检测精度。关键技术实现包含多尺度特征统一、3D卷积序列处

FJN110的博客 526

【应用】打造你的安全本地AI购物助手:OpenClaw + 淘宝MCP部署全攻略

本文介绍了在Ubuntu虚拟机中配置OpenClaw连接Windows宿主机的淘宝MCP服务的两种方案。核心原理是通过修改MCP服务监听地址或SSH隧道转发,实现跨网络访问。方案1推荐修改MCP服务绑定0.0.0.0并配置防火墙放行端口,适合长期使用;方案2通过SSH隧道转发,适合临时测试。文章详细说明了环境准备、配置文件修改及两种互通方案的具体实施步骤,重点解决了虚拟机与宿主机网络互通的关键问题。

海兰 1320

java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 22】|泛化建模(上):领域知识更抽象怎么办?

java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 22】|泛化建模(上):领域知识更抽象怎么办?

大壮 1165

ABAP CDS Time Functions 全面解析:用 TIMS_IS_VALID 护航时刻字段的正确性

摘要:本文深入解析ABAP CDS时间函数TIMS_IS_VALID的应用,重点介绍其在企业系统时间字段校验中的关键作用。文章指出无效时间数据会导致业务流程混乱,而CDS层校验能有效减少重复逻辑。详细说明TIMS类型格式要求、空值处理规则,并提供两种工程实现方案:在CDS视图中直接派生校验列,或通过ABAP SQL在内存表中批量验证。最后给出可直接运行的代码示例,包括一个ABAP报表演示内存表验证,以及一个CDS View Entity实现系统时间自动映射与校验,帮助开发者在业务场景中快速落地时间校验功能。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 193

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 数码管多参数分时显示--项目
下一篇: 独立按键(二)——一键一义(多项目举例)
@日月同辉,与我共生
博客等级 码龄4年 3247粉丝 44原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值