标题:
单片机一个按键怎么控制数码管多种状态?第一次按下和第2次按执行不同的动作
[打印本页]
作者:
过去已成往事
时间:
2020-12-4 13:02
标题:
单片机一个按键怎么控制数码管多种状态?第一次按下和第2次按执行不同的动作
一个按键怎么控制数码管多种状态,比如按下按键第一次,数码管开始自动计时(0-99),按下第二次,数码管停止,按下第三次,数码管清零。用定时器。
作者:
51hei团团
时间:
2020-12-4 16:39
可以用检测执行动作状态的办法,比如第一个动作和第2个动作都未执行过,则执行动作1
第一个动作已经执行过了,标志位置1,第2个动作未执行,此时按键则执行2,
以此类推,由于论坛不允许直接提供代码,自行整理一下吧
作者:
minileo5
时间:
2020-12-4 16:51
用一个变量计数?a=0时按下开始计时a+1,a=1时按下暂停a+1,a=2时按下数码管清零a置零。
作者:
sunny北城
时间:
2020-12-4 17:10
定义一个全局变量,在按键每次按下时执行的函数里面改变这个变量的值,通过判断这个值来实现不同功能,注意在程序里对变量使用完后进行初始化
作者:
xqleft
时间:
2020-12-4 20:42
if(WORK_NUM==0)
{
}
else if(WORK_NUM==1)
{
}
else
{
}
这里就有三个模式,就这么简单.你把你需要功能分别写进不同的模式就可以了
作者:
1922323908
时间:
2020-12-4 20:54
添加一个flag作为标志,然后判断flag的值就可以实现你想要的模式
作者:
robinsonlin
时间:
2020-12-5 18:41
1、通过定时器采集时间。
2、在主程序中设定标志位。
3、判断按键动作,改变标志位数值。
4、标志位数值满足条件后,执行相应操作。
作者:
TTQ001
时间:
2020-12-6 02:04
创建一个布尔变量,第一次按下该键时,将该变量设置为true,然后执行第一操作; 再次按下该键时,检查该变量,如果该变量为true,则表示第二次按下,执行第二操作,将变量重置为false。 如果变量为false,则表示这是第一次按下,然后执行第一操作。
作者:
千江水
时间:
2020-12-6 10:04
设置一个flag,当你按键按下的时候,flag++;
作者:
千江水
时间:
2020-12-6 10:07
你需要设置一个变量flag,当按键按下的时候,flag++,if(flag>=4)flag=0;然后if(flag== 1){数码管开始自动计时}else if(flag==2){数码管停止}else if(flag == 3){数码管清零}
作者:
17803856022
时间:
2020-12-7 11:41
一个按键设置多种模式,然后进行条件判断即可
作者:
univers
时间:
2020-12-7 11:49
一个变量累加不就可以了么,很简单。
作者:
hejianmin
时间:
2020-12-7 11:50
要标致位处理
作者:
权威人物
时间:
2020-12-7 12:03
按键处理不论的话
if(key)
{
keyNUM++; if(keyNUM>3)
{
keyNUM=0;//或者1,根据需求
}
}
switch(keyNUM)
{
case 1://第一下按下需处理的
break;
case 2 : break;
case 3: break;
default
: break;
}
作者:
jjwangxu2008
时间:
2020-12-7 14:10
状态机················
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1