51单片机独立按键控制LED灯,按键按一次亮,再按一次灭
1、功能描述
独立按键控制LED灯,按键按一次亮,再按一次灭
2、实验原理
轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开;
独立按键原理图如下:

其在MCU上的位置如下所示:

由上面两张图可以知道,独立按键是接在MCU的P3.0口到P3.3口的;可以看到,独立按键的右端是接地的;这里需要注意,独立按键的一端接地,独立按键就是一个开关;以K1为例,K1右端是GND,左端是RXD,我们知道,单片机在刚上电时,所有i/o口默认都是高电平的;所以当K1按键没有按下时,RXD是高电平,但当K1按键按下时,电路进行了连通,RXD接通了GND,所以RXD此时变成了低电平。在寄存器中写入一个值,该值就会同步到对应的i/o口上;其实反之也成立,即通过寄存器可以读到i/o口的状态,是高电平还是低电平。所以当按键没有按下时,寄存器读到的该i/o的状态就是高电平(即1)﹔反之,当按键按下时,寄存器就可以读到该i/o口的状态为低电平(即O)﹔我们则可以通过寄存器读到的i/o口的状态是高电平还是低电平,就知道按键是按下还是松开了。
3、编程思路
在main函数中,进入一个无限循环while(1),程序将一直在这个循环中执行。
在循环中,通过检查P31引脚是否为低电平来判断是否有按键按下。如果P31为低电平,说明有按键按下;当检测到按键按下时,首先进行一个短暂的延时,然后再次检查P3_1引脚的状态,以避免按键的抖动影响,然后,将P2_0引脚的状态取反,以实现LED的闪烁效果。
4、代码
#include <REGX52.H>
void Delay(unsigned int xms) {
unsigned char i, j;
while(xms)
{i = 2;j = 239;
do
{while (--j);
}while (--i);xms--;
}
}
void main()
{
while(1)
{if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);P2_0 = ~P2_0;}
}
}
相关文章:
51单片机独立按键控制LED灯,按键按一次亮,再按一次灭
1、功能描述 独立按键控制LED灯,按键按一次亮,再按一次灭 2、实验原理 轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开;…...
【上海大学计算机组成原理实验报告】七、程序转移机制
一、实验目的 学习实现程序转移的硬件机制。 掌握堆栈寄存器的使用。 二、实验原理 根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当LDPC有效时,如果此时DUBS上的值就是转移的目标地址,则此目标地址被打入PC&am…...
LLVM Cpu0 新后端7 第一部分 DAG调试 dot文件 Machine Pass
想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…...
修复www服务trace漏洞
验证方式:curl -v -X TRACE ip:port,或使用其他接口调试工具如Postman 响应:状态行405 Method Not Allowed且响应体无内容 方案一:使用过滤器 若webserver是tomcat, 添加过滤器的方式有很多 Component public class TraceHttpMe…...
算法:101. 对称二叉树
对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: 树中节…...
wordpress 使用api发布文章
1.安装插件 在/wp-content/plugins/目录执行以下命令 $ sudo git clone https://github.com/WP-API/Basic-Auth.git 2.Python脚本 import requestsurl http://www.ziyuanwang.online/wp-json/wp/v2/postsuser adminpassword xxxxxheaders {Content-Type: application/j…...
《Brave New Words 》2.2 阅读理解的未来,让文字生动起来!
Part II: Giving Voice to the Social Sciences 第二部分:为社会科学发声 The Future of Reading Comprehension, Where Literature Comes Alive! 阅读理解的未来,让文字生动起来! Saanvi, a ninth grader in India who attends Khan World S…...
基于Java的超市进销存管理系统
开头语: 你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言: Java 数据库: MySQL 技术: Java JSP Servlet JavaBean 工具: IDEA/Eclipse、…...
Oracle 日志挖掘
oracle 11g 日志挖掘测试 需要开启补充日志 alter database add supplemental log data; SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;在用户下执行一些删除,插入等操作 SQL> create table zxy( …...
翻转二叉树-力扣
翻转二叉树,通过前序遍历的顺序,从根节点开始,将节点的左右子节点一次进行交换即可。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), …...
办公风云颜值背后的职场正能量
办公风云:颜值背后的职场正能量当我们提到职场,脑海中浮现的往往是严肃的面孔、忙碌的身影和堆积如山的文件。但在这个看似单调的舞台上,总有一些人,用他们的颜值和才华,为我们上演了一场场别开生面的“大戏”。今天&a…...
ffmpeg将一个视频中的音频合并到另一个视频
ffmpeg -i input1.mp4 -i input2.mp4 -map 1:v -map 0:a -c:v copy -c:a aac -strict experimental output.mp4解释如下: -i input1.mp4:指定第一个输入文件input1.mp4,这是你要提取音频的文件。-i input2.mp4:指定第二个输入文件…...
Web前端管理系统项目:深度解析与实现之道
Web前端管理系统项目:深度解析与实现之道 在当今数字化时代,Web前端管理系统项目已成为企业信息化建设的核心组成部分。这类项目不仅涉及技术的深度和广度,更考验开发者的综合素质和创新能力。本文将从四个方面、五个方面、六个方面和七个方…...
C语言最终讲:预处理详解
C语言最终讲:预处理详解 1.预定义符号2.#define定义常量3.#define定义宏4.带有副作用的宏参数5.宏替换的规则6.宏和函数的对比6.1宏的优势6.1.1\符号 6.2宏的劣势 7.#和##7.1#运算符7.2##运算符 8.命名约定9.#undef10.命令行定义11.条件编译12.头文件的包含12.1本地…...
Mysql的底层实现逻辑
Mysql5.x和Mysql8性能的差异 整体性能有所提高, 在非高并发场景下,他们2这使用区别不大,性能没有明显的区别。 只有高并发时,mysql8才体现他的优势。 2. Mysql数据存储结构Innodb逻辑结构 数据选用B树结构存储数据࿰…...
Node安装配置
一、下载 Node官网下载地址:https://nodejs.org/en/ 二、安装 双击上面的msi扩展安装包开始安装,基本一路Next就行了 推荐安装目录自定义,最好不要放在C盘 检查安装是否成功 Win R 快捷键,输入 cmd 打开命令窗口输…...
Django里的ModelForm组件
ModelForm组件 自动生成HTML标签 自动读取关联数据表单验证 保留之前提交的数据 错误提示数据库进行:新建,修改 步骤如下: 创建类 # 在 views.py 文件里# 创建一个类 class AssetModelForm(forms.ModelForm):class Meta:model models.…...
深入理解C语言:main函数的奥秘
在C语言中,main函数是每个程序的入口点,起着至关重要的作用。本文将深入探讨main函数的工作原理,包括其参数、返回值、以及如何从main启动程序的执行。通过实际代码示例,读者将更深入地理解main函数在C语言编程中的核心地位。 第一…...
selenium自动化测试入门 —— Alert/Confirm/Prompt 弹出窗口处理!
一、Alert/Confirm/Prompt弹出窗口特征说明 Alert弹出窗口: 提示用户信息只有确认按钮,无法通过页面元素定位,不关闭窗口无法在页面上做其他操作。 Confirm 弹出窗口: 有确认和取消按钮,该弹出窗口无法用页面元素定…...
探索JavaScript 18:新特性全解析
JavaScript,作为全球最广泛使用的编程语言之一,每年的更新都备受开发者社区的关注。2023年,JavaScript的新版标准——ECMAScript 2023(也称为JavaScript 18)引入了多项激动人心的新特性,这些特性不仅优化了…...
[MTCNN]2. 级联卷积神经网络样本工程与偏移量奥秘
1. 为什么样本工程是MTCNN成功的关键 在计算机视觉领域,数据质量往往比算法本身更重要。MTCNN作为经典的人脸检测算法,其成功很大程度上依赖于精心设计的样本工程。我曾在多个实际项目中验证过,同样的网络结构,使用不同质量的训练…...
下一代Web字体性能革命:Inter字体3大智能优化策略突破渲染瓶颈
下一代Web字体性能革命:Inter字体3大智能优化策略突破渲染瓶颈 【免费下载链接】inter The Inter font family 项目地址: https://gitcode.com/gh_mirrors/in/inter 在数字体验时代,字体性能已成为前端性能优化的关键战场。Inter字体作为现代无衬…...
MotuBrain:一种用于机器人控制的高级世界动作模型
26年4月来自生数公司MotuBrain团队的论文“MotuBrain: An Advanced World Action Model for Robot Control”。 Motus [5] 建立一种统一的“世界-动作”建模范式,将视频与动作纳入同一个生成式框架中进行建模;借此,策略建模、世界建模、视频生…...
如何用Layerdivider快速实现智能图像分层:面向设计师和开发者的完整指南
如何用Layerdivider快速实现智能图像分层:面向设计师和开发者的完整指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider Layerdivider是一款强…...
AI 入门 30 天挑战 - Day 28 - 前沿技术概览
🌟 完整项目和代码 本教程是 AI 入门 30 天挑战 系列的一部分! 💻 GitHub 仓库: https://github.com/Lee985-cmd/AI-30-Day-Challenge📖 CSDN 专栏: https://blog.csdn.net/m0_67081842?typeblog⭐ 欢迎 Star 支持!…...
Cursor AI 编辑器一键配置指南:从零搭建高效编程工作站
1. 项目概述:一个为 Cursor 编辑器量身定制的“开箱即用”向导如果你是一名开发者,最近肯定没少听人提起 Cursor 这款编辑器。它基于 VS Code,但深度集成了 AI 能力,号称能理解你的代码上下文,帮你写代码、改 Bug、甚至…...
LNG船BOG再液化系统流程优化与动态蒸发率控制【附模型】
✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅如需沟通交流,点击《获取方式》 (1)液氮预冷BOG缓冲再液化系统流程设计与Aspen HYSYS建模…...
淘宝淘金币自动化脚本终极指南:每天节省20分钟的完整解决方案
淘宝淘金币自动化脚本终极指南:每天节省20分钟的完整解决方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi …...
XMem实战教程:从DAVIS到YouTubeVOS数据集的完整评估流程
XMem实战教程:从DAVIS到YouTubeVOS数据集的完整评估流程 【免费下载链接】XMem [ECCV 2022] XMem: Long-Term Video Object Segmentation with an Atkinson-Shiffrin Memory Model 项目地址: https://gitcode.com/gh_mirrors/xm/XMem 你是否正在寻找一个强大…...
终极指南:3步解决Dell G15笔记本过热问题,开源温度控制中心完全解析
终极指南:3步解决Dell G15笔记本过热问题,开源温度控制中心完全解析 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否在游戏时遭遇…...
