单片机程序的状态机模型_第1页
单片机程序的状态机模型_第2页
单片机程序的状态机模型_第3页
单片机程序的状态机模型_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 23 卷第 2 期2004 年 6 月武 汉 工 业 学 院 学 报Journal of Wuhan Polytechnic UniversityVol. 23No. 2J un. 2004文章编号 :1009 - 4881 (2004) 02 - 0001 - 02单片机程序的状态机模型管庶安(武汉工业学院 计算机与信息工程系 ,湖北 武汉 430023)摘 要 :为单片机程序建立状态机模型 ,研究用此模型描述程序行为的完整性 ,讨论此模型的源代码实现方式 。关键词 :单片机程序 ; 状态集 ; 事件集 ; 输出集 ; 状态机 ; 代码实现中图分类号 : TP 315. 1 文献标识码

2、:A0 引言由于没有操作系统的支持 ,设计一个较为复杂的单片机实用程序 ,尤其是汇编程序 ,如果采用面向过程的方法 ,必然会引入大量的标志位 ,以实现各个模块之间的联系 。随之而来的是将会出现大量 、多层的判断 、 移语句 ,以控制程序的走向 。可以说程序的流向在很大程度上由大量的标志位来控制 ,而众多的标志位之间往往处于一种离散状态 ,程序员不得不花费大量的精力来协调各标志位 ,导致程序的可读性变差 。面向过程的方法要求程序跟随过程走 ,直至该过程完成 。因而很难满足多个过程并发执行的实时性 。 文从宏观上考察一个单片机程序 ,用一个状态机描述其行为 。基于状态机的严谨和科学性 ,使程序的规

3、划上升到全局的 、系统的层次 ,符合“自顶向下 ,逐步求精”的原则 。经作者大量实践表明 ,这一方法从根本上统一和协调了大量离散的标志位及其联系 。因此 ,程序的可读性大大加强 ,易于代码实现 ;有效地防止了某些重要细节的遗漏 ,便于容错设计 ;显著地提高了程序的可靠性 。1 程序的状态机模型定义 1 设一个运行中的程序可能处于的状态有l 个 ,记为 S 0 , S 1 , S l 。定义状态集 S 为 :S = S i | i = 0 l 。程序运行时 , 在实时事件的触发下 , 将从某一状态转移到另一状态 。容易证明 :没有触发 , 就不会发收稿日期 :2004 - 02 - 11作者简介

4、 :管庶安 (1956 - ) ,男 ,湖北省武汉市人 ,副教授 。生状态转移 。因为一个不接受 、处理实时事件的程序是毫无意义的 。定 义 2 设 全 部 实 时 事 件 共 有 m 个 , 记 为 0 , 1 , m 。定义事件集 E 为 :E = j | j = 0 m 。当状态转移发生时 , 可能需要执行某一动作 , 称为输出 。输出是程序设计的目的所在 。定义 3 设 全 部 输 出 有 n 个 , 记 为 P 0 ,P 1 , P n 。特别地 , 定义 P 0 为空输出 , 即不执行任何动作 。定义输出集 P 为 :P = P k | k = 0 n 。考虑 S 、E 、P 的笛

5、卡尔积 D :D = S ×E ×P = D x | D x = ( S i , j , P k ) , i = 0 l , j = 0 m , k = 0 n D x 表明 , 在当前状态 S i 下 , 若发生事件 j , 程序应该执行输出 P k 。定义 4 状态机 M 的定义 : 状态机为由 D 到 S的一个关系 ,记为 M :若元素 MM , DD , SS , 则 M= ( D,S = ( ( S i , j , P k ) , S表示 :在当前状态 S i 下 , 若发生事件 j , 程序执行输出P k 后转移到新状态 S。基于笛卡尔积 D 的完整性 ,一个实

6、际程序的任何行为都可以作为集合 M 中的元素加以收集 。因此 ,状态机 M 可以完整地描述一个程序的行为 。状态机 M 可以用状态图直观地加以描述 。图M D ×S ;转本) )2武 汉 工 业 学 院 学 报2004 年1 描述了一个具有 4 个状态 , 3 个实时事件 , 4 个执行动作的程序的状态机 , 其中 P 0 为无动作 。从图中可以看出 , 当处于 S 0 状态时 , 仅响应事件 2 的触发 、 行动作 P 3 、 转到状态 S 1 ; 在任何状态 下 , 如 果 有 事 件 0 触 发 , 一 律 转 到 状 态 S 0 , 等等 。图中后的方括号中如出现用逗号分隔的

7、几个数字 , 表示发生对应的事件之一 。式表示的 ,这些数据的取值决定了程序的走向 。主程序的任务是不停地监视事件队列 ,一旦非空 ,应立即调用相应事件的处理子程序 。该事件处理完 毕 , 令 其 出 队 , 再 转 入 主 程 序 的 入 口 点 , 用MCS51 汇编语言的形式描述如下 :MA IN : MOV A ,事件队列的头部元素CJ N E A ,空 , EV EN T 0SJ M P MA INEV EN T 0 :CJ N E A , # EV EN T 0 , EV EN T1L CALL 处理事件 0SJ M P EV EN T- QU ITEV EN T 1 :CJ NE

8、 A , # EVEN T 1 ,EVEN T 2L CALL 处理事件 1图 1 用状态图描述状态机EV EN T 2 :SJ M P EV EN T- QU IT2 构建程序的数据结构2 . 1 状态机的主 、 结构如果一个程序较复杂 ,势必涉及到较多的状态 ,这会导致集合 D 中 的 元 素 急 剧 增 加 。解 决 这 一 问题的策略是 ,如有需要 ,则某一状态为一子状态机 ,按树型结构组织主 、 状态机 ,如图 2 所示 。EV EN T- QU IT : 事件队列的头部元素出队SJ M P MA IN在各事件处理子程序中 ,应判断当前所处的状态 ,并结合本事件确定当前要执行的动作

9、,调用相应的动作执行子程序 。再根据状态机所示 ,把当前状态修改为新状态 ,完成状态的转移 。下面是事件 X的处理子程序 :DO- EVEN T- X: MOV A ,当前状态CJNE A , # STATE 0 ,IS- STATE 1LCALL 事件 X、 态 0 时的操作SJ MP DONE图 2 状态机的树型结构2 . 2 实时事件集合 E 的组织与访问对于运行的程序而言 ,事件具有突发性 。事件的采集方式有硬件中断和定时查询 。硬件中断有外部中断 、 时器中断 、 行通信中断 ;定时查询用于捕捉IS- STATE 1 :IS- STA TE2 :DON E :CJNE A , # S

10、TATE 1 ,IS- STATE 2LCALL 事件 X、 态 1 时的操作SJ MP DONERET非硬件中断方式输入的事件 ,它以一个定时器作为时间基准 ,等间隔采样输入事件 。由于定时器也按中断方式工作 ,从而保证了采集事件的实时性 。事件集合E 的存储结构为 FIFO 队列 。根据事件的紧急程度建立优先级别不同的多个队列 ,仅当优先级较高的队列为空时才访问优先级较低的队列 。3 基于状态机的单片机程序实现实质上 ,基于状态机的单片机程序设计方法 ,是一种面向数据的方法 。状态和事件都是用数据的形关于事件的采集 、 类入队 ,都是在中断服务程序中进 行 的 , 主 程 序 和 各 事

11、件 处 理 子 程 序 中 毋 需关心 。参考文献 : 1 乔维声. 离散数学 M . 西安 :西安电子科技大学出版社 ,1999.2 邓 良 松 , 刘 海 岩 , 陆 丽 娜. 软 件 工 程 M . 西安 :西安电子科技大学出版社 ,2002.(下转第 9 页)执 并子子状定 串状分2 期陈明意 : TMS320C6000 系列 DSP 串行通信接口设计95 结论上述 在 介 绍 TMS320C6000 系 列 基 本 性 能 基 础上 ,详细分析了其 SPI 接口通信原理 ,并给出了 C6000初始化流程图及程序供读者参考 。该方案在不具有SPI 接口的单片机组成的智能化仪表和测控系统

12、中 ,对于速度要求不高 、 电后保存少量系统参数和低功耗的场合 ,使用 SPI 总线 ,无疑会增加应用系统接口器件的种类 ,增强应用系统的性能 。参考文献 : 1 李方慧. TMS3206000 系列 DSPS 原理与应用 M . 北京 :电子工业出版社 ,2003. 411 - 436. 2 李哲英. DSP 基础理论与应用技术 M . 北京 :北京航空航天大学出版社 ,2002. 123 - 146.3 张雄伟. DSP 芯片的原理与开发应用 M . 北京 :电子工业出版社 ,2000. 15 - 30.图 3 初始化流程THE DESIGN Of ASYNCHRONOUS SERIALC

13、OMMUNICATION FOR TMS 320C6000CH EN M i ng - yi(Department of Electrical and Information Engineering , Wuhan Polytechnic University ,Wuhan 430023 ,China)Abstract : The characteristics of TMS320c6000 device is int roduced ,communictions principle of it s SPI module isanalysed , examples of interface c

14、ircuit are given , and t he cofiguration program of McBSP is presented.Keywords :SPI ; TMS320C6000 ;DSP ;McBSP ( Multi - channel Buffered Serial Port)(上接第 2 页)THE STATE MACHINE MODEL FORMICROCONTROLLER PRO GRAMMINGGUA N S hu - an(Department of Computer and Information Engineering ,Wuhan Polytechnic University ,Wuhan 430023 ,China)Abstract : Through t he establishment of t he model of t he state machine for microcont roller programming , t hispaper researches on t he mat urity of t he description of t he characteristic of t he program behavior wit h t h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论