APP下载

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

2017-05-30杨旭

科技风 2017年15期
关键词:编程单片机应用

摘 要:电子技术在不断的发展更新,这在一定程度上使得单片机的编程必须提升其基本要求,而有限状态机的运用能够简化程序中的判断步骤,使程序的整体执行时间得以缩短,从而提升单片机处理的时效性。

关键词:单片机;编程;有限状态机;应用

状态机在对一些逻辑较为复杂或者实时性较强的问题的处理过程中具有一定的优势,有限状态机属于一类数学模型,它主要是通过某些有限的状态或者在相关状态之间的动作与转移而构成的,此数学模型被广泛的运用在系统分析与设计当中。有限状态机的基本特性通常以描述控制为主,它在软件中是一类比较常用的处理方式。有限状态机运用于单片机程序中可以把相对复杂的事件分解成具体的稳定状态,再利用外部事件将程序的状态加以改变,并在此基础上进行相关的操作处理。

一、什么是有限状态机

有限状态机一般依照规定的顺序将相关的操作依次完成,它是由既定的数目的状态以及数目之间的转移所构成,系统无论在哪种情况下都只会处于给定状态中的一个,受到外部事件的影响,状态机也会给出一定的动作处理方式,并且还有可能会因状态的变化而发生转移。有限状态机通常分为两大类,即Melay状态机与Moore状态机,其中Melay状态机的输出除了与状态有关联外,同时还与输入有密切的联系,而Moore状态机的输出仅仅与状态有关联。

分析有限状态机的相关要求,有限状态机主要包含了四大要素,即动作、现态、次态以及条件。现态是指程序当前所处的具体状态,在可以满足相关条件的基础上,系统会执行一次状态或者一个动作的转移。次态则是完全满足条件之后所转移的新状态,当次态被激活后将会变换成新的现态。有限状态机的四大要素使得其中内部状态的基本因果状态得以呈现,条件与现态是因,动作与姿态为果。

一般情况下,有限状态机以两种表现方式呈现出来,其中一种为状态转移表另外一种为状态转移图,这两类方式都能有效展现出有限状态机中的转移关系。

二、程序的状态转移模型

在具体的工程运用当中,一般会采用单片机来达到调度与控制的目标,这是通过一类识别指令数据,再针对指令的差异性来实现相关的控制。要想真正实现指令的识别与接收,则需要把每一个指令在接受的过程中当作一个具体的状态,也就是把每个特定的数据当成一个状态,如此,指令数据的接受工作将会在程序中显示成从一个状态跳转至下一个状态的情况,怎么实现状态之间的有效转移是完成指令数据接收的关键点,在实施的过程中将每一个状态都对应具体的值,当程序运行时,通常判断此前的状态值再决定程序的基本走向,得到正确的处理方式后,再将此状态值进行修改,以此来决定程序在下一个过程中的基本走向。通常情况下,单片机因为能够有效提供灵活且丰富的寻址方式,为此,运用数据存储区当中的相关字节对程序运行中的基本状态加以存放,这使得指令数据的整个接收过程变为状态转移过程。

三、单片机程序中运用有限状态机

在上述描述中我们得知运用状态机实现程序的转移工作在一定程度上能够有效缩短判断步骤,可以从下面的工程实例加以了解。MCS51单片机运用串品对指令数据进行接收,或者在主程序中进行,针对不同的指令来完成对应的操作任务。比如,单片机需要接收两条指令,具体的通信格式请参见表1、表2。当接收到指令1之后才能展开第一阶段的工作,工作的具体方式主要以数据1N实施,在接收至指令2之后再展开第二阶段的工作,具体的工作方式也以数据1M实施。

状态机的主要特点在于具有较多的状态,在运行程序时,通过对状态值的判断才可以真正判断此次程序的基本走向,当状态值的判断方式与全部已知状态值对比是否存在相等的方式进行,那么,程序当中也将会存在较多的判断转移语句,如此一来,程序会在判断语句上浪费较多的时间,同时,所浪费的基本时间也会以线性状态增加,在状态较多的情况下也将有可能在此次处理并未完全结束时传送过来下一个数据,在这种情况下,极有可能会因无法及时的接收数据而使得数据漏掉,最终出现错误。要想防止此问题的发生,我们可以通过下面的方法着手实施。首先在程序的存储器当中对各个分支状态的程序入口设置地址表,其次,再把此前的状态值赋给A、MOV A、R,再通过MOVC A@A+DPTR指令来查找地址表,将各分支入口的地址找出来,再将此地址在于 A中。同时,通常散转指令JMP@A+DPTR转向分支对程序加以处理。

四、结语

状态机隶属于时序电路的范畴,状态机在对逻辑复杂以及实时事件加以处理时充分的展现出其中的优越性,在单片机编程中运用有限状态机能够帮助程序解决高效运行以及实时性处理方面的问题,确保程序的执行时间与判断语句比降至最低,同时促使程序相关状态之间的关系以更加直观的状态呈现出来,这在一定程度上有篮球程序模块化的形成,编写过程更加簡单、思路也更加的清晰,具有较强的可修改性,这是编写大型程序的基本方式之一。

参考文献:

[1]雷贵.有限状态机在单片机编程中的应用[J].现代商贸工业,2013,22:187188.

[2]郭兆正,于鹏,于震.基于有限状态机建模的单片机编程方法研究[J].渤海大学学报(自然科学版),2016,03:266270.

[3]刘媛媛.51单片机用有限状态机算法实现顺序控制[J].机械工程与自动化,2011,04:4244.

[4]孔宪青.基于有限状态机的按键检测[J].电脑知识与技术,2014,34:81548155.

[5]覃园芳.基于有限状态机实现的单片机控制电梯仿真系统[J].中国新技术新产品,2016,13:89.

作者简介:杨旭(1983),男,汉族,河南郑州人,本科,助理工程师,从事冶金过程自动化控制系统开发与系统集成,冶金过程与自动化控制研究。

猜你喜欢

编程单片机应用
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
GM(1,1)白化微分优化方程预测模型建模过程应用分析
煤矿井下坑道钻机人机工程学应用分析
气体分离提纯应用变压吸附技术的分析