□黎民山
單片機教學是高校教育中具有較強理論性及實踐性的課程,作為專業核心課程之一的單片機教學必須以應用與實踐為主,設計方法以及流程圖編程模式以單片機軟件運行環境為主,針對圖形化開發平臺的優勢,從硬件操作為基礎、軟件系統開發為主,為單片機教學以及實際應用提供有效的參考價值,促進學生能力的提升與軟件模擬以及仿真教學、網絡虛擬實驗室等入手,采用形象化的模塊,自頂向下設計流程,完成流程圖設計,實現單片機軟件程序編寫與流程圖模塊的連接,運用EAD軟件完成程序流程圖設計,重點尋求問題解決方法以開發出具有較強實用性的產品,實現單片機系統開發的專業化處理,提高學生的設計能力以及實踐能力。一、單片機軟件系統開發的原理及流程圖
(一)流程圖與單片機系統軟件開發。流程圖是采用軟硬件一體化編程的主要軟件,以通過C語言、匯編等基礎編程程序,借助QT跨平臺搭建可視化、簡單移植的流程圖操作界面,改變傳統對語法以及句法的編程,以可視化模塊的形式完成編程操作,從框架界面中將編譯軟件安裝在功能編輯盒中,再利用外部燒錄軟件就可以直觀化監視整個編譯過程,促進平臺搭建以及解決編程問題。故而采用流程圖模塊化編程,可以降低對編輯者的專業基礎要求,直接從軟件開發方向以及系統功能拓展等入手,以圖形化編輯為主完成軟件程序編輯,節省程序開發時間以及解決復雜、繁瑣的編程問題,有效提高學生單片機系統軟件開發的效果以及積極性。以嵌入式流程圖開發平臺手段,從單片機的軟件系統現狀等為主,自頂向下設計流程,從而完成從程序編寫,注重于捋清程序邏輯關系,從而提高對學生創造力的要求,實現立足學生創新能力以及實踐能力為主的教學模式構建。基于現階段高校在電子信息以及自動化等開設單片機課程,針對電子系統進行使用技能以及開發技能的完善,可有效引導學生將所學知識進行銜接與融通。
(二)基于流程圖開發單片機軟件的主要工作原理。單片機程序是利用專用編程器進行代碼以及功能開發等等,依據單片機現場使用的標準而言,程序更新不能用編程器完成,為解決內部存在的各種程序問題,利用流程圖可以完成解決方法、思路以及算法的計算,利用圖形符號以及有向線段等實現程序設計,因此在編程功能開發中,首先需要根據編程引導程序預寫,然后以新的應用程序對應的機器碼將引導程序預寫寫入引導程序。基于整體流程圖構建而言,將單片機的整體程序劃分為幾個主要功能模塊,針對每個功能完成基本的流程圖繪制后,利用形態符號表示處理方式,改變利用語言以及句法進行編程的繁瑣模式,直接為程序編寫提供引導功能。因此系統對圖形以及符號等進行相應的改造,以完成程序編寫。首先在模塊操作中,系統設計是利用模塊庫,以顯示模塊、判斷模塊以及傳感器模塊等,根據子模塊的各項處理方式描述,例如次數循環。用循環以及條件判斷等,都有對應的子模塊,主要模塊組織結構必須進行整體調整,以功能拓展方向以及單機片的應用環境為主,針對性進行功能,結構優化,確保單機片的程序結構以及系統運行機制優良。不同模塊之間有類似于C語言以及Mat-lab軟件、Phython等工具箱,通過仿真模塊的子函數模塊,通過模塊重組實現函數調用,各個模塊之間的屬性以及函數代表通過組合以及編造后,以改變模塊功能的形式在屬性設置中利用不同的數字輸入,滿足設計者對延時時間的需求。最重要的是系統中有相應的開放庫,能夠隨時增加所需的模塊,因此在系統設計中可以滿足學生的個性化需求,按照自身設計方向的需求,從不同角度完成單片機系統的開發。不過目前系統只能用C51進行模塊編寫,因為C51具有局部變量以及全局變量兩種屬性,滿足模塊的獨立性要求,滿足不同層次模塊參數傳遞以及相互影響的要求,只要學生完成設計思路、理清程序關系,進行模塊連接就可以完成程序代碼輸入,符合課時以及教學要求。
(一)系統開發函數操作。基于流程圖完成單片機軟件系統開發,主要是能通過流程圖與C51源程序實施轉換,以根據嵌入式系統平臺為主,從內部編程開始以類似PLC的梯形圖以及指令表,根據不同模塊之間的處理方式、函數以及邏輯關系,在模塊銜接后完成自動轉換,以便于提高編程效率。源程序也是可以進行修改的,為提高流程圖的編程效果,通常將源程序修改作為補充手段,依據C51程序基本原理,可從函數集合以及符號選用等為主,以主函數以及處理方式的確定,凸顯程序流程圖的對應關系,以簡化軟件轉換的復雜程度,直接根據基本控制結構、順序、分支以及循環等組合、嵌套等完成結構化程序的流程圖編寫,再依據對應源程序,將函數按照流程圖順序等完成函數調用以及主函數聲明。其中順序結構中,根據流程圖的模塊調入順序添加子函數;分支及循環則是根據模塊中的模塊選用,軟件設計區為主進行模塊判斷,確定模塊適用于分支、循環模塊的區域內、區域外,分支結構中由于分支模塊區域內的邏輯順序,選擇不同的連接方式,連接在分支模塊區域內的模塊,子函數則是出于分支函數中,若連接中模塊區域外則是出于分支函數以外,所以在分支結構中,必須要在操作前明確各個模塊間的組合與連接方式,以實現各個小模塊的函數調用以及分支模塊構建;循環模塊的函數調用以及分支模塊類似,都是根據模塊的循環流程,進行子函數調用,實時將相應的流程圖轉變為C51源程序,目前在單片機軟件系統開發中,僅局限于轉換利用系統,進行模塊構造完成程序流程圖,實現單片機的系統設計。
(二)軟件更新操作。單片機軟件更新系統、硬件拓展等等,都是利用產品的初期研發為基礎,基于單片機的運行環境以及系統操作結構,依照軟件系統升級的要求,基于功能拓展以及安全等級升級等,利用程序流程圖進行功能編程,比如以G28射出成型機械手臂控制器的操作而言來實現軟件系統更新,主要是將控制器進行編程處理,單片機選用C8051F020,具有IAP功能,所以在軟件更新中,主要是利用單片機系統的功能拓展為主,借助源系統的核心單片機的三引腳擴展后通過SD卡的SPI接口,構建流程圖操作界面,直接在界面上根據系統模塊進行編程,按照C51源程序的對應關系,設計不同的流程結構,采用相應的流程處理方式,在操作界面完成新功能編程,控制機械手臂完成設定的動作,從而配合機械生產要求進行實際應用,所以在界面設置以及系統處理中,參數設定要根據實際單片機的應用場景及生產需求,根據系統的初步構建,設定相應參數進行測試,確定統一產品的控制闡述,直接將軟件更新編程通過SD卡以SPI接口加載到控制器中,可以避免直接變成操作,而是通過流程圖完成程序編輯后直接使用,快速又方便。編程過程以及編程方式就可以由編程者自己選擇,在程序設計前,先進行程序編程模塊確定,明確系統升級,更新方向,將編程好的程序另存到SD卡中以便于完成產品的直接升級,避免在產品系統上進行處理,直接完成更新,一方面省去中間編程環節,另一方面縮減產品的升級時間,不影響實際工作,確保單機片升級環境,條件以及系統運行的有效發展,靈活應對各種操作。
(三)系統測試。系統初步構建的系統測試,以8個LED燈的閃爍的程序流程圖為主,根據循環模塊、發送模塊以及發送模塊等,從源程序C51對應轉換關系進行程序代碼的檢測,從keil軟件、編譯后以proteus軟件為主、Phython、Mat-lab軟件通過下載或者是軟件網絡連接,進行LED燈的電路圖測試,表示程序正確性以LED燈閃及滅為主,進行程序模塊運行機制的檢測,從而對軟件系統進行開發以及流程處理,根據日光照射時的LED燈亮顏色以及顯示屏的顯示信息以及日光遮住時,以紅綠燈、黑白天的顯示、蜂鳴器為主,確定測試結果。根據結果顯示的流程圖可以實現單片機軟件系統開發的功能拓展要求,依據程序新建、打開以運行、編譯等等,可以實現控件之間的正常運轉,使用中也不會出現BUG,根據測試結果完成系統反饋。
本文根據流程圖編程的單片機軟件開發系統為主,依據系統的開放性以及流程圖編程的優勢、特點等,從功能模塊的封裝、程序流程圖的搭建以及編譯、流程圖模塊的深入開發為主,豐富軟件的功能以及實用性,針對復雜功能通過模塊順序以及結構、控制界面等等,依照C51源程序的對應情況,實現軟件程序代碼的自動生成,在高校單片機教學中,可以依據現有的技術以及實驗室,進行軟件代碼編程及程序設計。