蓝桥杯中GPIO输入之按键实验

描述

第一节 按键的基本知识   

按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关灯;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。

在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,按键信息输入时与软件结构密切相关的过程。

对于一组按键或一个键盘,总有一个接口电路与MCU相连。MCU可以采用查询或中断方式了解有无将按键输入,并检查是哪一个按键按下,将该键号送入程序,然后通过指令转入执行该键的功能程序,执行完成后再返回主程序。

按键通常使用机械触点式按键开关,其主要功能式把机械上的通断转换为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便于通用数字系统的逻辑电平相容。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定的时间触点机械抖动,然后其触点才稳定下来。

蓝桥杯

    

抖动时间的长短与开关的机械特性有关,一般为5~10ms。在触点抖动期间检测按键的通与断,可能导致判断出错,即按键一次按下或释放错误的被认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取消抖措施。硬件的消抖方案有很多种:在按键引脚与微控制器之间添加外部电路元件,如电容、电阻或Schmitt触发器等,这些电路元件可以滤除按键的电气噪音,提供更稳定的电平信号。

单片机控制系统中,如果只需要几个功能键,此时,可采用独立式按键结构。独立按键式直接用I/O口构成的单个按键电路,其特点式每个按键单独占用一根I/O口,每个按键的工作不会影响其他I/O口的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一个I/O口,因此,在按键较多时,I/O口浪费较大,不宜采用。

独立按键的软件常采用查询式结构。先逐位查询与I/O口的输入状态,如某一根I/O口输入为低电平,则可确认该I/O口所对应的按键已按下,然后,再转向该键的功能处理程序。

单片机按键一般通过配备上拉电阻来实现输入端高低电平的切换。

蓝桥杯

4条输入线接到单片机的IO口上,当按键K1按下时,+5V通过电阻R1然后再通过按键K1最终进入GND形成一条通路,那么这条线路的全部电压都加到了R1这个电阻上,KeyIn1这个引脚就是个低电平。当松开按键后,线路断开,就不会有电流通过,那么KeyIn1和+5V就应该是等电位,是一个高电平。我们就可以通过KeyIn1这个IO口的高低电平来判断是否有按键按下。    

第二节 硬件解读  

蓝桥杯

从图中我们可以看出,蓝桥杯物联网开发板上面有2个可编程按键,分别连接到PA8和PB8。如果PA8是高电平,就证明按键没有被按下,反之则被按下。

第三节 CubeMX配置  

第一步:配置PA8和PB8为输入模式,如下:    

蓝桥杯

第二步:配置GPIO为上拉,并配置用户标签,如下图,

蓝桥杯

    

其中:具体配置信息如下:

         

 

 

GPIO mode:表示输入模式,固定可为输入模式(Input mode);

         

 

 

GPIO Pull-up/Pull-down:表示是否上下拉,可配置为上拉(Pull-up)或者下拉(Pull-down)或不上拉也不下拉(No Pull-up and no Pull-down);

         

 

 

User Label:表示用户标签,可修改IO口名称,比如可写入KEY,把IO口名称变为KEY;

         

 

   

 

第四节 MDK代码  

蓝桥杯

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

蓝桥杯

不要忘记在.h文件中声明哦:    

蓝桥杯

最后我们在while中读取按键,就可以啦:

蓝桥杯

第五节 实验现象   

注意:

1,请用USB线连接电脑与开发板。

2,请选择A开发板。

现象:

1,按下按键ASW1,AL1翻转一次。

2,按下按键ASW2,AL2翻转一次。    

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

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

日期:2024.11.03

第六节 课后作业  

按下按键ASW1,AL3翻转。

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分