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