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

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

3天内不再提示

【蓝桥杯物联网】第四章 按键

撞上电子 2022-05-26 10:50 次阅读

第一节基本原理

键盘在单片机应用系统中能够实现向单片机输入数据、传送命令的功能,是人工干预单片机的主要手段。下面介绍键盘的工作原理、键盘按键的识别过程和识别方法以及键盘与单片机的接口编程

在进行键盘使用之前,需要先了解一下键盘的工作原理。以下将分三个部分介绍键盘的工作原理。

1.键盘输入的特点键盘实质上是一个按键开关的集合。通常键盘的开关为机械弹性开关,利用的是机械触点的合断特性。一个电信号通过机械触点的断开、闭合过程,其行线电压输出波形如图所示。

1c49ec7c-da90-11ec-b80f-dac502259ad0.png

图中t1和t3是键闭合和断开过程中的抖动期,抖动时间长短和机械特性有关,一般为5~10ms;t2为稳定的闭合期,时间由按键动作所决定;一般为十分之几到几秒;t0、t4为断开期。

2.按键的确认按键的闭合与否反映在行线输出电压是高电平还是低电平上,如果高电平表示断开,则低电平表示键闭合,通过对行线电平的检测从而判断是否有按键被按下。

3.消除按键抖动消除按键的抖动通常有软件和硬件两种方法。硬件消抖一般采用双稳态消抖电路,如下图所示。图中两个与非门构成一个RS触发器。b点的抖动电压波形通过RS触发电路后变成正规的正弦波,这一点很容易从RS触发器的工作过程得到验证。

1c9b6886-da90-11ec-b80f-dac502259ad0.png 

在按键较多时,硬件消抖无法胜任,因此常用软件消除键盘的抖动,在第一次检测到键按下时,延时10ms的时间再确认该键的电平是否继续保持闭合状态的电平,如果继续保持为闭合状态的电平,则确认有键按下,从而消除抖动的影响。

第二节 硬件解读

蓝桥杯嵌入式主板上面是有5个按键的,其中4个用户按键,一个复位按键,本章的实验就是用户按键来控制LED灯。先看看下图的原理图吧:

1cc4a9d0-da90-11ec-b80f-dac502259ad0.png    上图就是4个独立按键的原理图,我们以左上角的为例,按键一端连接到GND,另外一端连接到VDD,也就是说,PB1平时是高电平的状态,一旦按键被按下,就与GND相连,变成低电平了。至于其他的消抖等等不再详述,都学习stm32了,想必51应该学过了。

第三节 环境配置

1,打开stm32cubeMX,选择“File-New Project ...”。

1cffca6a-da90-11ec-b80f-dac502259ad0.png

2,如图,在方框中搜索“stm32g431rb”(可大写,可小写)。然后选择LQFPN64的封装的芯片

1d4b9ce2-da90-11ec-b80f-dac502259ad0.png3,选中“A-Z”,查看蓝桥杯嵌入式芯片stm32g431rb的所有功能。

1d77d8c0-da90-11ec-b80f-dac502259ad0.png

4,选中“SYS”,在Debug项目中选择“Serial Wire”,可以看见PA13与PA14引脚变成绿色,分别用作SYS_SWDIO和SYS_SWCLK。

1da4dcbc-da90-11ec-b80f-dac502259ad0.png

5,选中“PD2-GPIO_Output”,“PC8-GPIO_Output”,“PC9-GPIO_Output”,“PC10-GPIO_Output”,“PC11-GPIO_Output”,“PC12-GPIO_Output”,“PC13-GPIO_Output”,“PC14-GPIO_Output”和“PC15-GPIO_Output”,这样就可以让芯片的PD2和PC8~PC15作为输出引脚了。

1dc6a306-da90-11ec-b80f-dac502259ad0.png

6,选中“PA0-GPIO_Input”,“PB0-GPIO_Input”,“PB1-GPIO_Input”,“PB2-GPIO_Input”,这样就可以让芯片的PA0和PB0~PB2作为输入引脚了,也据说用户按键引脚。

1e1314f2-da90-11ec-b80f-dac502259ad0.png

7,选中“Project Manager-Project”。在Project Name中填写项目的名字(尽可能不要用中文),在Project Location中选择项目保存的路径,在Toolchain/IDE中选择编译器,蓝桥杯嵌入式比赛用的是MDK5,所以我们选择MDK-ARM V5。

1e3d5302-da90-11ec-b80f-dac502259ad0.png

8,点击GENERATE CODE生成代码。

1e6e3620-da90-11ec-b80f-dac502259ad0.png

9,点击”CLOSE”,关闭stm32cubeMX,代码生成成功。

1ebb7ebc-da90-11ec-b80f-dac502259ad0.png

第四节 程序编写

1,用MDK5打开stm32cubeMX生成的工程。

2,点击“Rebuild”,进行代码的编译,可以看出代码没有任何问题,证明我们利用stm32cubeMX生成代码很成功。

1f051b6c-da90-11ec-b80f-dac502259ad0.png

3,在main.c文件中添加下面定义:

1f5e847c-da90-11ec-b80f-dac502259ad0.png 

4,在main.c文件中加入以下封装好了的函数:

1f8871ba-da90-11ec-b80f-dac502259ad0.png

1fbdb5aa-da90-11ec-b80f-dac502259ad0.png

1febed30-da90-11ec-b80f-dac502259ad0.png

5,将封装好的函数在main.h中声明:

202ab560-da90-11ec-b80f-dac502259ad0.png

6,在mian函数中初始化LED:

2062c41e-da90-11ec-b80f-dac502259ad0.png

7,编写while里面的函数:

20a1d474-da90-11ec-b80f-dac502259ad0.png

8,编译代码。

20db3584-da90-11ec-b80f-dac502259ad0.png

9,点击”Options for Target...“。

211a2bfe-da90-11ec-b80f-dac502259ad0.png

10,点击”Debug“,然后选择下载器”CMSIS-DAP Debugger“,并点击”OK“。

2154441a-da90-11ec-b80f-dac502259ad0.png

11,选择“Settings”。

219a43b6-da90-11ec-b80f-dac502259ad0.png

12,选择”Flash Downlosd”,勾选”Reset and Run”并点击”OK”。

21d1bb48-da90-11ec-b80f-dac502259ad0.png

13,点击”Download“,开始下载程序。

222b861e-da90-11ec-b80f-dac502259ad0.png

14,程序下载成功。

第五节 注意事项与实验现象

实验注意事项:

1,程序语句需要位于程序的BEGIN与END之间。

2,利用USB线将电脑USB口与开发板CN2口连接。

3,J6,J7,J8需要用跳线帽连接,否则无法下载程序。

实验现象:

LD9和LD11常亮。按下B1,LD1亮;按下B2,LD2亮:按下B3,LD3亮;按下B4,LD4亮。

宗旨:

免费的服务,永远的开源

说明:

1.本教程免费,开源,禁止用于任何商业用途,违者必究。

2.本教程版权所属为东莞市东城墨竹公子电子工作室,盗版必究。

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

    关注

    2903

    文章

    44253

    浏览量

    371097
收藏 人收藏

    评论

    相关推荐

    《DNESP32S3使用指南-IDF版_V1.6》第四章 认识ESP-IDF

    第四章 认识ESP-IDF ESP-IDF是乐鑫科技为其ESP32系列芯片提供的官方开发框架。这个框架主要用于开发、构建和部署基于ESP32的联网(IoT)应用。我们要写程序控制ESP32芯片
    发表于 11-22 09:49

    “联想·创新第四届中国高校ESG案例大赛拉开帷幕

    “创新”中国高校ESG案例大赛是由首都经济贸易大学中国ESG研究院和工商管理学院联合主办的大学生ESG案例大赛。第四届中国高校ESG案例大赛由联想集团赞助,致力于在中国高校推广ESG理念,发掘和培养中国ESG商业领域储备人才。
    的头像 发表于 10-31 11:36 362次阅读

    蓝桥单片机】第一 大赛概述

    第一节蓝桥是什么样的比赛蓝桥全国软件和信息技术专业人才大赛(以下简称“蓝桥”)是由中国教育
    的头像 发表于 10-29 12:00 231次阅读
    【<b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>单片机】第一<b class='flag-5'>章</b> 大赛概述

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    与重定向等机制。 第四章:PRTOS Hypervisor的设计与实现 内容概述 : 第四章则聚焦于PRTOS(Portable Real-Time Operating System)Hypervisor
    发表于 10-09 18:29

    【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译

    【北京迅为】iTOP-i.MX6开发板使用手册第四部分固件编译第十四章非设备树Android4.4系统编译
    的头像 发表于 09-12 15:43 402次阅读
    【北京迅为】iTOP-i.MX6开发板使用手册<b class='flag-5'>第四</b>部分固件编译第十<b class='flag-5'>四章</b>非设备树Android4.4系统编译

    第四章:对广东龙芯2K0300-蜂鸟板-v1.0视频教程我的感触

    工程师)对LoongArch内核架构演讲。 龙芯云平台技术及应用.mp435:11分钟30.62MB 文件大小 2023-05-09发表。其内容是2023年度龙芯精英百强赛前培训,龙芯发展历程,中科院计算所,三大架构
    发表于 09-11 18:10

    什么是联网技术?

    什么是联网技术? 联网技术(Internet of Things, IoT)是一种通过信息传感设备,按约定的协议,将任何物体与网络相连接,实现智能化识别、定位、跟踪、监管等功能的
    发表于 08-19 14:08

    双麒麟系统!迅为RK3588开发板+银河麒麟/开放麒麟

    Build root系统功能测试 第四章 Ubuntu系统功能测试 第五 Debian系统功能测试 第六 openkylin系统功能测试 第七 银河麒麟系统功能测试
    发表于 07-15 10:35

    搭配100教学实验案例,轻松解决老师备课难题!

    Linux系统使用实验第三Linux设备驱动程序开发实验第四章基于ARM基础外设实验第五LinuxQt开发实验第六LinuxPython开发实验向下滑动查看所有内容
    的头像 发表于 05-01 08:31 370次阅读
    搭配100教学实验案例,轻松解决老师备课难题!

    【紫光同创盘古PGX-MINI-4K教程】——(盘古PGX-MINI-4K开发板/PGC4KD-6ILPG144第四章)数码管动态显示实验例程

    数码管,按一下数字加 1,从 0 到 9;按键 K3 控制左侧起第四个数码,按一下数字加 1,从 0 到 9。 :实验原理数码管是一种半导体发光器件,其基本单元是发光二极管。能显示 4 个数码管叫
    发表于 04-28 18:30

    【飞腾派4G版免费试用】第四章:部署模型到飞腾派的尝试

    部署模型到飞腾派 本章作为一个这几天,我尝试将训练的佩奇检测模型部署到飞腾派的阶段总结,在部署的过程中,我的计划是分三步走: 在第三的基础上,直接迁移模型到飞腾派,通过python测试模型是否正常
    发表于 12-20 21:10

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

    继续讲解!在大二学习MATLAB的时候,可以将学过的数学知识用软件编程方式呈现。这既是一个知识巩固过程,也是一个软件熟悉过程!一举两得!来看看软件和线性代数及概率统计的结合过程。 rank函数会用吗? 干什么用的? 基本概念要牢记! inv函数怎么用呢? 这些内容都可以在MATLAB中找到对应的函数! 现在回顾有利于知识的巩固! 这么重要啊?是的! 还这么有前景?还不学好它啊!看看其中的矩阵分解吧! 特征值分解仅适用于提取方阵特征,但在
    的头像 发表于 12-05 08:10 382次阅读
    MATLAB课程之<b class='flag-5'>第四章</b>v3 程序设计(4)

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

    继续讲解!之前看了老师现场调试程序的视频,大家是不是切身感受到了调试工具的重要性和方便性! 看完后,大家有什么感想呢?可以在文末给我留言。这是经验的传承,学到了可以让你的编程水平得到有效提升!先来看看调试方法吧!掌握了方法也就能自行找出程序的错误了。 程序调试是程序设计的重要环节,也是程序设计人员必须掌握的重要技能。没有人能保证写出的程序没有错误,但肯定可以通过调试保证程序的正确运行。 MATLAB提供了相应的
    的头像 发表于 12-03 08:10 433次阅读

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

    继续讲解!2023年的暑假在家备课和录制视频,忙的不亦乐乎。互联网时代的文章可以加入视频了,这样有利于传播。希望更多搞工科的人能看到我写的文章。非常用心的写作饱含经验,值得推广。可惜的是自己教的学生
    的头像 发表于 12-01 10:55 334次阅读

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

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