【蓝桥杯】按键使用

开发板对应处
在这里插入图片描述
关于按键的知识
机械弹性开关:当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。
在这里插入图片描述
按键时间:按键稳定闭合时间长短是由操作人员决定的,通常都会在 100ms 以上,刻意快速按的话能达到 40-50ms 左右,很难再低了;大致时间可以通过在1s时间正常可按多少次来计算,故采取消抖处理按键,防止误判按键按多次。

按键有两种驱动方式:一种是独立按键,一种是矩阵按键。1个独立按键要占用1个IO口,IO口不能共用。而矩阵按键的IO口是分时片选复用的,用少量的IO口就可以驱动翻倍级别的按键数量。
以上内容引自来源于某CSDN博主

按键分专门的独立按键和矩阵按键

开发板使用独立按键J5的排针跳线帽连接2脚和3脚
开发板使用矩阵按键J5的排针跳线帽连接1脚和2脚
如原理图所示

在这里插入图片描述

一、独立按键

在这里插入图片描述
常见的按键封装有两端,也或者是四端,四段采取一般对角线原则,只需要处理两端,所以归根按键是两端,如上图所示,按键一端已经接上GND,那么另外一段接单片机的IO口,也就是通过单片机不停识别当前IO口电平来识别按键是否按下的,当按键按下,此时按键相当于导线,IO口读取的就是低电平。
常见的按键代码

按键处理
 //----------------独立按键------------
 void key()
 {
	 if(S7==0)
	 {
		 Delay100ms();//消抖
		 if(S7==0)
		 {
			 time++;//执行内容
		 }
		 while(S7==0);//松手检测
		 
	 }
 };

二、矩阵键盘

矩阵键盘实现的基本原理
矩阵键盘的信号由行、列两种信号组成,在行列交叉点放置一个按键,没有按键按下的时候,行和列是断开的,而当某一个按键按下时,改按键对应的行和列就会短接,电平会变成相同;由于矩阵键盘中没有电阻,所以当按键按下时,一个高电平和低电平短接会把高电平拉低。

矩阵键盘有两种扫描方式:
逐行扫描:
假设某一列为低电平,其余列为高电平,对应依次检测每一行,如果检测到某一行为低电平,那么证明该行按键已经按下,同理除了逐行扫描,也可以逐列扫描,原理相同;

行列扫描:
假设某一行为低电平,其余列为高电平,对应依次检测每一列,如果检测到某一列为低电平,那么证明该列按键已经按下

// 矩阵键盘核心代码,仅供参考
// An highlighted block
var foo = 'bar';

运用

界面程序设置
通常比赛时候,题目要求中会要求用数码管显示好几个不同数据处理的界面,如获取温度、获取电压值、设置参数等,那么这时候就要求到界面了,如果采取一个界面下处理完获取温度、获取电压值、设置参数,那么要求个人掌握的代码逻辑处理的显得复杂很多,但如果,我们采取一个数据就制作一个界面,把问题一步步细分开来解决,那么就显得容易很多。
界面程序制作
1、分不一样的界面,如获取温度界面、获取电压值界面、设置参数界面
2、用一个按键或者根据题目,触发界面内容
3、每个界面定义一个界面编号,也就是通常所说的标记位
采取按键切换,通常使用Switch选择函数处理

结合Switch函数使用界面
// An highlighted block
var foo = 'bar';

课后练习

1、使用S13作为切换按键,分别切换1、2、3界面。
2、思考如何制作一个3x3的数字键盘。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值