单片机学习10——独立按键
独立按键输入检测:
#include<reg52.h>sbit LED1=P1^0;
sbit KEY1=P3^4;void main()
{KEY1=1;while(1){if(KEY1==0) //KEY1按下{LED1=0; //LED1被点亮}else{LED1=1;}}
}
按键
#include<reg52.h>#define uchar unsigned char
#define uint unsigned intsbit LED1=P1^0;
sbit KEY1=P3^4;sbit dula=P2^6;
sbit wela=P2^7;uchar disnum;uchar code table_duan[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};void main()
{P0=0xfe;wela=1;wela=0;KEY1=1;while(1){if(KEY1==0) //KEY1按下{LED1=0; //LED1被点亮disnum++;if(disnum==10){disnum=0;}while(!KEY1); //重要}else{LED1=1;P0=table_duan[disnum];dula=1;dula=0;}}
}
按键在闭合和断开的时候,触电会存在抖动的现象:

按键抖动时间是由按键的机械特性决定:
一般为5ms到10ms之间。
按键前沿抖动消除和按键后延抖动的消除:
#include<reg52.h>#define uchar unsigned char
#define uint unsigned intsbit LED1=P1^0;
sbit KEY1=P3^4;sbit dula=P2^6;
sbit wela=P2^7;uchar disnum;uchar code table_duan[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};void delay(uchar);void main()
{P0=0xfe;wela=1;wela=0;KEY1=1;while(1){if(KEY1==0) //KEY1按下{delay(10); //按键前沿抖动的消除if(KEY1==0) //按键前沿抖动的消除{LED1=0; //LED1被点亮disnum++;if(disnum==10){disnum=0;}while(!KEY1); //重要delay(10); //按键后延抖动的消除while(!KEY1); //按键后延抖动的消除} }else{LED1=1;P0=table_duan[disnum];dula=1;dula=0;}}
}void delay(uchar x)
{uchar a, b;for(a=x;a>0;a--){for(b=200;b>0;b--);}
}
在代码中增加了延时和判断的代码来消除按键抖动的问题。
然后测试,可以看到数码管的数字显示非常稳定。
相关文章:
单片机学习10——独立按键
独立按键输入检测: #include<reg52.h>sbit LED1P1^0; sbit KEY1P3^4;void main() {KEY11;while(1){if(KEY10) //KEY1按下{LED10; //LED1被点亮}else{LED11;}} } 按键 #include<reg52.h>#define uchar unsigned char #define uint unsigned intsbit …...
微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制
思路 补充一下,为什么这里我会想到使用"pre"类型的过滤器实现流量复制/流量镜像。 刚开始的时候,参考了阿里的流量镜像实现方案: 配置流量复制策略,阿里的方案本身是对基于云原生envoy做的,这确实是istio原…...
微信小程序image组件图片设置最大宽度 宽高自适应
问题描述:在使用微信小程序image组件的时候,在不确定图片宽高情况下 想给一个最大宽度让图片自适应,按比例,image的widthfiex和heightFiex并不能满足(只指定最大宽/高并不会生效) 问题解决:使用…...
虚幻学习笔记—文本内容处理
一、前言 本文使用的虚幻引擎5.3.2,在虚幻中已经集成了很多可以直接处理多样化文本的蓝图,比如格式化动态显示、浮点数多样化等。 二、实现 2.1、格式化文本显示动态内容:在设置某个文本时可以使用“Format Text”蓝图设置自定义可以的显示…...
WhatsApp API号解封教程(内含图片指引和申诉模板)
WhatsApp API 是专门为中大型企业设置的WhatsApp APP页面,API号并不像WhatsApp个人号和企业号一样可以直接从App Store 或Google Play 下载,而是需要对接官方来连接API。 虽然申请WhatsApp API号的程序和手续比较复杂,但是这个操作对于企业来…...
爬取极简壁纸
js反编译的代码需要解密之类的,直接给我干蒙圈了,借助selenium可以直接获取到调式工具中的源码,可以获取渲染后的链接,然后将链接交给下载函数(使用异步提高效率)即可。 后续学习完js反编译的话࿰…...
docker操作手册
写在前面的几个重要命令 docker与本地件的文件拷贝 # 查看容器ID docker ps -a# 本地文件拷本到容器 docker cp {local_path} {CONTAINER ID}:{path}# 容器拷本到本地 docker cp {CONTAINER ID}:{path} {local_path} # eg docker cp /Users/helloworld/Downloads/R-3.5.0 0a1…...
css Vue尺子样式
原生css生成尺子样式 <template><div class"page"><div class"Light"></div><div class"rile"><ul id"list"><!--尺子需要几个单位就加几个--><li></li><li></li&…...
C++ 数据结构之-最小栈(MinStack)
最小栈 最小栈(Min Stack)是一个支持常数时间复杂度获取栈中最小元素的特殊栈数据结构。通常,标准的栈数据结构只支持在常数时间内执行入栈(push)和出栈(pop)操作,但无法在常数时间内…...
【日常总结】优雅升级Swagger 2 升至 3.0, 全局设置 content-type application/json
目录 一、场景 二、问题 三、解决方案 四、延伸 上一节:【日常总结】Swagger-ui 导入 showdoc (优雅升级Swagger 2 升至 3.0)-CSDN博客 一、场景 接上一节:在 Swagger3Config extends WebMvcConfigurationSupport,…...
2023.11.27如何使用内网穿透工具实现Java远程连接操作本地Elasticsearch搜索引擎
文章目录 前言1. Windows 安装 Cpolar2. 创建Elasticsearch公网连接地址3. 远程连接Elasticsearch4. 设置固定二级子域名 前言 简单几步,结合Cpolar内网穿透工具实现Java远程连接操作本地Elasticsearch。 什么是elasticsearch?一个开源的分布式搜索引擎࿰…...
HNU 练习八 结构体编程题1. 评委打分
【问题描述】 校园卡拉OK比赛设置了7名评委,当一名选手K完歌之后,主持人报出歌手名字后,7位评委同时亮分,按照惯例,去掉一个最高分和一个最低分后,其余5位评委评分总和为该选手的最终得分。 一共有n组选手参…...
数据结构:字典树(前缀树,Trie树),压缩字典树(Radix)
字典树Trie Tree 字典树也称前缀树,Trie树。在 Elasticsearch 的倒排索引中用的也是 Trie 树。是一种针对字符串进行维护的数据结构。 字典树是对词典的一种存储方式,这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径,…...
前端学习系列之html
目录 初识html 发展史 优势 W3C 标准 地址 格式 网页基本标签 标题标签 段落标签 换行标签 水平线标签 字体样式 注释和特殊符号 特殊符号 图像、超链接 图像 常见图像格式 格式 超链接 格式 重要属性 href:规定链接指向的页面的 URL target…...
Star History 十月开源精选 |AI for Postgres
在 2023 年 Stack Overflow 开发者调查中,Postgres 顶替了 MySQL 被评为最受欢迎的数据库。一个重要因素应该是 Postgres 支持扩展:可扩展的架构 Postgres 仍然由社区拥有,Postgres 生态近年来蓬勃发展。 扩展可以看作是内置功能,…...
网络运维与网络安全 学习笔记2023.11.23
网络运维与网络安全 学习笔记 第二十四天 今日目标 VRRP负载均衡、BFD原理与配置、BFD典型应用 DHCP工作原理、全局模式DHCP VRRP负载均衡 VRRP单组缺陷 每网段存在一个VRRP组,缺点如下: 主网关数据转发压力大 备份网关不转发任何数据 网络设备利用…...
红黑树(万字图文详解)
红黑树 1. 红黑树的概念2. 红黑树的性质3. 红黑树节点的定义4. 红黑树结构5. 红黑树的插入操作5.1 按照二叉搜索的树规则插入新节点5.2 检测新节点插入后,红黑树的性质是否造到破坏5.2.1 情况一: cur为红,p为红,g为黑,u存在且为红…...
Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性
Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…...
数据挖掘 朴素贝叶斯
直入正题,直接看代码: 这是一段判断是不是藏话的代码 import numpy as np# 数据采集(定义函数加载数据集) def load_dataset():sent_list [[my, name, is, Devin],[you, are, stupid],[my, boyfriend, is, SB],[you, looks, ver…...
UI自动化测试工具有哪些优势?
UI自动化测试工具通过提高测试效率、覆盖率,减少测试时间和成本,以及支持持续集成等方式,为软件开发团队提供了一系列重要的优势,有助于提升软件质量和开发效率。 自动化执行:UI自动化测试工具可以模拟用户与应用程序的…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
