单片机学习笔记---独立按键控制LED亮灭

直接进入正题!

今天开始我们要学习一个新的模块:独立按键!

先说独立按键的内部结构:

它相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。

它主要由四个部分组成:

将底座再详细破拆一下,看看里面的结构:

不管按键有没有按下,左边两个引脚都通过一个金属片连接起来,然后再向中间伸出两个接触点,右边两个引脚也是通过一个金属片连接起来,并向中间伸出一个接触点,如上图红色标识。

那么金属弹片就在中间,如果松手时,它就凸起来,不接触,如果按压,弹片会被压扁,就开始接触,这三个接触点就会被连接。

再看原理图

右边连接负极(接地),左边连接的是单片机的这些IO口上

我们知道单片机的所有IO口默认都是高电平,如果按键没有按下,IO保持的就是高电平,按键按下后,IO就变成低电平了。(高电平是1,低电平是0)

接下来新建一个工程演示一下

创建工程的步骤以后不再赘述,并且会慢慢省略,大家一定要变得越来越熟练,如果忘记了可以翻看一下前几篇的笔记。

先写下以下代码,编译无错误后下载程序

这些中间步骤以后会省略,如果忘记了可以翻看前面的笔记。

现在重启板子,看看效果

第一个LED点亮了

这个其实是通过控制寄存器来实现的,寄存器是8个为一组的,如果直接操作这个P2的话,需要同时给8个赋值,但是我们现在只想操作最低位的第一个LED,那我们要怎么做才能只操作最低位的第一个LED,而不影响其他位呢?

我们可以先把P2=0xFE注释掉,然后写成P2_0=0;就可以只操作P2的其中一个口了,而这个口是0口,所以写成P2_0

操作一个寄存器8位的时候,我们要给8位的数据,那操作一位的时候,我们只给0或者1,给2也相当于是1,总之,非0即是1

以上这段代码0错误0警告,接下来下载下来看看效果

结果同样只点亮了第一个LED,其他的保持不亮。

如果加上P2_0=1;它就是会熄灭

我们要实现的效果是第一个按键控制就是按下的时候,执行P2_0=0;

松开的时候,执行P2_0=1;

那么怎么实现呢?

给寄存器写一个状态,它就会把这个状态送给IO口,如果IO口产生电平,它也会把IO口产生的电平送回到寄存器。

根据原理图,我们知道K1这个按键实际上是接在P31这个口

想要直接读这个口,怎么办呢?

代码这样写:

编译一下没有错误就下载程序,重启板子看看效果

重启板子后,我们没有看到灯亮,我们就按一下K1这个键,D1号LED就亮了

松开K1键,LED就灭了。

以上就实现了一个按键控制一个LED的功能。

我们也可以用两个按键控制一个LED

代码这样写:

只有当K1和K2同时按下的时候才会亮

如果将代码改成:

K1或者K2按下它就是会亮

按下K1:

按下K2:

只有K1和K2同时松开才不会亮。

今天就学到这里!

如果还看不懂代码的伙伴,要先把C语言学习到指针那里再学单片机会事半功倍。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

剧本杀小程序开发:打造沉浸式推理体验

随着社交娱乐形式的多样化,剧本杀逐渐成为年轻人喜爱的聚会活动。而随着技术的发展,剧本杀小程序的开发也成为了可能。本文将探讨剧本杀小程序开发的必要性、功能特点、开发流程以及市场前景。 一、剧本杀小程序开发的必要性 剧本杀是一种角色扮演的推…

鸿蒙端云一体化简单项目

文章目录 前言端云一体化服务端客户端云数据库总结 一、前言 鸿蒙系统在不断地成熟,现在有了鸿蒙端云一体化开发模式。什么是端云一体化呢,简单点就是你原本是客户端开发的,项目中只是客户端的代码,端云一体化呢,就…

【MyBatis】#{} 和 ${}

目录 1. #{} 使用示例: 2. ${} 使用示例: SQL注入 使用#{}的情况: 使用${}的情况: MyBatis是一种用于Java语言的持久层框架,它简化了数据库操作的过程。在MyBatis中,我们经常会看到两种不同的参数占…

华为云WAF,开启web网站的专属反爬虫防护罩

背景 从保护原创说起 作为一个原创技术文章分享博主,日常除了Codeing就是总结Codeing中的技术经验。 之前并没有对文章原创性的保护意识,直到在某个非入驻的平台看到了我的文章,才意识到,辛苦码字、为灵感反复试验创作出来的文…

苹果macOS 恶意软件家族被曝光:通过破解软件分发,可窃取敏感信息

卡巴斯基安全实验室近日发布博文,发现了一种针对苹果 macOS 设备的新型恶意软件家族,并提醒苹果 Mac 用户谨慎下载破解软件。 报告称这种新型恶意软件家族高度复杂,主要伪装成为各种知名 macOS 软件的破解版分发,用户下载恶意 PKG…

ISO 14229和UDS:汽车诊断的黄金标准

UDS简介: UDS是Unified Diagnostic Services的缩写,全名统一诊断服务。它是一种用于汽车电子控制单元(ECU)之间进行诊断和通信的标准协议,属于ISO 14229标准的一部分。 UDS的起源和背景: UDS的起源可以追…

HarmonyOS 鸿蒙应用开发 (七、HTTP网络组件 axios 介绍及封装使用)

在HarmonyOS应用开发中,通过HTTP访问网络,可以使用官方提供的ohos.net.http模块。但是官方提供的直接使用不太好使用,需要封装下才好。推荐使用前端开发中流行的axios网络客户端库,如果是前端开发者,用 axios也会更加顺…

Java笔记(死锁、线程通信、单例模式)

一、死锁 1.概述 死锁 : 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法往下执行。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进…

vusui css 使用,简单明了 适合后端人员 已解决

vusui-cssopen in new window 免除开发者繁复的手写 CSS 样式,让 WEB 前端开发更简单、灵活、便捷!如果喜欢就点个 ★Staropen in new window 吧。 移动设备优先: vusui-css 包含了贯穿于整个库的移动设备优先的样式。浏览器支持&#xff1a…

【每日一题】最大合金数

文章目录 Tag题目来源解题思路方法一:二分枚举答案 写在最后 Tag 【二分枚举答案】【数组】【2024-01-27】 题目来源 2861. 最大合金数 解题思路 方法一:二分枚举答案 思路 如果我们可以制造 x 块合金,那么一定也可以制造 x-1 块合金。于…

《合成孔径雷达成像算法与实现》Figure5.18

clc clear close all距离向参数 R_eta_c 20e3; % 景中心斜距 Tr 25e-6; % 发射脉冲时宽 Kr 0.25e12; % 距离向调频率 Fr 7.5e6; % 距离向采样率 Nrg 256; % 距离线采样点数 Bw abs(Kr*Tr); …

【C++干货铺】C++中的IO流和文件操作

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 C语言的输入输出 流是什么? C的IO流 C标准IO流 C文件IO流 文本文件读写 二进制文件的读写 stringstream的简单介绍 将数值类型数据格式化为字…

JS中的try...catch

一、定义和结构 作用:捕获同步执行代码下的异常错误 在没有使用try...catch的情况下,同步代码执行遇到异常会报错,并中断后续代码执行; 在使用try...catch的情况下,同步代码执行遇到异常会抛出异常,并继续…

线性代数----------学习记录

线性代数发展历程 (1)线性方程组:例如二元一次方程组; (2)行列式:determinant,克莱默,莱布尼兹; (3)矩阵:方程个数与未知数的个数可…

【前端工程化】环境搭建 nodejs npm

文章目录 前端工程化是什么?前端工程化实现技术栈前端工程化环境搭建 :什么是Nodejs如何安装nodejsnpm 配置和使用npm 介绍npm 安装和配置npm 常用命令 总结 前端工程化是什么? 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块…

JAVAEE初阶 网络编程(五)

TCP协议 一.TCP协议图二. TCP中的关键协议确认应答后发先至机制引入序号和确认序号 超时重传去重机制 建立连接三次握手 一.TCP协议图 我们可以发现,相比于UDP,TCP协议明显复杂很多,比如32位序号和32位确认序号,4位首都长度&#…

前端面试题-js数据类型-怎么判断是对象还是数组-字符串常用方法-数组常用方法

前端面试题-js部分-js数据类型-怎么判断是对象还是数组-字符串常用方法-数组常用方法 JS数据类型有哪些值类型和引用类型的区别数组的常用方法哪些方法会改变原数组 字符串常用方法对象常用方法怎么判断是对象还是数组 JS数据类型有哪些 数据类型类型描述Number基本类型&#…

ANSYS 2023 下载安装教程,附安装包和工具,轻松安装,无套路

前言 ANSYS是一款融结构、流体、电场、磁场、声场分析于一体的大型通用有限元分析(FEA)软件,能与多数计算机辅助设计软件接口,实现数据的共享和交换,如Creo,NASTRAN、Algor、IDEAS、AutoCAD等. 准备工作 1、Win10及以上系统 2、提前准备好…

防火墙的基础知识点

目录 1. 防火墙的意义: 2. 防火墙分类: 3. 防火墙的发展史: 3.1 包过滤 3.2 应用代理 3.3. 状态检测 3.4. 专用设备 3.4.1 入侵检测系统(IDS) 3.4.2 入侵防御系统(IPS) 3.4.3 防病毒网关 (AV) 3.4.4 Web应用防火墙 (WAF) 3.5. 统…

Netty的解码器和编码器

链路图 一个完整的RPC请求中,netty对请求数据和响应数据的处理流程如下图所示 网络线路中传输的都是二进制数据,之后netty将二进制数据解码乘POJO对象,让客户端或者服务端程序处理。 解码的工具称为解码器,是一个入站处理器InBo…