前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >51单片机的多功能按键程序设计

51单片机的多功能按键程序设计

作者头像
单片机技术宅
发布2020-03-17 10:15:29
1.9K0
发布2020-03-17 10:15:29
举报
文章被收录于专栏:初学单片机初学单片机
这个问题也是前些天在群里又同学问起过,还有就是我们的DIY电子时钟里也需要这样的设计,所以今天我们就来说说多功能按键程序怎么写。

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

详细的代码设计如下图:(为防止大家复制粘贴,我们提供的源码都以图片形式呈现,你可以照着搬,但是必须你自己动手敲进去,小代在此说明,所有源码都是可行的,都是小代原创的,转载及使用请说明出处)以下代码主要是按键处理的部分,显示及主函数部分和之前教程里的是一样,在此就省略了。需要之前的教程,可以关注微信公众号:单片机技术宅,然后在下面的菜单中查看“文章”。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单片机技术宅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档