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.本教程版权所属为东莞市东城墨竹公子电子工作室,盗版必究。

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

    关注

    2909

    文章

    44701

    浏览量

    373974
收藏 人收藏

    评论

    相关推荐

    蓝桥联网需要安装哪些软件?

    蓝桥联网比赛需要安装的软件有如下几种,需要大家自己在练习的时候自行安装。下面是安装教程。以下是需要安装的软件,本教程会一一带领大家安装,【注意:一定要按照顺序安装】没有安装包的话,
    的头像 发表于 12-23 21:02 139次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>需要安装哪些软件?

    瑞萨电子荣获维科·OFweek 2024联网行业优秀开发平台奖

    近日,由高科技行业门户OFweek维科网主办、OFweek联网承办的“OFweek 2024(第九届)联网产业大会”暨“维科·OFwe
    的头像 发表于 12-23 11:45 238次阅读

    蓝桥联网开发板硬件组成

    第一节开发板简介联网设计与开发竞赛实训平台由蓝桥大赛技术支持单位北京梯科技有限公司设计和生产,该产品可用于参加
    的头像 发表于 12-22 21:30 392次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>开发板硬件组成

    蓝桥该如何备赛?

    蓝桥联网已经换了三次开发板了,每次换板子,题目难度都会降低不少,所以说,蓝桥
    的头像 发表于 12-19 21:02 177次阅读
    <b class='flag-5'>蓝桥</b><b class='flag-5'>杯</b>该如何备赛?

    大华股份第四届创新大会暨首届“大华”技术创新大赛圆满落幕

    近日,由浙江省发明协会指导,大华股份主办的大华股份第四届创新大会暨首届“大华”技术创新大赛圆满落下帷幕。
    的头像 发表于 12-11 11:00 233次阅读

    华为-射频基础知识培训

    课程目标z 熟悉和掌握射频基本概念和知识z 了解无线射频系统结构z 了解天馈系统的概念和知课程内容第一 无线通信的基本概念第二 射频常用计算单位简介第三 射频常用概念辨析第四章
    发表于 12-10 13:39 1次下载

    《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 478次阅读

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

    第一节蓝桥是什么样的比赛蓝桥全国软件和信息技术专业人才大赛(以下简称“蓝桥”)是由中国教育
    的头像 发表于 10-29 12:00 353次阅读
    【<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 550次阅读
    【北京迅为】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 418次阅读
    搭配100教学实验案例,轻松解决老师备课难题!