多个按键识别出短按、双击、长按的一种简单方案

编程入门 行业动态 更新时间:2024-10-28 00:26:26

<a href=https://www.elefans.com/category/jswz/34/1771377.html style=多个按键识别出短按、双击、长按的一种简单方案"/>

多个按键识别出短按、双击、长按的一种简单方案

        几个普通按键实现复杂的功能在现在的嵌入式系统中应用非常常见,一方面是为了考虑到硬件平台的大小,毕竟现在的东西越来越小巧(功能相同的情况下越小越显得高逼格);另一方面是按键太多会影响平台的美观性和适用性,毕竟要是一个平台上面有一大堆按键会加大工作人员学习难度,在这种情况下很容易发生误操作。

        最近在忙一个网上接的小项目,做着做着客户提了许多新功能,但麻烦的事当初画板子的时候没有考虑到这些(是我的原因,在画板之前没有考虑周全)。项目原来只需要控制继电器按照设定的时间通断,然后提示本次是否有错误,想着挺简单的就接了。结果做着做着客户居然还要能保存和读取测量错误的数据,顿时给我懵逼了。

        数据存储的话就需要用到存储器,还好芯片有自带的EEPROM,可以把数据存在这里面。麻烦的是如何控制把存进去的错误数据读出来。按照最初的要求我只设置了两个拨码开关负责通道的通断,普通按键只有三个负责修改时间和循环次数。普通按键三个分别实现:当前位选数值+1、当前位选数值-1、当前位选向左移位。至于调整的那个通道就看拨码开关哪个是打开的状态(这里双通道都打开不能识别反而不执行任何动作)。

        把更新后的要求仔细分析了一下发现如果一个按键一个功能的话需要用到14个普通按键(具体功能如下):

按键一通道一时间参数修改;
按键二通道一循环次数参数修改;
按键三读取通道一当前次数存储的的错误数据;
按键四读取通道一所有存储的的错误数据;
按键五清除通道一存储的数据;
按键六通道二时间参数修改;
按键七通道二循环次数参数修改;
按键八读取通道二当前次数存储的的错误数据;
按键九读取通道二所有存储的的错误数据;
按键十清除通道二存储的数据;
按键十一数码管位选移位;
按键十二数码管位选数值+1;
按键十三数码管位选数值-1;
按键十四已修改的参数保存;

 很明显不可能用这么多的按键,14个按键看着都头晕,只得另寻他法。在网上看了一篇如何实现按键单击、双击、长按的帖子上面还有详细的程序和注释(链接如下:单片机按键识别篇---单击---双击----长按 - 一切都会好 - 博客园)。顿时发现我的这14个功能都不是是个事,一个按键三个状态,三个按键就可以组合成27个状态,这对于我这点需求不是轻而易举。

        至于如何实现单按键识别三种状态网上有很多,基本都是差不多的原理,我这里就不详细说明了。我这里详

更多推荐

多个按键识别出短按、双击、长按的一种简单方案

本文发布于:2024-02-17 07:16:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1693162.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   双击   按键   简单   方案

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!