我们的DIY电子时钟上有三个按键,而这三个按键需要完成整个时钟的参数设置,所以就需要用到复用功能的按键,也就是今天我们说的多功能按键。
任务要求:采用板子上的三个按键,完成至少4个时间参数的设置。
根据以上的任务要求,我们来说说程序设计的思路(电路原理我们在之前的教程里已经介绍过了)。我们3个按键要去设置至少4个的参数,这显然是一个按键设置一个参数是不行的,那第一集里我们说的按键程序就是不可行的了,那怎么办呢?对参数的设置,自然需要可以加,也可以减,这样我们就需要两个按键,这两个按键我们分别计为“+”键和“-”键,剩下的一个按键我们用来选择设置的参数,计为“SET”键。第一集里的按键程序我们是记录按键按下的次数,这里我们同样通过记录按键次数的方式来选择设置的参数,比如:“SET”键按下1次,我们选择设置的参数为第一个,此时按下“+”“-”键可以对第一个参数调整,“SET”键按下第二次,我们选择设置的参数为第二个,此时按下“+”“-”键可以对第二个参数调整,依次下去,这样理论上是不是可以设置无数个参数,而实际上也是可行的。具体的设置过程如下:
开始: SET 按下1次 ,此时按下“+”“-”设置参数1;
SET按下2次 ,此时按下“+”“-”设置参数2;
SET按下3次 ,此时按下“+”“-”设置参数3;
SET按下4次 ,此时按下“+”“-”设置参数4;
。。。 。。。
结束。
通过这样的方式,我们就可以实现用三个按键去设置多个参数,这个SET按键就是具有复合功能的按键,也就是多功能按键了,通过记录它按下的次数,我们来选择对不同参数的设置。
在实际运用中,我们需要确定需要设计的参数的多少,比如要设置4个参数,那我们可以在SET按下第5次的时候退出按键设置程序。也就说在设置参数个数加一次的时候退出设置部分,并保存设置的值。这样的程序是简单的写发,还有更智能的写法是当我们进入设置状态后,几秒钟没有按键按下后就自动退出设置程序,这样就需要开启定时器,或者在设置程序部分做计数的处理,这方法后续有时间我们会再给大家细说,今天不做过多说明。
接下来我们说说再写程序时候的注意事项。按键检测还是老方法用if语句来判断按键按下与否。在SET键选择设计参数时候我们常用的是分支语句switch…case语句。具体请参看我们的源代码部分。
最后我们要把设置的参数显示出来,这里我们DIY电子时钟上只有4位数码管可以用来显示,我们安排的显示界面如下,参数1显示在左边第一位,依次向右,第二位显示参数2,第三位显示参数3,第四位显示参数4.在设置的时候,设置哪一个参数,就只在对应的位上显示当前设置的参数。
详细的代码设计如下图:(为防止大家复制粘贴,我们提供的源码都以图片形式呈现,你可以照着搬,但是必须你自己动手敲进去,小代在此说明,所有源码都是可行的,都是小代原创的,转载及使用请说明出处)以下代码主要是按键处理的部分,显示及主函数部分和之前教程里的是一样,在此就省略了。需要之前的教程,可以关注微信公众号:单片机技术宅,然后在下面的菜单中查看“文章”。