单片机单按键控制多种流水灯

19.花样流水灯的制作设计要求:单片机的 P2 口上接有 8 只发光 LED 组成的花样流水灯。输入引脚 P1.2 接有一只按键开关 K。K1 未按下时,单片机利用 P2 口的输出,控制花样灯向左循环流水点亮;K 按下 1 次时,控制发光二极管交替点亮;K 连续按下 2 次时,控制发光二极管两灯点亮两灯熄灭且闪烁;K 连续按下 3 次时,控制花样灯恢复向左循环流水点亮。

主要是按键的连续按下的函数不会弄,求解答

用一个定时器来记录按键按下的时间

设置1秒内按下算连续按键的标志位 a (放在扫描按键的最后) 一个变量存连续按键次数b =1

假如第一次按下,定时器启动,标志位打开a=1,定时器达到一秒,说明没有连续按下,标志位关闭a=0,b变为1

若是有按键按下且a=1 那么b++,定时器清0再启动

标志位打开的情况下

检测到标志位

连续按键可以通过固定时间读取按键的次数来实现,比如统计一秒内的按键按下的次数,其实不难