之前我们通过程序模拟了按键的短按和长按,在日常设备中,除了这两个,还会使用到单击和双击,甚至多击,有时还有设计出组合按键。这些都是为了在有限的按键模式下,可以实现更多的功能,对硬件的设计会减少很多空间和线路,不过对软件的稳定性会有更高的要求。

在使用中,多击和双击一般会使用在一些后台功能中,用户接触的比较少,可以作为一些备用设置来用,组合键对于用户来讲比较实用一些,也相对容易接受和操作。但作为一个功能的设计,我们还是要明白如何来设置这些程序,给自己的设备多一些选择的机会和设计思路。

接下来我们来看下如何来进行按键的单击和多击设计。硬件原理图还是用之前的,因为按键并没有变化,只是功能设计的思路不同。

原理图下方的一个继电器和按键,是用来为后边的组合按键来使用的,可以暂时不管。P1.0是输入按键,P1.1和P1.2是数码管位选,P2是段选。先打开后看下待机时的状态。

接下来还是看下程序,简单分析下我得设计思路。

设计思路是,先打开中断,然后通过按键触发进入中断,在中断中,打开一个按键时间控制开关变量,这个变量用于控制按键的持续时间,如果时间在设定时间内,再次单击按键,就会触发连击,如果时间超过设定时间,就无法触发连击。每次按键时间结束,都会进行关闭中断。

以后为了书写更多的程序,我把所有变量进行了自己的设定,方便后期程序的通用和移植。尽管看起来变量变得复杂了,名字变得长了不少。

接下来是测试,看看程序的运行情况,如果你对程序的编写还有疑问,可以留言或私信,文章我会写的相对简略。工作变动,原来的工作辞职了,新工作是,所以时间上比较紧张。加上还要带孩子。就更新的看缘分了。谢谢你的

转载请注明地址:http://www.abmjc.com/zcmbzl/1799.html