状态机思路在单片机程序设计中的应用.pdfVIP

  • 24
  • 0
  • 约7.82千字
  • 约 7页
  • 2021-11-25 发布于江苏
  • 举报

状态机思路在单片机程序设计中的应用.pdf

状态机思路在单片机程序设计中的应用 状态机思路在单片机程序设计中的应用 状态机的概念 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。 在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 比如说一个按键命令解析程序,就可以被看做状态机:本来在 A 状态下,触发一 比如说一个按键命令解析程序,就可以被看做状态机:本来在 A 状态下,触发一 个按键后切换到了 B 状态;再触发另一个键后切换到 C 状态,或者返回到 A 状态。 个按键后切换到了 B 状态;再触发另一个键后切换到 C 状态,或者返回到 A 状态。 这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不 这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不 影响我们对状态机的认识。 影响我们对状态机的认识。 进一步看,击键动作本身也可以看做一个状态机。一个细小的击键动作包含了: 进一步看,击键动作本身也可以看做一个状态机。一个细小的击键动作包含了: 释放、抖动、闭合、抖动和重新释放等状态。 释放、抖动、闭合、抖动和重新释放等状态。 同样,一个串行通信的时序 (不管它是遵循何种协议,标准串口也好、I2C 也好; 同样,一个串行通信的时序 (不管它是遵循何种协议,标准串口也好、I2C 也好; 也不管它是有线的、还是红外的、无线的)也都可以看做由一系列有限的状态构 也不管它是有线的、还是红外的、无线的)也都可以看做由一系列有限的状态构 成。 成。 显示扫描程序也是状态机;通信命令解析程序也是状态机;甚至连继电器的吸合 显示扫描程序也是状态机;通信命令解析程序也是状态机;甚至连继电器的吸合 /释放控制、发光管(LED)的亮/灭控制又何尝不是个状态机。 /释放控制、发光管(LED)的亮/灭控制又何尝不是个状态机。 当我们打开思路,把状态机作为一种思想导入到程序中去时,就会找到解决问题 当我们打开思路,把状态机作为一种思想导入到程序中去时,就会找到解决问题 的一条有效的捷径。有时候用状态机的思维去思考程序该干什么,比用控制流程 的一条有效的捷径。有时候用状态机的思维去思考程序该干什么,比用控制流程 的思维去思考,可能会更有效。这样一来状态机便有了更实际的功用。 的思维去思考,可能会更有效。这样一来状态机便有了更实际的功用。 程序其实就是状态机。 程序其实就是状态机。 也许你还不理解上面这句话。请想想看,计算机的大厦不就是建立在 “0”和 “1” 也许你还不理解上面这句话。请想想看,计算机的大厦不就是建立在 “0”和 “1” 两个基本状态的地基之上么? 两个基本状态的地基之上么? 状态机的要素 状态机的要素 状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出 状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出 于对状态机的内在因果关系的考虑。“现态”和 “条件”是因,“动作”和 “次态” 于对状态机的内在因果关系的考虑。“现态”和 “条件”是因,“动作”和 “次态” 是果。详解如下: 是果。详解如下: ①现态:是指当前所处的状态。 ①现态:是指当前所处的状态。 ②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一 ②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一 次状态的迁移。 次状态的迁移。 ③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可 ③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可 以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作, 以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作, 直接迁移到新状态。 直接迁移到新状态。 ④次态:条件满足后要迁往的新状态。“次态”是相对于 “现态”而言的,“次态” ④次态:条件满足后要迁往的新状态。“次态”是相对于 “现态”而言的,“次态” 一旦被激活,就转变成新的“现态”了。 一旦被激活,就转变成新的“现态”了。 如果我们进一步归纳,把 “现态”和 “次态”统一起

文档评论(0)

1亿VIP精品文档

相关文档