【摘要】本文闡述了單片機多種編程手段的特點、功能、使用環(huán)境及其優(yōu)點,提出了實踐環(huán)節(jié)漸進的過程,指出在學習單片機時,編程手段的選擇和實踐環(huán)節(jié)的漸進是學習掌握單片機的重要環(huán)節(jié)。
【關鍵詞】單片機編程手段實踐
【中圖分類號】G712【文獻標識碼】A【文章編號】1674-4810(2012)08-0181-01
隨著單片機應用的日益廣泛,單片機技術推動了信息領域的巨大發(fā)展,形成了“嵌入式信息處理”浪潮,將信息處理隱藏于人們每天使用的產(chǎn)品中,把計算機技術及信息處理技術引入到人們?nèi)粘I畹拿總€角落,這客觀上給學習者提供了空前的發(fā)展機會與巨大的就業(yè)市場。單片機對于已經(jīng)具有電子電路尤其是數(shù)字電路基本知識的學習者來說,不會有太大困難,如果有一定PC機的基礎,那學習單片機就更容易了。為使學習者盡快入門并應用單片機,筆者將對編程手段的選擇、實踐環(huán)節(jié)的漸進,作一論述。
一 編程手段的選擇
1.匯編編程
單片機常用匯編語言編程。匯編指令是一種符號指令,每一條指令對應一個確定的操作,可以把被控過程描述清楚,刻畫出細膩生動的機器動作,常用在低階時序、緊湊循環(huán)等處。雖然匯編難度相對較大,但可產(chǎn)生高效率的代碼,應學好匯編編程。
2.C語言編程
C語言也是一種常用的編程工具。要寫出高效而易維護的嵌入式C語言程序,不僅要了解硬件結構和匯編語言編程,而且對C語言也要有較為透徹的掌握。用C語言編程時,雖然不像用匯編語言那樣具體地組織、分配存儲器資源和處理端口數(shù)據(jù),但對數(shù)據(jù)類型與變量的定義,必須與單片機的結構相互關聯(lián),否則編譯器不能正確地映射定位。現(xiàn)在單片機的主頻不斷提高,單片機的ROM容量也在不斷增大,足夠裝得下用C語言寫的代碼;另外,C語言的資料又多又好找,更重要的是,其移植性非常好,稍加改變即可用于其他場合,因此,學習者也應用好C語言編程。
3.擇匯編和C語言混合編程
對一些實時性或運算能力要求很高的程序,如中斷程序處理、數(shù)據(jù)采集程序、實時控制程序等,常把匯編語言嵌入C語言程序中混合編程。在KEIL C51的C編譯系統(tǒng)中,C語言程序與匯編程序可實現(xiàn)方便靈活的接口,C語言程序調(diào)用匯編程序十分方便靈活,二者之間調(diào)用的難度在于數(shù)據(jù)的準確傳輸。匯編與C數(shù)據(jù)的準確傳輸可通過兩種方式,一是利用工作寄存器進行數(shù)據(jù)傳送,這種方式安全,但因傳送數(shù)據(jù)類型的不同,只能傳送1~3個參數(shù);二是指定特定的數(shù)據(jù)區(qū),自行在該數(shù)據(jù)區(qū)中進行數(shù)據(jù)傳送,該方式可大量傳送數(shù)據(jù)但不太安全,需仔細控制。對于特定編譯器,可以參考由C語言函數(shù)編譯出來的匯編程序,按C語言函數(shù)格式寫匯編程序,在C程序中直接當作帶參數(shù)的函數(shù)來調(diào)用。也就是把接口及資源分配交給編譯器處理,增強程序運行的可靠性,降低編程工作量。
4.豐富的庫函數(shù)編程
在KEIL C51中,開發(fā)廠家提供許多常用庫函數(shù),這些庫函數(shù)有其鮮明的特點,主要是數(shù)學函數(shù)、內(nèi)存分配等,靈活使用這些函數(shù)可大大地提高編程效率。
5.實時多任務操作系統(tǒng)編程
實時多任務操作系統(tǒng)是一種專家函數(shù)庫,根據(jù)編程對象靈活選用,可快速編制軟件,大大提高編程效率。
二 實踐環(huán)節(jié)的漸近
1.硬件的選擇
硬件的選擇方法大致有兩種。一是選擇一塊單片機學習板,不必要求功能太全。對于初學者來說,有流水燈、數(shù)碼管、獨立鍵盤、矩陣鍵盤、A/D或D/A、液晶、蜂鳴器即可。二是如果條件允許,可向單片機方面的高手求助,讓他幫忙搭個簡單的最小系統(tǒng),自制成一塊學習板。隨后,學習者就可利用手頭硬件進行軟件的編制和調(diào)試,這具有很強的針對性。不僅避免了軟件與硬件電路相互脫節(jié),而且增強了學習者的硬件分析能力與軟件設計能力,以及對系統(tǒng)的調(diào)試能力,可以全面掌握單片機的應用。
2.加強練習
首先查一下相關書籍,回顧單片機的各個功能。其實,使用單片機就是用軟件去控制單片機的各個功能寄存器,進而控制單片機相關引腳何時出現(xiàn)高電平、低電平,由這些高、低電平的變化來控制系統(tǒng)板,從而實現(xiàn)需要的各個功能。在明確學習目標后開始練習,這是單片機學習中非常關鍵的一步。單片機不實踐是不可能學會的。把學習板和電腦連好,打開調(diào)試軟件,先學會怎么使用調(diào)試軟件,再從最簡單的流水燈做起,先讓一個燈按照意愿隨意亮、滅,隨后讓其他的流水燈按照意愿隨意流動,這不僅是在學習知識,而且是在“玩”。在這一練習中肯定會遇到很多問題,可以去翻書自學或是問別人。當這些問題得到解答后會有很大的收獲,從而逐步體會到學習單片機的重點是“???,體現(xiàn)控制”。
3.接受專業(yè)公司或企業(yè)的實踐培訓
單片機主要應用于控制系統(tǒng)中。其應用的意義絕不僅限于它的廣闊范圍,更在于它從根本上改變著傳統(tǒng)控制系統(tǒng)的設計思想和設計方法。為此,學習者需到專業(yè)公司或企業(yè)接受實踐培訓,使用先進的專業(yè)設備和開發(fā)環(huán)境,快速掌握單片機開發(fā)系統(tǒng)的原理分析、電路檢測、開發(fā)設計技術,不斷增強綜合運用能力,成為具有良好實踐能力、設計能力的開拓性電子應用人才,逐步達到能獨立進行單片機項目開發(fā)的要求。
總之,學習者應掌握多種編程手段,并大力實踐,不斷提高自身素質(zhì),從而增強實際工作能力。
〔責任編輯:李錦雯〕