51单片机用有限状态机算法实现顺序控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
() 示 处 理 语 句 3显
灯熄 灭 1 后 ,c 8S 灯熄 灭 。 根 据上述 要 求 ,设计 出的 8 S 1 片机 接 线 图如 95 单
图 l 示 ,其 中 ,3 0引脚 连 接 按 键 k P . 、2 1 所 P. ;2 0 P . 、
P. 2 2引脚 分别 连接 a灯 、b灯 、C灯 。
第4 ( 期 总第 1 7 ) 6期
2 1 年 8月 01
机 械 工 程 与 自 动 化
M ECHANI CAL ENGI NEERI NG & AUT0MATI ON
No. 4
Au . g
文章 编 号 :6 2 6 1 2 1 )0 — 0 2 0 17 - 4 3( 0 1 4 0 4 — 3
的多分 支的结构 ,并很 容易用 c语言来 实现 。当我们
进 行单 片机 开发 时 ,把 有限状态机 作为 一种思想 导入
c s N aeS : / /在状态 S N / /插入 S N的操作 ; / /插 入 离 开 s N的转 移 ;
b e k: ra
} )
通 常 将 表 示状 态 转 移 的多 个 i f语句 写 成 i- le f es 语句 ,这样 可 以使转移 条件形成 互斥 。其语 句如下 :
低 电平 灯 亮
i (k =) fk : O ft t= :k 8:O O } s ae lk = t = ;
api t n i o w r f n uta cn o [] 7h pl ao s n sf a o i sil ot l C/ t ci t e r d r r /2
再次 按 下 时 ,a灯 立刻 熄灭 ,b灯 l 5 S后熄 灭 ,在 b
() 入 信 号 处 理 语 句 1输
获得所有的输入信号状态; () 2 状态机描述语句 主要是描述状态转移 、转移条件 、定时变 量清 零等; 该状 态 下 的输 出语 句 ; 显 示 该 状 态 的发 光 二 极 管 ( 是 必须 的 ,用 于 调试 ) 不 ;
灯 , “ ”和 “ ”分 别代 表 “ ”和 “ ” l 0 亮 灭 ,而 S 、 0、
S 、 2 、S 1 、s 、 3分 别代表 开 关灯 装置 工 作 的 四种状 态 ,
k y 表按键 k e代 。
v i an0 odm i
u i n d nt n ns g e i n:
5 单片机用有 限状态机算法实现 顺序控制 1
刘 媛 媛 ,
(. 1 太原 理工 大学 信息 工程学 院 ,山西 太 原 0 0 2 ;2 山西 职业技 术学 院, 山西 太原 30 4 . 000 ) 3 0 6
摘要 : 随着顺序控制技术 的发展 ,对 顺序 控制器设计提 出了更高 的要 求,希 望顺 序控制程序设 计方法更简 便 ,开发成本 更低廉 。5 系列单 片机广泛用于顺序控制器设计 ,采用基于c 言描述 的有限状态机算法设 计 1 语 单片机程序 ,简化 了顺序控制设计 ,降低 了开发成本 ,是顺序控制技术程序设计的发展方 向。 .
在5 l单 片机 中 ,用 c程 序 描 述 有 限状 态 机 的完
整 格式 如下 :
# n l d < T 9 5 . l i c u e A 8 X 1 1 >
数码管的译码表格 ; 设 置 定 时器 的定 时 变 量 ; 设置状态变量 :
设置其他全局变量 ; 在主程序 中: { 局部变 量初始 化; 定时器初始化语句; 中断允许语 句; 在主程序无限循环中:
i (T f N转 移 条 件 满 足 ) { 态 转 移 到 满 足 T 状 N条 件 的 次 态 : 操
收 稿 日期 :2 1. 1 1 ; 修 回 日期 :2 1 3 1 01o—4 0 卜o — 8
{ / /插 入离开该状态的条件语句 / /插 入要 转 移 的次 态 / /插入 s 状态的操作语句 1
t +: O + i (0 1 0 ft>0)
(0 0 t= :
/t / O每 1s时间 间隔 加 1
k= k 0: b e k: ra
c s 0 7 a e x f:
k= k 7: b e k: ra d f u t: k =8: eal k
}) )
4 结论
} w i e P 0 f) : h l (3 =x f 1
刘 媛 媛 :5 单 片杌 用 有 限 状 态 机 算 法 实现 顺 序 控 制 l
・4 ・ 3
将 定 时数 据 送 到 数码 管 显示 ( 是 必 须 的 , 用 于 调 试 ) 不 : () 他 语 句 4其 () 在 状 态 描 述 语 句 中 没有 描 述 输 出 ,可 单 独 描 述 各 个 状 态 下 5若 的 输 出 } 在 定 时器 中 断 服 务程 序 中 : 设 置 静 态 局 部变 量 ; 根 据定 时器工 作模 式确定 是否 设置初 值 ,若是 需要 精 确定 时 ,
i (sa e = 1 f tt s )
/ /初 始 状 态
{w t h (t t) s i c sa e {a e S : c s O / /在 状 态 s O
i (T f O转移 条件满 足) f 态转移 到满足 T 状 0条件 的次 态 ;操 作 ;)
i (T f I转 移 条 件 满 足 ) ( 态 转 移 到 满 足 T 状 l条 件 的 次 态 ; 操 作 ;}

选 择不需要预置初值的工作模式 2 : 每 中断一次就增加数值 的语句 ,获得确 定的中断时间 ( 例如 1 S : ) 按 照 确 定 的 中 断 时 间 ,增 加 定 时变 量 ;


3 具 体应 用实例 设 计 一个 开 关灯 装 置 ,该装 置 在 按 键 k P . (3 0引 脚) 第一 次按 下 时 3盏 灯 a 、b和 C同 时 点亮 ; 当 k
根 据 a灯 、b灯 、c灯 的亮 和 ,画 出如 图 2所 示 的状 态转 移 图。通过 图 2 可 很 清 楚地看 到灯 的具
体 动作 。其 中 ,L D 、L D 、L D E O E 1  ̄ 2分 别对 应 a 、C E 、b
其 源程序如 下 :
#i cl d A 8 X5 . n ue T 9 1h

P = a l [O l ] lt b  ̄ t / O : /P / l口连接 的数码管显示 加 的高位 P = a l [0 1 ] 0 t b e t% 0 : /P / 0口连接 的数 码 管 显 示 t 的低 位 O / 下 是 状 态机 描述 /如 i (s a e= ) f (t t -0 ) / 态0 /状
关键词 : 有限状 态机算法;单片机 ;顺序控制 中图分类号 : P 6 . T 3 81 文献标识码 : A ,
1 顺序控 制与有 限状态机
作;)
b e k; ra
按照规定的顺序依次完成各种操作的控制系统称 为顺序控 制 ,顺 序控 制常采用 按时 间顺序或 逻辑顺 序
进 行控制 的开环 控制方 式 。顺序 控制器 一般用 于生产 过程 的开关量控 制 ,如动力设 备的启动 和停止 、加 热
更优质 的工业顺序控制器提供一种 很有效的方法。
参考文献:
L1 DRU A P P C Fnt tt c ie n hi j ME A, O ES U C. ii s ema hn sa d ter e a
2 1t= ; / 3个灯全灭 ,由于是 LD灯 = :O O / E / /如果 P . 3 0引脚 的按键按下 / /进入状态 l ,使 k= ,避 免 k8
} i f(s a e _ N tt S)
{ / /插 入 离 开 该状 态 的条 件 语 句
作 者 简介 :刘 媛 媛 (9 0 ) 女 , 18 - , 山西 太 原人 , 教 , 读 硕 士 研究 生 。 助 在
21年第 4 01 期
/ 插 入要 转移的次态 / / /插入 S N状 态的操 作语句 )
・4 ・ 4
P=P 0f 3 3l x f
ke = 3; yP
机 械 工 程 与 自 动 化

s a i u i ne h r n: t t c ns g d c a n
T 0 x c; H =0 3
2 1 年 第 4期 01
i (k yjx 0  ̄0 f ) f (e O O ) = x f f r(n 0 n 3 0 ; n + ; o n = :n < 0 0 n + )
i (sa e = O f tt S )
fi (O转 移 条 件 满足 ) fT { 态转 移 到满 足 r 状 0条 件 的 次态 ;操 作 ; }
e s l e
i (1转 移 条件 满 足 ) fT {状 态 转移 到 满 足 T l条件 的次 态 ;操 作 ; J
el e s
T O x O: L =O b
nn+ : +
i (k y{x 0 !O f ) f (e 0 0 ) = x f

s ic (e ) w t h k y {
c s 0 f a e x e:
i (n = 0 f n= 2 ) 行 如 下 语 句
{n 0 n= :
/ /如 果中断 2 O次 ,相 当于 1s时间,执
P 0 2 =l; 2 =1; 2 P 1 P
_ —
在 基于 5 单 片机 用 有 限状 态 机算 法 实现顺 序控 l 制 的过程 中 ,顺 序控 制 的程 序 设计 是有 规律 可循 的, 可使设计 更加简便 ,降低 了开发工业 顺序控 制器 的成 本 ;更可以使开发者 思路清 晰,为开发者设计 出更好 、
到程序 中去 ,就会找到解 决 问题 的一条有效捷 径 。 2 基 于 5 单片机 用有 限状 态机算法 实现 顺序控 制 1 用 C语 言描述有 限状态机 的格式 如下 :
it s a e S ; n t t = O
w i e 1 h l ()
i (N转移 条件满足) fT {状态 转移 到满足 T 条件 的次态 ;操作;} N }
u sg e h r c d a l 口 = (x O O F ,x 4 O B ,x 9 n in d c a o e tb e O C ,x 9 O A ,x O 0 9
0 9 , x 2 O F , x 0 O 9 ) x208,x8O8,x0 ;
u i n d c a k O 0 , a e O, 0, e ns g e h r k = x 8 st t = t k y
c s l a es :
/ /在 状态 S l / /插入 S 状态下的操作 ; 1 / /插入离开 S 1状态下的转移 ;
b e k: r a
或制 冷设备 的接 通和 断开、信号灯 的亮与灭等 。 有 限状态机 主要用于 顺序控 制 当中, 即它 能采取 某种 操作来 响应 一个外部 事件 。具体采取 的操作 不仅 能取 决于接 收到 的事件 ,还 能取 决于各个 事件 的相对 发 生顺 序 。它是一种 算法 思想 ,简单而 言,有 限状态 机 由一 组状态 、一个 初始状态 、输入 和根据 输入及 现 有状态 转换 为下一个 状态 的转换 函数组成 。其 中依据 有 限状 态机 的状 态转移 关系和 转移条件 ,可 以把 一个 非常复 杂的程 序变成一 个依据 条件编码 内容进
T l = x3 l O c: O T O O b L = x O: T O R =1: E O : T =I E =I A :
/ /定 时器 0设 置
w i e 1 h l ()
t t s = 8
图 2 状 态 转 移 图
/ /如下是按键处理语句
相关文档
最新文档