知识链接

更新于 2026年10月10日 版权声明
知识链接

一、独立式按键的工作原理

独立式按键是直接用单片机的I/O线构成的按键检测电路,其特点是每个按键单独占用一个I/O端口,每个按键的工作不会影响其他I/O线的工作状态。独立式按键的典型电路图如图5-1-2所示。

图示

图5-1-2 独立式按键的典型电路图

单片机系统中一般由软件来识别键盘上的闭合键,图5-1-2所示是单片机独立式按键的典型接法。在图5-1-2(a)中,单片机引脚作为输入使用,首先置1。当按键没有按下时,单片机引脚上为高电平;而当按键按下后,引脚接地,单片机引脚上为低电平。通过编程即可获知是否有键按下,被按下的是哪一个键。独立式按键电路配置简单,但每个按键必须占用一个I/O端口,因此,按键较多时,会占用较多I/O端口,不宜采用。

目前常用的按键大部分都是机械式按键,由机械触点构成,通过机械触点的闭合与断开实现电压信号的高低输入,在键按下及松开瞬间均有抖动过程,抖动过程如图5-1-3所示,抖动时间的长短与开关的机械特性有关,一般为5~25 ms。为使单片机能正确读出键盘所接的I/O端口状态,对每一次按键只响应一次,必须考虑如何去除抖动。常用的去抖方法有两种:硬件消抖和软件消抖。

硬件消抖:可在按键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖电路。如图5-1-4所示,当触发器一旦翻转,触点抖动不会对其产生任何影响。

图示

图5-1-3 按键工作原理

图示

图5-1-4 硬件消抖

软件消抖:在单片机检测到有按键的I/O端口为低电平时,不是立即认定该键已被按下,而是执行一个5~10 ms或时间更长的延时程序后,再次检测I/O端口,如果仍为低电平,说明该键的确被按下,这实际上是避开了按键按下时的前沿抖动。在检测到按键释放后(该I/O端口为高电平)再延时5~10 ms,消除按键释放时的后沿抖动,然后再对键值进行处理。

二、选择语句if

if语句是用来判定所给定的条件是否满足,根据判定的结果(“真”或“假”)决定执行给定的两种操作之一。

图示

如果表达式的值为真,则执行语句,否则不执行。执行过程如图5-1-5所示。

2. if…else 语句

基本形式:

图示

图5-1-5 if语句执行过程(https://www.daowen.com)

图示

如果表达式的值为真,则执行语句1,否则执行语句2。执行过程如图5-1-6所示。

3. if…else if…else 语句

基本形式:

if(表达式 1)

{语句1;}

else if(表达式2)

{语句2;}

else if(表达式3)

{语句3;}

……

else if(表达式m)

{语句m;}

else

{语句n;}

如果表达式1的结果为“真”,则执行语句1,并退出if语句;否则去判断表达式2,如果表达式2的结果为“真”,则执行语句2,并退出if语句;否则去判断表达式3……最后表达式m也不成立,就去执行else后面的语句n。else和语句n也可省略不用。执行过程如图5-1-7所示。

图示

图5-1-6 if…else语句执行过程

图示

图5-1-7 if…else if…else语句执行过程

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)