設計編寫單片機程序是一個漸進的過程不可一蹴而就,畢竟單片機程序是與硬件有密切關系的,我們一般稱為單片機程序叫底層硬件驅動程序。編寫程序不但要對軟件要熟悉而且對硬件也要熟悉才行,所以對于我們從事單片機技術的人員來說能夠編寫出沒有“bug”的優秀程序需要具有“軟硬兼施”的本領,否則編寫的程序就會出現問題。下面根據我學習單片機來談談我對這個問題的體會。
設計不出來單片機程序的原因
我認為初學者感覺設計不出真正的單片機程序是一個普遍的問題。我先說說剛學單片機的朋友為什么設計不出單片機程序,首先是對軟件知識和硬件知識有“短板”。因為程序的設計少不了使用程序語言,現在比較流行的單片機編程語言是C語言,如果在編程語言方面有欠缺的話編程會受到影響這是其一,其二是硬件方面,我們要知道單片機的外設硬件方面的一些工作原理,比如按鍵、顯示器件、各種驅動芯片等,這些都與數字電路和模擬電路知識有關,如果這方面有欠缺應及時加強。
其次是對單片機程序與硬件的內在聯系不清楚。我們編寫的程序是與單片機外設的硬件緊密相聯系的,如果不知道用編程語言的哪種處理方法或技巧去控制硬件工作,那么就無法編寫出控制程序。比如編寫一個測溫度的程序,如何能采集到溫度、如何編寫把溫度數據轉換成數碼管或者液晶能夠顯示的程序并分理處小數點等等都有一定的處理方法和技巧。
再次是缺乏設計編寫程序的經驗。有句話叫“萬事開頭難”,我們在做許多事情時剛開始都會感覺到無所適從,我認為這是很正常的現象,我建議剛開始學習時我建議從最簡單的開始,比如從控制LED小燈開始再到各種花樣的“跑馬燈”小程序、模擬交通燈程序、具有數碼管倒計時的模擬交通燈程序等,通過這樣的循序漸進,由簡入難地訓練經過一段時間就會見到成效;最后一點我認為是缺乏整體布局的能力。因為一個完整的程序除了需要主程序外,還要有許多子程序。要完成整個控制流程就要對各個程序之間的不斷調用來實現,這就要在程序的編排上要考慮周全。所以設計編寫也就是對整個控制流程有整體的把控才行。
如何能編寫出合格的單片機程序
其實設計單片機并不是很難能,那么如何才能設計編寫出合格的單片機程序呢?我認為要從以下幾個方面。一方面除了把我們自己感覺有“短板”的地方補齊外,另一方面我感覺還要做到以下幾點:
第一點就是在設計程序時先要對控制的對象做全面的分析,也就是要把解決的問題的條件、初始化的數據、輸入與輸出的信息以及要達到的控制目的都要知道,雖然達不到“庖丁解牛”的那種嫻熟的程度,最起碼要做到心中有數。
第二點是在設計程序時要確定程序的“算法”,這個詞聽起來有點高大上,其實我們在設計程序時要知道根據控制的要求和我們所有的條件來確定我們所用的計算方法。我在學C語言時經常聽老師說:算法是程序的靈魂這一句話,當時剛接觸對這句話并不理解,現在回頭看來這句話是很有道理的。這就像我們炒菜一樣,如果我們能按菜譜去做就非常好吃,若是隨心所欲去做菜那肯定難以下咽,我認為在這方面兩者有“異工同曲”之處。
第三點是要善于繪制流程圖,這一點在我們剛學習設計程序時我感覺很有必要。繪制流程圖可以直觀地體現我們編寫程序的思路,它也是我們設計程序時的依據。從一定程度上說能繪制完一個控制流程圖也就離設計出程序不遠了。
第四點就是要抱著“他山之石,可以攻玉”的心態去多看別人的程序,學習別人的設計編寫程序的技巧。我們知道C語言的可移植性很好,看到有非常好的子程序只要略微修改一下就可以為我所用,這樣有時會節省很多時間。
我認為只要通過以上幾點堅持下去,我們編寫出沒有“bug”的合格程序應該是水到渠成的事情了!
-
單片機
+關注
關注
6063文章
44925瀏覽量
646999 -
單片機程序
+關注
關注
1文章
12瀏覽量
9647
發布評論請先 登錄
STM8S003F的作用是什么,如何編寫單片機程序去控制?
單片機編程語言有哪些選擇
單片機怎么寫入程序
keil可以讀出單片機的程序嗎
單片機燒錄程序可以重新燒嗎
stm32單片機燒錄程序會擦除原來的程序嗎
藍牙模塊如何實現單片機和手機端數據互傳

評論