中易网

c51独立按键去抖延时使用状态机,我想知道什么是状态机?使用状态机的思路是怎样的?

答案:2  悬赏:50  
解决时间 2021-01-14 19:50
  • 提问者网友:藍了天白赴美
  • 2021-01-14 10:52
c51独立按键去抖延时使用状态机,我想知道什么是状态机?使用状态机的思路是怎样的?
最佳答案
  • 二级知识专家网友:神鬼未生
  • 2021-01-14 11:41
就是定时操作。
定时 20ms,中断后,读出一次按键。
连续两次都是按下,就可以确认按下了。
但是,即使按键 39ms,也有可能,不被确认。
同样,即使是抖动,但是只要采样到两次,也认定是按下。
这种方法笨死了。
一个稳定的控制系统,是不会采用这种方法的。
全部回答
  • 1楼网友:西风乍起
  • 2021-01-14 12:09
switch(KEY_ST){
case FSM_KEY_INIT:
if(KEY == 0) KEY_ST=FSM_KEY_TRANS;
break;
case FSM_KEY_TRANS:
if(KEY == 0){//0为按下,1为不按
KEY_ST=FSM_KEY_AFF;
flag_key_pressed=1;//标志位制1
}else {
KEY_ST=FSM_KEY_INIT;//回到初始状态
}
break;
case FSM_KEY_AFF:
if(KEY == 1) KEY_ST=FSM_KEY_INIT;//没有按键按下回到初始状态
break;
}//状态机部分
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息