单片机一个按键怎么实现三个菜单(界面)?

利用按键来进行界面或者是菜单的切换,公子给出以下思路,仅供参考,如果大家还有其他的更加好的方法,请大家私聊公子,好的东西需要一起分享呀。

 

  1. 利用按键的短按,长按和双击来实现

    首先你得明白短按,长按和双击是什么意思,学过51单片机的同学应该知道。

     

    上图是一共4个按键的独立按键,低电平触发,明白这些,再来看看消抖,如下图。

    上图的示意图中是不是有“键稳定”的部分?我们可以通过这一部分细化,

     

    通过键稳定的时间来判断单击还是长按,利用好定时器的定时功能,如上图所示,如果超过3S,则是长按。分析了长按与短按,再来看看什么是双击,一句话,双击就是短按(单击)了2次,通过判断"低电平-高电平-低电平"就可以了。明白了按键的短按,长按和双击,实现菜单(界面)就轻而易举,如果是短按就显示界面1,长按显示界面2,双击显示界面3,这样,可以在三个界面随意切换,不需要按照一定顺序。

     

  2. 利用标志位来实现

    我们首先定义一个按键和一个标志位(为了对比按键的短按,长按和双击,我们假设标志位有3种状态,即0,1和2。事实上不可能有三种状态),按下按键,标志位++;如果标志位==3,标志位置零。三种标志位对应界面的三种情况。这和上面的不同,这个界面的切换是按照一定顺序。比如我是界面1,我需要切换到界面3,我就必须这样:界面1-界面2-界面3;完全需要遵守顺序。如果是利用按键的短按,长按和双击来实现呢?我可以直接双击,立马就从界面1跳到界面3,完全不需要通过界面2。

posted @   电子菌  阅读(703)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示