狀態(tài)機思路在單片機中的程序實現(xiàn)
狀態(tài)結構也可以是多維的。從不同的角度對系統(tǒng)進行狀態(tài)的劃分,這些狀態(tài)的某些特性是交叉的。比如,在按照按鍵和顯示劃分狀態(tài)的同時,又按照系統(tǒng)的工作進程做出另一種狀態(tài)劃分。這兩種狀態(tài)劃分同時存在,相互交叉,從而構成了二維的狀態(tài)結構空間。
舉一個這方面的例子,如:空調遙控器,如圖5所示。
圖5 多維狀態(tài)機結構
同樣,我們也可以構建三維、四維甚至更多維的狀態(tài)結構。每一維的狀態(tài)都需要用一個狀態(tài)變量(寄存器)來表示。
無論多級狀態(tài)結構和多維狀態(tài)結構看上去多么迷人,匠人的忠告是:我們依然要盡可能地簡化狀態(tài)結構,能用單級、單維的結構,就不要給自己找事,去玩那噩夢般的復雜結構。
簡單的才是最有效的。
結束語
對狀態(tài)機的理解需要一個由淺入深的過程。這個過程應該是與實踐應用和具體案例思考相結合的。當一種良好的思路成為設計的習慣,它就能給設計者帶來回報。愿這篇手記里介紹的基于狀態(tài)機的編程思路能給新手們帶來一些啟迪,幫助大家找到“程序設計”的感覺。
評論