说说51单片机的多功能按键程序怎么写

控制/MCU

1840人已加入

描述

我们的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.在设置的时候,设置哪一个参数,就只在对应的位上显示当前设置的参数。

详细的代码设计如下图:(为防止大家复制粘贴,我们提供的源码都以图片形式呈现,你可以照着搬,但是必须你自己动手敲进去,小代在此说明,所有源码都是可行的,都是小代原创的,转载及使用请说明出处)以下代码主要是按键处理的部分,显示及主函数部分和之前教程里的是一样,在此就省略了。

定时器

定时器

定时器

定时器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分