单片机编程中有限状态机的应用_论文

科 技 风 2017年 8 月上 电子信息 D 01: 10.19392/j.cnki. 1671-7341.201715062 单片机编程中有限状态机的应用 杨 旭 中 国 铝 业 郑 州 有 色 金 属 研 究 院 有 限 公 司 河 南 郑 州 450041 摘 要 : 电子技术在不断的发展更新, 这在一定程度上使得单片机的编程必须提升其基本要求, 而有限状态机的运用能够简 化程序中的判断步骤, 使程序的整体执行时间得以缩短, 从而提升单片机处理的时效性。 关键词: 单片机;编程;有限状态机;应用 状态机在对一些逻辑较为复杂或者实时性较强的问题的 处理过程中具有一定的优势, 有限状态机属于一类数学模型, 它主要是通过某些有限的状态或者在相关状态之间的动作与 转移而构成的, 此数学模型被广泛的运用在系统分析与设计当 中。有限状态机的基本特性通常以描述控制为主, 它在软件中 是一类比较常用的处理方式。有限状态机运用于单片机程序 中可以把相对复杂的事件分解成具体的稳定状态, 再利用外部 事件将程序的状态加以改变, 并在此基础上进行相关的操作 处理。 _ 、 什么是有限状态机 有限状态机一般依照规定的顺序将相关的操作依次完成, 它是由既定的数目的状态以及数目之间的转移所构成, 系统无 论在哪种情况下都只会处于给定状态中的一个, 受到外部事件 的影响, 状态机也会给出一定 的 动 作 处 理 方 式 , 并且还有可能 会因状态的变化而发生转移。有限状态机通常分为两大类, 即 Melay 状 态 机 与 Moore 状 态 机 , 其 中 Melay 状态机的输出除了与 状态有关联外, 同时还与输人有密切的联系, 而 M c b 状态机 的输出仅仅与状态有关联。 分析有限状态机的相关要求, 有限状态机主要包含了四大 要素, 即动作、 现态 、 次态以及条件。现态是指程序当前所处的 具 体状态, 在可 以 满 足 相 关 条 件 的 基 础 上 , 系统会执行一次状 态或者一个动作的转移。次态则是完全满足条件 之 后 所 转 移 的新状态, 当次态被激活后将会变换成新的现态。有限状态机 的四大要素使得其中内部状态的基本因果状态得以呈现, 条件 与现态是因, 动作与姿态为果。 一般情况下, 有限状态机以两种表现方式呈现出来, 其中 一种为状态转移表另外一种为状态转移图, 这两类方式都能有 效展现出有限状态机中的转移关系。 二、 程序的状态转移模型 在具体的工程运用当中, 一般会采用单片机来达到调度与 控制的目标, 这是通过一类识别指令数据, 再针对指令的差异 性来实现相关的控制。要想真正实现指令的识别与接收, 则需 要把每一个指令在接受的过程中当作一个具体的状态, 也就是 把每个特定的数据当成一个状态, 如此, 指令数据的接受工作 将会在程序中显示成从一个状态跳转至下一个状态的情况, 怎 么实现状态之间的有效转移是完成指令数据接收的关键点, 在 实施的过程中将每一个状态都对应具体的值, 当程序运行时, 通常判断此前的状态值再决定程序的基本走向, 得到正确的处 理 方式后, 再将此状态值进行修改, 以此来决定程序在下一个 过程中的基本走向。通常情况下, 单片机因为能够有效提供灵 活且丰富的寻址方式, 为此, 运用数据存储区当中的相关字节 对程序运行中的基本状态加以存放, 这使得指令数据的整个接 收过程变为状态转移过程。 三、 单片机程序中运用有限状态机 在上述描述中我们得知运用状态机实现程序的转移工作 在一定程度上能够有效缩短判断步骤, 可以从下面的工程实例 加以了解。M C S 5 1 单片机运用串品对指令数据进行接收, 或者 在主程序中进行, 针对不同的指令来完成对应的操作任务。比 如, 单片机需要接收两条指令, 具 体 的 通 信 格 式 请 参 见 表 1、 表 2 。当 接 收 到 指 令 1 之 后 才 能 展 开 第 一 阶 段 的 工 作 , 工作的具 体方式主要以数据1 2 实施, 在 接 收 至 指 令 2 之后再展开第二 阶段的工作, 具体的工作方式也以数据1-M 实 施 。 表 1 指 令 1 的通信格式 帧头 起始标志 数据12 8 X M d i 数据 表 2 指 令 2 的通信格式 帧头 起始标志 数 据 1-M 8 X M d i 数据 帧尾 结束标志 帧尾 结束标志 状态机 的 主 要 特 点 在 于 具 有 较 多 的 状 态 , 在运行程序时, 通过对状态值的判断才可以真正判断此次程序的基本走向, 当 状态值的判断方式与全部已知状态值对比是否存在相等的方 式进行, 那么, 程序当中也将会存在较多的判断转移语句, 如此 一来, 程序会在判断语句上浪费较多的时间, 同时, 所浪费的基 本时间也会以线性状态增加, 在状态较多的情况下也将有可能 在此次处理并未完全结束时传送过来下一个数据, 在这种情况 下, 极有可能会因无法及时的接收数据而使得数据漏掉, 最终 出现错误。要想防止此问题的发生, 我们可以通过下面的方法 着手实施。首 先在程序的存储器当中对各个分支状态的程序 人口设置地址表, 其次, 再把此前的状态值赋给A 、 M 0V A 、 R, 再 通 过 M 0 V C A @ A + D P T R 指令来查找地址表, 将各分支人口 的地址找 出 来 , 再 将 此 地 址 在 于 A 中。 同 时 , 通常散转指令 M P @ A + D P T R 转向分支对程序加以处理。 四、 结语 状态机隶属于时序电路的范畴, 状态机在对逻辑复杂以及 实时事件加以处理时充分的展现出其中的优越性, 在单片机编 程中运用有限状态机能够帮助程序解决高效运行以及实时性 处理方面的问题, 确保程序的执行时间与判断语句比降至最 低, 同时促使程序相关状态之间的关系以更加直观的状态呈现 出来, 这在一定程度上有篮球程序模块化的形成, 编写过程更 加简单、 思路也更加的清晰, 具有较强的可修改性,

相关文档

  • EMC整改方法_图文
  • 电子线路CAD-原理图仿真_图文
  • 认知无线电中基于认知引擎的自适应传输研究
  • 有限状态机在单片机编程中的应用_图文
  • 多肉繁殖:如何给多肉进行叶插繁殖,多肉轻松爆盆!_图文
  • 02实验二:数码管动态显示程序设计_图文
  • 新西兰采购商名录-电子 建筑
  • 在室外测试场中阵列天线方向图的测试方法_论文
  • 科华UPS电源维护操作手册_图文
  • 常用电阻阻值和电容容值速查表
  • protel99 元件封装总结(常用电子元件封装)
  • 电脑版