摘 要:電子技術(shù)在不斷的發(fā)展更新,這在一定程度上使得單片機(jī)的編程必須提升其基本要求,而有限狀態(tài)機(jī)的運(yùn)用能夠簡(jiǎn)化程序中的判斷步驟,使程序的整體執(zhí)行時(shí)間得以縮短,從而提升單片機(jī)處理的時(shí)效性。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);編程;有限狀態(tài)機(jī);應(yīng)用
狀態(tài)機(jī)在對(duì)一些邏輯較為復(fù)雜或者實(shí)時(shí)性較強(qiáng)的問題的處理過程中具有一定的優(yōu)勢(shì),有限狀態(tài)機(jī)屬于一類數(shù)學(xué)模型,它主要是通過某些有限的狀態(tài)或者在相關(guān)狀態(tài)之間的動(dòng)作與轉(zhuǎn)移而構(gòu)成的,此數(shù)學(xué)模型被廣泛的運(yùn)用在系統(tǒng)分析與設(shè)計(jì)當(dāng)中。有限狀態(tài)機(jī)的基本特性通常以描述控制為主,它在軟件中是一類比較常用的處理方式。有限狀態(tài)機(jī)運(yùn)用于單片機(jī)程序中可以把相對(duì)復(fù)雜的事件分解成具體的穩(wěn)定狀態(tài),再利用外部事件將程序的狀態(tài)加以改變,并在此基礎(chǔ)上進(jìn)行相關(guān)的操作處理。
一、什么是有限狀態(tài)機(jī)
有限狀態(tài)機(jī)一般依照規(guī)定的順序?qū)⑾嚓P(guān)的操作依次完成,它是由既定的數(shù)目的狀態(tài)以及數(shù)目之間的轉(zhuǎn)移所構(gòu)成,系統(tǒng)無論在哪種情況下都只會(huì)處于給定狀態(tài)中的一個(gè),受到外部事件的影響,狀態(tài)機(jī)也會(huì)給出一定的動(dòng)作處理方式,并且還有可能會(huì)因狀態(tài)的變化而發(fā)生轉(zhuǎn)移。有限狀態(tài)機(jī)通常分為兩大類,即Melay狀態(tài)機(jī)與Moore狀態(tài)機(jī),其中Melay狀態(tài)機(jī)的輸出除了與狀態(tài)有關(guān)聯(lián)外,同時(shí)還與輸入有密切的聯(lián)系,而Moore狀態(tài)機(jī)的輸出僅僅與狀態(tài)有關(guān)聯(lián)。
分析有限狀態(tài)機(jī)的相關(guān)要求,有限狀態(tài)機(jī)主要包含了四大要素,即動(dòng)作、現(xiàn)態(tài)、次態(tài)以及條件?,F(xiàn)態(tài)是指程序當(dāng)前所處的具體狀態(tài),在可以滿足相關(guān)條件的基礎(chǔ)上,系統(tǒng)會(huì)執(zhí)行一次狀態(tài)或者一個(gè)動(dòng)作的轉(zhuǎn)移。次態(tài)則是完全滿足條件之后所轉(zhuǎn)移的新狀態(tài),當(dāng)次態(tài)被激活后將會(huì)變換成新的現(xiàn)態(tài)。有限狀態(tài)機(jī)的四大要素使得其中內(nèi)部狀態(tài)的基本因果狀態(tài)得以呈現(xiàn),條件與現(xiàn)態(tài)是因,動(dòng)作與姿態(tài)為果。
一般情況下,有限狀態(tài)機(jī)以兩種表現(xiàn)方式呈現(xiàn)出來,其中一種為狀態(tài)轉(zhuǎn)移表另外一種為狀態(tài)轉(zhuǎn)移圖,這兩類方式都能有效展現(xiàn)出有限狀態(tài)機(jī)中的轉(zhuǎn)移關(guān)系。
二、程序的狀態(tài)轉(zhuǎn)移模型
在具體的工程運(yùn)用當(dāng)中,一般會(huì)采用單片機(jī)來達(dá)到調(diào)度與控制的目標(biāo),這是通過一類識(shí)別指令數(shù)據(jù),再針對(duì)指令的差異性來實(shí)現(xiàn)相關(guān)的控制。要想真正實(shí)現(xiàn)指令的識(shí)別與接收,則需要把每一個(gè)指令在接受的過程中當(dāng)作一個(gè)具體的狀態(tài),也就是把每個(gè)特定的數(shù)據(jù)當(dāng)成一個(gè)狀態(tài),如此,指令數(shù)據(jù)的接受工作將會(huì)在程序中顯示成從一個(gè)狀態(tài)跳轉(zhuǎn)至下一個(gè)狀態(tài)的情況,怎么實(shí)現(xiàn)狀態(tài)之間的有效轉(zhuǎn)移是完成指令數(shù)據(jù)接收的關(guān)鍵點(diǎn),在實(shí)施的過程中將每一個(gè)狀態(tài)都對(duì)應(yīng)具體的值,當(dāng)程序運(yùn)行時(shí),通常判斷此前的狀態(tài)值再?zèng)Q定程序的基本走向,得到正確的處理方式后,再將此狀態(tài)值進(jìn)行修改,以此來決定程序在下一個(gè)過程中的基本走向。通常情況下,單片機(jī)因?yàn)槟軌蛴行峁╈`活且豐富的尋址方式,為此,運(yùn)用數(shù)據(jù)存儲(chǔ)區(qū)當(dāng)中的相關(guān)字節(jié)對(duì)程序運(yùn)行中的基本狀態(tài)加以存放,這使得指令數(shù)據(jù)的整個(gè)接收過程變?yōu)闋顟B(tài)轉(zhuǎn)移過程。
三、單片機(jī)程序中運(yùn)用有限狀態(tài)機(jī)
在上述描述中我們得知運(yùn)用狀態(tài)機(jī)實(shí)現(xiàn)程序的轉(zhuǎn)移工作在一定程度上能夠有效縮短判斷步驟,可以從下面的工程實(shí)例加以了解。MCS51單片機(jī)運(yùn)用串品對(duì)指令數(shù)據(jù)進(jìn)行接收,或者在主程序中進(jìn)行,針對(duì)不同的指令來完成對(duì)應(yīng)的操作任務(wù)。比如,單片機(jī)需要接收兩條指令,具體的通信格式請(qǐng)參見表1、表2。當(dāng)接收到指令1之后才能展開第一階段的工作,工作的具體方式主要以數(shù)據(jù)1N實(shí)施,在接收至指令2之后再展開第二階段的工作,具體的工作方式也以數(shù)據(jù)1M實(shí)施。
狀態(tài)機(jī)的主要特點(diǎn)在于具有較多的狀態(tài),在運(yùn)行程序時(shí),通過對(duì)狀態(tài)值的判斷才可以真正判斷此次程序的基本走向,當(dāng)狀態(tài)值的判斷方式與全部已知狀態(tài)值對(duì)比是否存在相等的方式進(jìn)行,那么,程序當(dāng)中也將會(huì)存在較多的判斷轉(zhuǎn)移語句,如此一來,程序會(huì)在判斷語句上浪費(fèi)較多的時(shí)間,同時(shí),所浪費(fèi)的基本時(shí)間也會(huì)以線性狀態(tài)增加,在狀態(tài)較多的情況下也將有可能在此次處理并未完全結(jié)束時(shí)傳送過來下一個(gè)數(shù)據(jù),在這種情況下,極有可能會(huì)因無法及時(shí)的接收數(shù)據(jù)而使得數(shù)據(jù)漏掉,最終出現(xiàn)錯(cuò)誤。要想防止此問題的發(fā)生,我們可以通過下面的方法著手實(shí)施。首先在程序的存儲(chǔ)器當(dāng)中對(duì)各個(gè)分支狀態(tài)的程序入口設(shè)置地址表,其次,再把此前的狀態(tài)值賦給A、MOV A、R,再通過MOVC A@A+DPTR指令來查找地址表,將各分支入口的地址找出來,再將此地址在于 A中。同時(shí),通常散轉(zhuǎn)指令JMP@A+DPTR轉(zhuǎn)向分支對(duì)程序加以處理。
四、結(jié)語
狀態(tài)機(jī)隸屬于時(shí)序電路的范疇,狀態(tài)機(jī)在對(duì)邏輯復(fù)雜以及實(shí)時(shí)事件加以處理時(shí)充分的展現(xiàn)出其中的優(yōu)越性,在單片機(jī)編程中運(yùn)用有限狀態(tài)機(jī)能夠幫助程序解決高效運(yùn)行以及實(shí)時(shí)性處理方面的問題,確保程序的執(zhí)行時(shí)間與判斷語句比降至最低,同時(shí)促使程序相關(guān)狀態(tài)之間的關(guān)系以更加直觀的狀態(tài)呈現(xiàn)出來,這在一定程度上有籃球程序模塊化的形成,編寫過程更加簡(jiǎn)單、思路也更加的清晰,具有較強(qiáng)的可修改性,這是編寫大型程序的基本方式之一。
參考文獻(xiàn):
[1]雷貴.有限狀態(tài)機(jī)在單片機(jī)編程中的應(yīng)用[J].現(xiàn)代商貿(mào)工業(yè),2013,22:187188.
[2]郭兆正,于鵬,于震.基于有限狀態(tài)機(jī)建模的單片機(jī)編程方法研究[J].渤海大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,03:266270.
[3]劉媛媛.51單片機(jī)用有限狀態(tài)機(jī)算法實(shí)現(xiàn)順序控制[J].機(jī)械工程與自動(dòng)化,2011,04:4244.
[4]孔憲青.基于有限狀態(tài)機(jī)的按鍵檢測(cè)[J].電腦知識(shí)與技術(shù),2014,34:81548155.
[5]覃園芳.基于有限狀態(tài)機(jī)實(shí)現(xiàn)的單片機(jī)控制電梯仿真系統(tǒng)[J].中國新技術(shù)新產(chǎn)品,2016,13:89.
作者簡(jiǎn)介:楊旭(1983),男,漢族,河南鄭州人,本科,助理工程師,從事冶金過程自動(dòng)化控制系統(tǒng)開發(fā)與系統(tǒng)集成,冶金過程與自動(dòng)化控制研究。