1程序設計技術
合理的軟件構造是設計一個性能優秀的單片機應用系統軟件的根底。在程序設計中,應培育構造化程序設計作風,各功用程序實行模塊化、子程序化。普通有以下兩種設計辦法。
a.模塊程序設計
模塊程序設計是單片機應用中常用的一種程序設計技術。它是把一個較長的程序合成為若干個功用相對獨立的較小的程序模塊,各個程序模塊分別設計、編程和調試,最后由各個調試好的模塊組成一個大的程序。
優點是單個功用明白的程序模塊的設計和調試比擬便當,容易完成,一個模塊能夠為多個程序所共享。其缺陷是各個模塊的銜接有時有一定難度。
b.自頂向下的程序設計
自頂向下程序設計時,先從主程序開端設計,附屬程序或子程序用符號來替代。主程序編好后再編制各附屬程序和子程序,最后完成整個系統軟件的設計。
優點是比擬契合于人們的日常思想,設計、調試和銜接同時按一個線索停止,程序錯誤能夠較早的發現。缺陷是上一級的程序錯誤將對整個程序產生影響,一處修正可能惹起對整個程序的全面修正。
2程序設計
在選擇好軟件構造和所采用的程序設計技術后,便可著手停止程序設計,將設計任務轉化為詳細的程序。
a.樹立數學模型
依據設計任務,描繪出各輸入變量和各輸出變量之間的數學關系,此過程即為樹立數學模型。數學模型隨系統任務的不同而不同,其正確度是系統性能好壞的決議性要素之一。
b.繪制程序流程圖
通常在編寫程序之前先繪制程序流程圖,以進步軟件設計的總體效率。程序流程圖以簡明直觀的方式對任務停止描繪,并很容易由此編寫出程序,故對初學者來說尤為適用。
在設計過程中,先畫出簡單的功用性流程圖(粗框圖),然后對功用流程圖停止細化和詳細化,對存儲器、存放器、標志位等工作單元作詳細的分配和闡明,將功用流程圖中每一個粗框的操作轉變為詳細的存儲器單元、工作存放器或I/O口的操作,從而給出細致的程序流程圖(細框圖)。
c.程序的編制
在完成程序流程圖設計以后,便能夠編寫程序。程序設計言語對程序設計的影響較大。匯編言語是最為常用的單片機程序言語,用匯編言語編寫程序代碼精簡,直接面向硬件電路停止設計,速度快,但停止大量數據運算時,編寫難度將大大增加,不易閱讀和調試。在有大量數據運算時可采用C言語(如MCS-51的C51)或PL/M言語。
編寫程序時,應留意系統硬件資源的合理分配與運用,子程序的入/出口參數的設置與傳送。采用合理的數據構造、控制算法,以滿足系統請求的精度。
在存儲空間分配時,應將運用頻率最高的數據緩沖器設在內部RAM;標志應設置在片內RAM位操作區(20H~2FH)中;指定用戶堆棧區,棧區的大小應留有余量;余下局部作為數據緩沖區。
3程序設計
各程序模塊編輯之后,需停止匯編或編譯、調試,當滿足設計請求后,將各程序模塊依照軟件構造設計的請求銜接起來,即為軟件裝配,從而完成軟件設計。在軟件裝配時,應留意軟件接口。