0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第七章独立按键控制LED

撞上电子 2023-06-21 17:41 次阅读

第一节按键的基本知识

按键的最基本的知识就是消抖,它分为软件消抖和硬件消抖。其中,软件消抖流程为:当检测到按键按下时,启动一个延时,持续一段时间(通常几毫秒);在延时结束后,再次读取按键状态;如果按键仍然处于按下状态,那么可以确定按键的状态为按下;否则,可以确定按键的状态为释放;软件消抖通过延时等待按键电平的稳定来避免误触发。如下图:

dc32ce60-1017-11ee-a579-dac502259ad0.png


硬件的消抖方案有很多种:在按键引脚与微控制器之间添加外部电路元件,如电容电阻或Schmitt触发器等,这些电路元件可以滤除按键的电气噪音,提供更稳定的电平信号

蓝桥杯物联网开发板并没有在硬件上处理,所以只能通过软件的方式来消抖。

第二节硬件解读

dc45437e-1017-11ee-a579-dac502259ad0.png

从图中我们可以看出,按键的引脚连接到PC14,所以我们只需要读取PC14的电平就可以了。当按键被按下,按键的1,4和2,3导通,按键的1,4接地,导致R12也接地,所以PC14也就是低电平。由此我们知道,当按键按下时,PC14为低电平;反之为高电平。

第三节 CubeMX配置

第一步:配置PC14为输入,并配置上拉(下图4处)和标签(下图5处)。

dc50a3c2-1017-11ee-a579-dac502259ad0.png

第二步:配置LD5,如下图:记得将初始化电平设置为高电平(下图5处),这样最开始LD5是熄灭状态。

dc6aa682-1017-11ee-a579-dac502259ad0.png

第四节 MDK代码

dc865e72-1017-11ee-a579-dac502259ad0.png

结合上图,可以看出需要20ms的消抖时间。所以MDK代码如下:

dc9528b2-1017-11ee-a579-dac502259ad0.png

第五章 实验现象

注意:

1,下载程序的时候,请选择A开发板。

现象:按下USER,LD5翻转一次。

来源:撞上电子微信公众号

版权:东莞市东城墨竹公子电子工作室

日期:2023.06.06

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    240

    文章

    23129

    浏览量

    658320
  • 控制
    +关注

    关注

    4

    文章

    1010

    浏览量

    122616
收藏 人收藏

    评论

    相关推荐

    博世第七季“数据时代”活动圆满结束

    博世汽车电子事业部中国区第七季“数据时代”活动于2024年10月30日成功举办!
    的头像 发表于 10-31 14:07 172次阅读

    《DNK210使用指南 -CanMV版 V1.0》第七章 基于CanMV的MicroPython语法开发环境搭建

    第七章 基于CanMV的MicroPython语法开发环境搭建 前面章节中已经介绍了如何编译CanMV固件,并将编译好的CanMV固件烧录至Kendryte K210,本章将介绍如何在Windows
    发表于 09-13 09:30

    【xG24 Matter开发套件试用体验】通过按键控制LED

    点完灯了,来玩点花样,通过按键来点灯。 硬件 还是看这个图 按键有 BUTTON0(PB02)和BUTTON1(PB03) 软件 这里基于blink_baremetal 工程进行修改适配。 这里进行GPIO的配置,配置好两个led
    发表于 09-01 17:21

    【「ARM MCU嵌入式开发 | 基于国产GD32F10x芯片」阅读体验】+书籍整体概况

    案例为按键控制LED亮灭;第四介绍了中断和事件,中断包含嵌套向量中断控制器NVIC,EXTI外部中断/事件控制器以及EXTI外部中断处理的
    发表于 08-25 22:48

    【xG24 Matter开发套件试用体验】7-按键点亮LED

    1介绍 之前已经点亮LED灯,并能通过延时实现LED闪烁,这里实现通过按左键控制LED灯,按下按键时对应的
    发表于 08-03 14:54

    【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第七章)序列检测器实验例程

    控制是否检测;输出用LED来显示及保存特定序列,同时也将特定序列与检测使能信号传递给检测模块;2、序列对比模块;由拨码开关提供待检测序列,接收按键控制模块传递过来的特定序列与检测使能信号控制
    发表于 05-23 14:45

    请问怎么用按键控制1602中的5*8点阵亮灭及加减?

    请问怎么用按键控制1602中的5*8点阵亮灭及加减
    发表于 05-07 08:04

    【每周一练】盘古1K开发板 练习二:按键控制LED灯实验

    本文完成的实验为按键控制LED灯,通过对连接按键输入的IO电平进行检测,根据电平的状态来改变LED的亮灭。 实验要求和硬件概览 在【每周一练】小眼睛FPGA1K开发板硬件平台中使用的
    发表于 12-21 22:45

    【每周一练】+盘古1K开发板+2. 按键控制RGB led

    前言 按照要求,应该实现如下功能: 实验目的: 掌握按键消抖原理,实现按键控制流水灯 实验要求: 设计 8 种彩灯效果,选择一个按键作为控制输入,按下一次换一种显示效果 依然使用官
    发表于 12-17 11:33

    STM32按键控制LED的亮灭

    使用一个按键控制LED的亮灭,按键按下时LED亮起,按键松开时LED熄灭。通过
    的头像 发表于 12-11 14:19 3558次阅读
    STM32<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>的亮灭

    【每周一练】盘古1K开发板 练习二:按键控制RGB灯

    实验目的 掌握按键消抖原理,实现按键控制RDB灯颜色更换 实验要求 设计 8 种彩灯效果,选择一个按键作为控制输入,按下一次换一种显示效果 学习心得 学习了RGB灯颜色
    发表于 12-10 16:43

    【每周一练】盘古1K开发板 练习二:按键控制LED灯实验

    本篇学习实现按键控制8种LED灯,按一下切换一种效果 1.打开MES2KG\\demo\\3_key_led_rgb工程,菜单Project->Project Settings,点击
    发表于 12-06 00:36

    独立按键与中断系统的复习笔记

    独立按键与中断系统的复习笔记
    发表于 12-05 09:08 0次下载

    使用STM32按键控制LED亮灭

    本次实验所用到的Simulink模型如图5.1所示,实验现象: 按键按下、松开LED循环实现翻转亮灭效果,当按键按下时,产生下降沿脉冲,通过一个计数器对下降沿脉冲进行0~1循环计数,计数到最大值时产生输出信号,输出信号为0时,
    的头像 发表于 11-29 16:22 2464次阅读
    使用STM32<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>亮灭

    【每周一练】盘古1K开发板 练习二:按键控制LED灯实验学习记录

    经过练习一:LED流水灯后,进行练习二:按键控制LED灯实验也就相对容易些,有demo加持完成实验很容易,主要还是学习代码编写。 参考资料: 1K2K链接:https://pan.baidu.com
    发表于 11-28 15:31