• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于有限狀態(tài)機的單片機技能大賽編程思路

      2020-05-11 12:24楊元元
      數字技術與應用 2020年2期
      關鍵詞:狀態(tài)

      楊元元

      摘要:單片機安裝與調試技能大賽是電工電子類競賽的一項關鍵賽事,其難點在于程序的編寫。從系統(tǒng)和模塊兩個層面運用有限狀態(tài)機的編程方法,能幫助參賽選手厘清思路、分解復雜的任務、提高程序的執(zhí)行效率和可靠性。

      關鍵詞:有限狀態(tài)機;狀態(tài);菜單設計

      中圖分類號:TP368.1 文獻標識碼:A 文章編號:1007-9416(2020)02-0206-02

      0 引言

      中職單片機控制裝置安裝與調試技能大賽是電工電子類競賽的一項關鍵賽事,重在檢驗選手從事工業(yè)生產控制的職業(yè)技能,以及適應未來社會發(fā)展的職業(yè)能力。大賽統(tǒng)一采用亞龍YL-236型單片機功能控制實訓考核臺作為比賽設備,比賽中選手要按照工作任務書的要求在4小時里完成硬件電路的搭建、程序編寫、仿真調試、走線扎線、繪制系統(tǒng)電路圖等環(huán)節(jié)[1]。

      單片機技能大賽是公認的有難度的一項賽事,難度主要體現在程序的設計與編寫。選手是從中職生中選拔出來佼佼者,即便如此,他們擁有的軟件開發(fā)設計的知識與技能依然十分有限。工作任務書中描述的工作過程比較復雜,選手的背景知識往往比較缺乏,以致于在程序設計編寫時未能準確把握工作過程,出現了誤解、混淆、遺漏技術要求的現象。選手未能正確解析工作過程,不能完整清晰的描述事件,導致程序編寫出現漏洞。

      運用有限狀態(tài)機(Finite State Machine)的方法能夠幫助參賽選手在程序設計中厘清思路,提高效率。有限狀態(tài)機是時序邏輯電路設計中常用的建模方法,由于能高效地描述事件的邏輯順序和時序規(guī)律,被廣泛地應用到了嵌入式編程、數字電路開發(fā)、硬件描述語言、游戲角色開發(fā)等多個領域。

      1 運用有限狀態(tài)機編寫單片機程序的優(yōu)勢

      1.1 符合單片機程序的特點

      有限狀態(tài)機本質上是事先描述系統(tǒng)的一系列“狀態(tài)”,并通過“外部事件”實現不同“狀態(tài)”的切換。由于嵌入式系統(tǒng)一般由外部事件來驅動的,響應事件后分發(fā)給處理事件的代碼,這樣導致程序的執(zhí)行路徑不是嚴格順序執(zhí)行的,因此用狀態(tài)機來設計嵌入式系統(tǒng)是比較理想的方法[2]。技能大賽中用51系列單片機搭建的系統(tǒng)屬于低端嵌入式,其工作狀態(tài)是離散的,常常因為時間、按鍵與開關的動作、傳感器輸出量的變化等事件進行不同狀態(tài)的切換。這一特點與有限狀態(tài)機的描述方法是貼合的。

      1.2 降低程序編寫的難度

      有限狀態(tài)機的方法用“狀態(tài)”代替常規(guī)編程中名目繁多的標志位,單片機系統(tǒng)狀態(tài)轉換時,只需要設置當前狀態(tài)即可,避免了頻繁地對標志位進行設置或清除,同時可以降低系統(tǒng)的復雜性,提高程序的可靠性。對于理論基礎薄弱的中專生來說,運用有限狀態(tài)機能降低編寫程序的難度,減少遺漏或設置錯誤。

      1.3 可運用在系統(tǒng)與模塊兩個層面

      由于單片機只能處理已經數學化的客觀對象,選手首先要對任務書描述的對象做數學化的處理[3],簡單地說,即將系統(tǒng)劃分為不同的狀態(tài)。比如:將系統(tǒng)狀態(tài)劃分為開機狀態(tài)、設置狀態(tài)、運行狀態(tài)、暫停狀態(tài)等。這一點與有限狀態(tài)機使用前必須清晰地劃分狀態(tài)的特點相符。在日常訓練中,指導老師運用狀態(tài)轉移圖表去分析任務,建立有限狀態(tài)機模型,梳理各個狀態(tài)之間的轉換關系,選手通過一定量的訓練,在比賽中能很好地運用本方法。有限狀態(tài)機的方法不僅可以用來描述系統(tǒng)模型,還可以高效可靠地處理YL-236平臺上的指令、顯示、電機等模塊中的器件。下面對常用模塊中的液晶菜單程序設計作重點闡述。

      2 有限狀態(tài)機在液晶菜單設計中的運用

      MCU04顯示模塊上安裝了TG12864液晶顯示器、RTC1602液晶顯示器、數碼管等器件。這些顯示設備主要用于系統(tǒng)的參數設置、運行狀態(tài)、輸出結果顯示、報警等人機交互界面,友好的人機交互是系統(tǒng)必備的功能,也是技能大賽考核的關鍵點。

      液晶12864的應用常常涉及菜單的設計,以相對簡單的菜單為例,其有主菜單、子菜單兩級結構,如表1所示:

      菜單的操作一般由按鍵來執(zhí)行,這里假設有功能按鍵有“上移”、“下移”、“確認”“退出”四個按鍵。運用有限狀態(tài)機來編寫菜單程序時,通常以不同的菜單界面來劃分狀態(tài),單擊按鍵作為事件,用switch-case語句來實現,其部分代碼如下:

      #define? down? 1

      #define? up? ? ?2

      #define? enter? ?3

      #define? back? ?4

      uchar page;//定義全局變量page,作為子菜單選擇變量.

      ……;

      Menu_display(0,0); //主菜單界面顯示函數.

      switch(keynum)? //鍵值分別是下移:1;上移:2;確認:3;退出:4.

      { case down:

      {? page+=1;

      Menu_display(page,1); //按一下下移鍵,子菜單1被選中,反白顯示,以此類推。

      ……

      If(page==4)? Menu_display(0,0); // 下移超過子菜單3時,主菜單界面正常顯示。

      }? break;

      case up: { 省略;}? break;

      case enter:

      {? switch(page)

      {? case 1:? Menu1_display( ); break; //若子菜單1被選中,按下確認鍵進入子菜單1顯示。

      case 2:? Menu2_display();break;

      case 3:? Menu3_display()break;

      default:? Menu_display(0,0); break;

      }

      }

      case back: { Menu_display(0,0); } break;

      default: break;

      }

      上述代碼中Menu_display(line,rev)是菜單顯示函數,參數line作為菜單選擇,0:不選擇任何一項;1~3:依次選中對應的子菜單;參數rev為0:正常顯示,1:反白顯示[4-5]。利用有限狀態(tài)機的思想設計菜單程序,可以方便地擴展子菜單數量,菜單轉換方便、穩(wěn)定可靠。程序的結構層次分明,有利于學生理解掌握。

      按鍵消抖、液晶1602與數碼管的顯示界面的變換、電機的運行、機械手的控制都可以借鑒有限狀態(tài)機的思路,這里不再累述。

      3 結論

      有限狀態(tài)機的方法運用到單片機技能大賽的編程中,能幫助選手分解復雜的任務,靈活地處理狀態(tài)間的轉換,提高程序的可靠性。大賽指導老師可以從系統(tǒng)和模塊兩個層面,將有限狀態(tài)機的思維運用到日常的訓練中。實踐證明,有限狀態(tài)機是一種行之有效的單片機編程方法。

      參考文獻

      [1] 葛金印,商聯紅.單片機控制項目訓練教程[M].北京:高等教育出版社,2010.

      [2] 郭兆正.基于有限狀態(tài)機建模的單片機編程方法研究[J].渤海大學學報(自然科學版),2016,37(3):266-270.

      [3] 周永東.單片機技術及應用(C語言版)[M].北京:電子工業(yè)出版社,2012.

      [4] 王成義,郭秀梅,叢曉燕.基于液晶顯示的有限狀態(tài)機在人機界面中的應用[J].液晶與顯示,2010,25(2):257-261.

      [5] 劉孫東,唐飛.基于有限狀態(tài)機的嵌入式菜單系統(tǒng)設計[J].順德職業(yè)技術學院學報,2009,7(2):22-25.

      Programming Idea of? Single Chip Computer Skill Contest Based on

      Finite State Machine

      YANG Yuan-yuan

      (Hubei Three Gorges Technical College, Yichang? Hubei? 443111)

      Abstract:Micro-controller Unit installation and debugging skills competition is a key competition in electrical and electronic vocational students skills competition, the difficulty lies in the programming. Using the programming method of FSM from two levels of system and module can help contestants to clarify their ideas, decompose complex tasks, and improve the efficiency and reliability of program execution.

      Key words:finite state machine;state;menu design

      猜你喜歡
      狀態(tài)
      一種基于ResNet的車鉤狀態(tài)識別方法及其應用
      極端的狀態(tài)
      化學平衡狀態(tài)的判斷
      狀態(tài)聯想
      “0”心態(tài),“1”狀態(tài)
      生命的另一種狀態(tài)
      三七總皂苷膠束狀態(tài)與超濾分離的相關性
      極度生存狀態(tài)下的人道主義
      慢性HBV感染不同狀態(tài)下HBsAg定量的臨床意義
      華西追蹤:“戰(zhàn)時狀態(tài)”不見了
      嘉禾县| 德阳市| 黄山市| 四会市| 龙川县| 增城市| 中牟县| 扬州市| 浑源县| 蛟河市| 九寨沟县| 呼伦贝尔市| 磴口县| 平远县| 德安县| 邵阳市| 河津市| 卓尼县| 额尔古纳市| 临江市| 江永县| 鹤岗市| 巴南区| 沾益县| 乌苏市| 柘荣县| 申扎县| 资中县| 永平县| 玛多县| 盐城市| 公安县| 无极县| 扎赉特旗| 基隆市| 法库县| 杨浦区| 诸城市| 开阳县| 东明县| 鄯善县|