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

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

3天内不再提示

【蓝桥杯嵌入式】第四章 按键控制LED

撞上电子 2023-09-27 08:00 次阅读

第一节 按键的基本知识

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

ebaef9ec-5cc8-11ee-9788-92fbcf53809c.png


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

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

第二节 硬件解读

ebc1d242-5cc8-11ee-9788-92fbcf53809c.png

从图中我们可以看出,一共有4个按键,每一个按键的原理图都是一样的,我们举一个例子吧,以PA0为例,当按键被按下,按键的1,2和3,3导通,按键的3,4接地,导致PA0也接地,所以PA0也就是低电平。由此我们知道,当按键按下时,PA0为低电平;反之为高电平。

以下是按键和引脚的关系:

按键

引脚

B1

PB0

B2

PB1

B3

PB2

B4

PA0


第三节 CubeMX配置

配置PB0,PB1,PB2,PA0为输入模式,并配置上拉和标签【注意:配图有误,配图为输出模式,正常是输入模式】

ebcb26b2-5cc8-11ee-9788-92fbcf53809c.png

第四节 MDK代码

ebd9f098-5cc8-11ee-9788-92fbcf53809c.png

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

ebe990c0-5cc8-11ee-9788-92fbcf53809c.png

ebf2afde-5cc8-11ee-9788-92fbcf53809c.png

ec0d2cce-5cc8-11ee-9788-92fbcf53809c.png

ec255cae-5cc8-11ee-9788-92fbcf53809c.png

ec41cd58-5cc8-11ee-9788-92fbcf53809c.png

第五节 实验现象

注意:请用USB线连接电脑与开发板,注意是CN2口。

现象:LED闪烁一次,按下按键,对应的LED翻转一次。

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

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

    关注

    237

    文章

    22455

    浏览量

    645898
  • 嵌入式
    +关注

    关注

    4983

    文章

    18295

    浏览量

    288597
  • 按键
    +关注

    关注

    4

    文章

    220

    浏览量

    57344
收藏 人收藏

    评论

    相关推荐

    STM32按键控制LED的亮灭

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

    使用STM32按键控制LED亮灭

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

    MATLAB课程之第四章v3 程序设计(1)

    开始讲解第四章的内容。2023年8月,第二版文章和大家见面了,增加了很多内容,还有视频指导。 本章开始开始教同学们如何编写复杂程序了。本课程总共有多少章啊?回答:七章。 第四章讲解程序
    的头像 发表于 11-29 08:10 209次阅读

    stm32按键控制led灯亮灭

    stm32按键控制led灯亮灭  在嵌入式系统中,硬件按键常常被用作开关输入,控制LED灯亮灭。
    的头像 发表于 09-02 17:05 7632次阅读

    单片机独立按键控制led灯程序

    单片机独立按键控制LED灯程序 单片机独立按键控制LED灯程序是一种简单而有趣的电子学习项目,它通常由一个单片机芯片、一个LED灯和一个
    的头像 发表于 09-02 17:05 3771次阅读

    MATLAB课程之第四章v2 程序设计(1)

    开始讲解第四章的内容。2023年8月,第二版文章和大家见面了,增加了很多内容,还有视频指导。 本章开始开始教同学们如何编写复杂程序了。本课程总共有多少章啊?回答:七章。 开始讲课。 新版内容来了
    的头像 发表于 08-17 07:45 350次阅读

    基于单片机按键控制多个LED

    两个按键控制8位LED灯。
    的头像 发表于 08-16 09:35 1221次阅读

    如何用按键控制不同的LED流转模式?

    实现的任务就是用LCD做一个菜单,用按键控制不同的LED流转模式。
    发表于 07-26 16:53 494次阅读
    如何用<b class='flag-5'>按键控制</b>不同的<b class='flag-5'>LED</b>流转模式?

    使用51单片机实现按键控制LED灯的亮灭

    接前两集,这集我们实现用按键控制LED灯的亮灭。首先,仍旧是分析硬件电路原理图。
    发表于 07-11 11:40 3844次阅读
    使用51单片机实现<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>灯的亮灭

    使用按键控制LED

    你好,我是爱吃鱼香ROS的小鱼。上一节完成了LED灯的控制,本节我们学习下如何使用按键
    的头像 发表于 07-03 10:53 1510次阅读
    使用<b class='flag-5'>按键控制</b><b class='flag-5'>LED</b>灯

    基于89C51单片机的1个独立按键控制LED状态转换源程序

    基于89C51单片机的1个独立按键控制LED状态转换源程序
    发表于 05-12 17:35 1次下载

    CH32V103基础教程80-直流有刷电机按键控制

    本章教程主要在第八、第七十二章和第七十四章基础上进行,通过两路PWM输出以及5个按键控制电机开关、加减速以及正反相,同时使用一个LED
    发表于 05-08 16:00

    CH32V103基础教程75-舵机控制

    本章教程主要在第八PWM输出和第七十四章按键控制LED灯的基础上进行,通过两个按键控制舵机左右旋转,同时通过两个
    发表于 05-06 15:51

    CH32V103基础教程74-按键控制LED

    本章教程主要进行按键控制LED灯实验,主要涉及到GPIO的输入输出。本章教程在第二GPIO的基础上进行,第二已经对GPIO点亮LED灯进
    发表于 05-06 15:50

    基于AT89C51单片机按键控制8×8LED点阵屏显示图形

    基于AT89C51单片机按键控制8×8LED点阵屏显示图形仿真及代码
    发表于 05-04 15:43 2次下载