导语:
单片机在运用到实际的产品中,不仅仅只使用IO输出去控制,更多的时候,我们需要收到一些信号,比如数字信号,模拟量信号等。
按键作为一种人机交互的方式,被广泛的应用在各个工业控制领域。
通过单片机的轮询来检测按键的电平变化,实现相应的功能。独立按键通过独占IO,简化程序的设计,但与此对于的是需要占用IO,比较浪费IO,所以可以通过分时片选复用的方式实现8个IO使用16个按键,本节介绍单个IO的输入。
轻触开关
俗称按键,常开型,按下后会自动弹起,恢复到断开状态。机械开关都伴随着抖动,由于金属触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。
常见的解决方法有硬件电路解决,RS触发器,电容等方法。但与之对应的是成本的上升与电路的复杂性上升。
平时更常见的有软件上的算法,如延时等待按键抖动结束,但会导致程序运行的实时性降低。
51单片机上电后,除P0端口外,其余默认为高电平,单片机内部自带上拉电阻把电平拉高。在传统8051中,并不能设置单片机IO的输入输出模式。通过编写按键程序,识别电平从高到低的过程,从而实现交互。
在程序编写中,需要实现检测IO电平是否为低,同时需要实现
- 自锁,按键按下一次只运行一次任务,当按键松开后,才能按下下一次实现功能,不然一直执行功能。不要去实现长按功能。
- 消抖,按下后不稳定的电平变化会影响程序,通过延时去屏蔽掉这段时间。
-
if(Key0 == 0)
{
delay(20);
if(Key0 == 0)
{
//功能代码;
while(key0 == 0);
}
}
按键的抖动时间跟按下力度,本身属性有关,抖动时间不定,通常取经验值20ms。
独立按键较为简单,独立按键和矩阵按键本质上都是通过单片机的轮询来检测IO电平。
审核编辑:汤梓红
-
单片机
+关注
关注
6032文章
44513浏览量
632691 -
独立按键
+关注
关注
1文章
45浏览量
11541 -
轻触开关
+关注
关注
0文章
62浏览量
1320
发布评论请先 登录
相关推荐
评论