原标题:C语言状态机编程思想
有限状态机概念
有限状态机是一种概念思想,把复杂的控制逻辑分解成有限个稳定状态,组成闭环系统,通过事件触发,让状态机按设定的顺序处理事务。单片机C语言的状态机编程,是利用条件选择语句(switch、case或者if、else)切换状态,通过改变状态机状态,让程序按设定的顺序执行。
有限状态机由有限的状态和相互之间的转移构成,在任何时候只能处于给定数目的状态中的一个。当接收到一个输入事件时,状态机产生一个输出,同时也可能伴随着状态的转移。状态机的原理如下:在当前状态下,发生某个事件后转移到下一个状态,然后决定执行的功能动作。可参考如下示意图:
应用举例
要想使用状态机思想进行编程,需要将任务分解成有限个稳定状态。
这里以常见的按键动作进行举例说明:
上图为按键典型的动作图,可以分解为四个状态,分别为:
状态1 = 按键弹起、
状态2 = 前沿抖动、
状态3 = 按键按下、</