打开单片机开关时,按照01010101点亮。按下按键1,实现流水灯功能;按下按键2,按01,23,45,67,01,23,,循环点亮;按下按键3,实现呼吸灯功能。想问一下程序该怎么编?
不要用汇编语言
谢谢回答。
这些每个模块的编程都有,关键是不会和按键联系起来,例如按键1实现什么功能,按键2又实现什么功能,就想问问这些按键该怎么编程呢?
之前简单编了一下,发现按键1按下后,就陷入流水灯死循环,按键2就无反应了,想问问这该怎么解决,需要具体的编程,谢谢
if(key1==0){消抖;flag=1;}//按键是非自锁的,用flag暂存后就实现了自锁,按一次丢手 flag值被保存,如果没有其它按键按下,则flag值不变
if(key2==0){消抖;flag=2;}
if(key3==0){消抖;flag=3;}
if(flag==1){单灯流水}//一次执行一次流水循环;不是死循环,但程序总体是大循环
因此如果没有其它按键按下,一直执行它,而不是仅仅一次
if(flag==2){双灯流水}
if(flag==3){呼吸灯}
呼吸灯呼吸一次时间长,期间对按键没有反应;可以在呼吸程序中间加Key1 key2判断
如果按下按键,flag值同样可以改变,并用break跳出循环
而流水灯流水一次时间短,按键多按一会就检测到了,如果嫌其反应慢,也可以像呼吸灯一样,中间加按键检测
好的,我试试
本回答被提问者采纳