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