8按键功能详解,一篇搞懂所有8按键说明!
大家今天跟大家唠唠我最近搞的这个“8按键说明”的小项目,也没啥高深的东西,就是把8个按键的功能给安排明白,然后用代码实现出来。说白,就是个简单的控制系统。
一开始拿到这个题目,我就寻思,8个按键,能干后来一想,可以控制一些简单的设备,比如控制小车的方向,或者控制LED灯的开关啥的。有方向,就开始琢磨怎么把这些按键的功能给定义
我先是画个草图,把8个按键的位置和对应的功能都标注清楚。比如说,上下左右四个按键控制小车的方向,另外四个按键控制LED灯的亮度。这只是个初步的想法,具体实现的时候还得根据实际情况调整。
接下来就是选单片机,手头正好有个STM32F103C8T6,俗称“小蓝板”,用它来做控制核心是再合适不过。然后就是准备一些外围电路,比如按键的输入电路,LED灯的驱动电路等等。这些东西网上都有现成的资料,照着做就行。
硬件搭好之后,就开始写代码。先是初始化IO口,把按键对应的IO口设置为输入模式,把LED灯对应的IO口设置为输出模式。然后就是写按键检测的程序,这个比较简单,就是轮询检测IO口的电平变化,判断哪个按键被按下。
重点来,按键消抖!这个是必须的,不然按一下按键,程序可能会检测到多次按下,导致误操作。消抖的方法有很多,我用的是软件消抖,就是检测到按键按下后,延时一段时间,再检测一次,如果还是按下状态,就认为按键确实被按下。
检测到按键按下后,就执行对应的功能。比如,如果按下“向上”按键,就让小车前进;如果按下“亮度+”按键,就增加LED灯的亮度。这些功能都是通过控制IO口的电平来实现的。
代码写好之后,就是调试。这个过程是最痛苦的,也是最有意思的。刚开始的时候,各种问题层出不穷,比如按键没反应,LED灯不亮,小车乱跑等等。遇到问题就一点一点地排查,用万用表量电压,用示波器看波形,一步一步地缩小问题的范围。
经过一番折腾,终于把所有的问题都解决。按下不同的按键,小车就能按照我的指令前进、后退、左转、右转,LED灯也能按照我的指令调节亮度。看着自己的成果,心里还是挺有成就感的。
- 按键1:小车前进
- 按键2:小车后退
- 按键3:小车左转
- 按键4:小车右转
- 按键5:LED亮度+
- 按键6:LED亮度-
- 按键7:LED开关
- 按键8:预留功能
这个“8按键说明”项目虽然简单,但是也让我学到很多东西。比如,如何定义按键的功能,如何编写按键检测程序,如何进行按键消抖,如何控制IO口的电平等等。这些知识对于以后做更复杂的项目都是非常有帮助的。
这回的实践就分享到这里,希望对大家有所帮助。如果大家有什么问题或者建议,欢迎在评论区留言,我们一起交流学习!