单片机一个按键怎么实现三个菜单(界面)?
利用按键来进行界面或者是菜单的切换,公子给出以下思路,仅供参考,如果大家还有其他的更加好的方法,请大家私聊公子,好的东西需要一起分享呀。
-
利用按键的短按,长按和双击来实现
首先你得明白短按,长按和双击是什么意思,学过51单片机的同学应该知道。
上图是一共4个按键的独立按键,低电平触发,明白这些,再来看看消抖,如下图。
上图的示意图中是不是有“键稳定”的部分?我们可以通过这一部分细化,
通过键稳定的时间来判断单击还是长按,利用好定时器的定时功能,如上图所示,如果超过3S,则是长按。分析了长按与短按,再来看看什么是双击,一句话,双击就是短按(单击)了2次,通过判断"低电平-高电平-低电平"就可以了。明白了按键的短按,长按和双击,实现菜单(界面)就轻而易举,如果是短按就显示界面1,长按显示界面2,双击显示界面3,这样,可以在三个界面随意切换,不需要按照一定顺序。
-
利用标志位来实现
我们首先定义一个按键和一个标志位(为了对比按键的短按,长按和双击,我们假设标志位有3种状态,即0,1和2。事实上不可能有三种状态),按下按键,标志位++;如果标志位==3,标志位置零。三种标志位对应界面的三种情况。这和上面的不同,这个界面的切换是按照一定顺序。比如我是界面1,我需要切换到界面3,我就必须这样:界面1-界面2-界面3;完全需要遵守顺序。如果是利用按键的短按,长按和双击来实现呢?我可以直接双击,立马就从界面1跳到界面3,完全不需要通过界面2。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步