您的位置 首页 电子

单片机程序设计中状态机思路的使用

状态机的概念状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态

状况机的概念
状况机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵敏使用。在一个思路明晰并且高效的程序中,必定有状况机的身影显现。

比方说一个按键指令解析程序,就能够被看做状况机:本来在A状况下,触发一个按键后切换到了B状况;再触发另一个键后切换到C状况,或许返回到A状况。这便是最简略的按键状况机比方。实践的按键解析程序会比这更杂乱些,但这不影响咱们对状况机的知道。

进一步看,击键动作自身也能够看做一个状况机。一个细微的击键动作包括了:开释、颤动、闭合、颤动和从头开释等状况。

相同,一个串行通讯的时序(不论它是遵从何种协议,规范串口也好、I2C也好;也不论它是有线的、仍是红外的、无线的)也都能够看做由一系列有限的状况构成。

显现扫描程序也是状况机;通讯指令解析程序也是状况机;甚至连继电器的吸合/开释操控、发光管(LED)的亮/灭操控又何曾不是个状况机。

当咱们翻开思路,把状况机作为一种思想导入到程序中去时,就会找到解决问题的一条有用的捷径。有时候用状况机的思想去考虑程序该干什么,比用操控流程的思想去考虑,可能会更有用。这样一来状况机便有了更实践的功用。

程序其实便是状况机。

或许你还不了解上面这句话。请想想看,计算机的大厦不便是建立在“0”和“1”两个根本状况的地基之上么?

状况机的要素
状况机可概括为4个要素,即现态、条件、动作、次态。这样的概括,主要是出于对状况机的内涵因果联系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:

①现态:是指当时所在的状况。

②条件:又称为“事情”。当一个条件被满意,将会触发一个动作,或许履行一次状况的搬迁。

③动作:条件满意后履行的动作。动作履行结束后,能够搬迁到新的状况,也能够依旧保持原状况。动作不是必需的,当条件满意后,也能够不履行任何动作,直接搬迁到新状况。

④次态:条件满意后要迁往的新状况。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

假如咱们进一步概括,把“现态”和“次态”一致起来,而把“动作”疏忽(降格处理),则只剩下两个最要害的要素,即:状况、搬迁条件。

状况机的表明办法有许多种,咱们能够用文字、图形或表格的方法来表明一个状况机。

朴实用文字描绘是很低效的,所以就不介绍了。接下来先介绍图形的方法。

状况搬迁图(STD)
状况搬迁图(STD),是一种描绘体系的状况、以及彼此转化联系的图形方法。状况搬迁图的画法有许多种,不过一般都迥然不同。咱们结合一个比方来阐明一下它的画法,如图1所示。

图1 状况搬迁图

①状况框:用方框表明状况,包括所谓的“现态”和“次态”。

②条件及搬迁箭头:用箭头表明状况搬迁的方向,并在该箭头上标示触发条件。

③节点圆圈:当多个箭头指向一个状况时,能够用节点符号(小圆圈)衔接汇总。

④动作框:用椭圆框表明。

⑤附加条件判别框:用六角菱形框表明。

状况搬迁图和咱们常见的流程图比较有着实质的差异,详细体现为:在流程图中,箭头代表了程序PC指针的跳转;而在状况搬迁图中,箭头代表的是状况的改动。

咱们会发现,这种状况搬迁图比一般程序流程图更简练、直观、易懂。这正是咱们需求到达的意图。

状况搬迁表
除了状况搬迁图,咱们还能够用表格的方法来表明状况之间的联系。这种表一般称为状况搬迁表。

表1便是前面介绍的那张状况搬迁图的另一种描绘方法。

表1 状况搬迁表

①选用表格方法来描绘状况机,长处是可包容更多的文字信息。例如,咱们不光能够在状况搬迁表中描绘状况的搬迁联系,还能够把每个状况的特征描绘也包括在内。

②假如表格内容较多,过于臃肿不利于阅览,咱们也能够将状况搬迁表进行拆分。通过拆分后的表格依据其详细内容,表格称号也有所改变。

③比方,咱们能够把状况特征和搬迁联系分隔列表。被独自拆分出来的描绘状况特征的表格,也能够称为“状况真值表”。这其间比较常见的便是把每个状况的显现内容独自列表。这种描绘每个状况显现内容的表称之为“显现真值表”。相同,咱们把独自表述根据按键的状况搬迁表称为“按键功用真值表”。别的,假如每一个状况包括的信息量过多,咱们也能够把每个状况独自列表。

④由此可见,状况搬迁表作为状况搬迁图的有利弥补,它的表现方法是灵敏的。

⑤状况搬迁表长处是信息包括面大,缺陷是视觉上不行直观,因而它并不能替代状况搬迁图。比较抱负的是将图形和表格结合使用。用图形展示微观,用表格阐明细节。二者互为参照,相辅相成。

用状况机思路完成一个时钟程序
接下来,我迁就状况机的使用,结合流程图、状况搬迁图和状况搬迁,举一个实践比方。下面这张图是一个时钟程序的状况搬迁图,如图2所示。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/325195.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部