用单片机,2个按键如果实现多个功能,跪求帮助。。

各位大侠,小弟是新手,刚学单片机,现在要做一个DEMO,遇到困境,恳请帮助。题目是这样的。有2个按键控制4个LED。上电之后,LED不亮,处于待机,按下Key1,流水灯从左向右,再按下key2,流水灯从右向左,再次按下key2,4个全亮,再次按下key2,返回到最初按下key1的状态,在工作时,按下key1处于待机状态。。现在我不能够实现按下第2次key2时候,无法退出那个流水灯的循环。。也就是无法实现key2的多次按键实现多个功能。跪求帮助,能够给予我这个DEMO的流程也可以。谢谢各位。我是这样做的,但是,第2次按key2,跳不出去第一次按key2实现的流水灯的那个循环。。
2026年09月24日 23:29
有3个网友回答
网友(1):

我是搞PLC的单片机不是很在行,但是思路是一样的,简单的办法是对KEY2进行计数,例如KEY2按下一次,是一个状态,再按下key2是另一个状态。然后把对KEY2按下的次数判断的程序发到每一个循环里面,例如第二个循环里判断KEY2按下3次的状态,然后跳转到KEY2按下4次的循环。
还有就是用KEY2做中断,来计数和跳转。

网友(2):

利用一个寄存器,受KEY2控制加1,然后判别里面的数值,进行分支跳转即可。

网友(3):

C语言使用switch ……case跳转就okay了。