吳清收
摘要:針對目前單片機原理與接口技術(shù)教材存在的弊端,提出一種基于匯編語言和C語言同步講解的教材改革方案,匯編語言編程雖然具有語句簡練、實時性高的優(yōu)點,但在處理復(fù)雜的數(shù)據(jù)運算時程序的編寫比較難以掌握,需要較高的編程技巧,而采用兩種語言同步講解的教材可加快學(xué)生對單片機應(yīng)用技術(shù)的掌握。
關(guān)鍵詞:單片機;匯編語言;C語言;課程設(shè)計
中圖分類號:G642.0 文獻標(biāo)志碼:A 文章編號:1674-9324(2015)38-0089-02
一、概述
《單片機原理與接口技術(shù)》(以下簡稱單片機)是高校工科專業(yè)的一門必修專業(yè)課程,同時也是比較重要的一門課程,所以學(xué)好該門課程具有十分重要的應(yīng)用價值。
目前有關(guān)單片機課程的教材,其內(nèi)容結(jié)構(gòu)基本上包括單片機概述、單片機的內(nèi)部結(jié)構(gòu)、指令系統(tǒng)、匯編語言編程、單片機系統(tǒng)的擴展、定時器、中斷、串行口等幾個模塊,幾乎所有教材中的編程實例都采用的匯編語言。匯編語言編程雖然具有語句簡練、實時性高的優(yōu)點,但在處理復(fù)雜的數(shù)據(jù)運算時程序的編寫比較難以掌握,需要較高的編程技巧,尤其對剛剛學(xué)習(xí)完課程的學(xué)生來說,難以理解和掌握,編程難度較大。所以學(xué)生在應(yīng)用中喜歡用C語言編寫單片機程序而很少用匯編語言編程。
針對C語言在單片機應(yīng)用編程中應(yīng)用的廣泛性,提出了《單片機原理與接口技術(shù)》課程的改革設(shè)想,將匯編語言編程和C語言編程都融入到單片機教材中,在實時性要求較高,C語言編程不能滿足要求的情況下選用匯編語言,譬如在時序要求很嚴(yán)格,只允許幾個微秒的誤差,這時就只能采用匯編語言程序;在實時性一般以及一些復(fù)雜的信號處理運算時,如浮點數(shù)的復(fù)雜運算、復(fù)雜的數(shù)字濾波等,這時就可以用簡單直觀的C語言編寫程序,二者相互補充,以更好地滿足單片機實際應(yīng)用系統(tǒng)的設(shè)計。在基本內(nèi)容的基礎(chǔ)上,結(jié)合教師的實際科研項目,最后增加一章實際應(yīng)用系統(tǒng)的設(shè)計舉例,題目實用價值較高,設(shè)計實例采用匯編和C語言編寫,更好地提高學(xué)生對單片機應(yīng)用系統(tǒng)設(shè)計知識的掌握。
二、單片機教材改革的必要性
在確定具體實施方案前,首先選擇幾所典型高校進行相關(guān)專業(yè)的調(diào)研,通過調(diào)研掌握各高校對目前選用的單片機課程教材的意見以及針對教材存在的問題所提出的合理化建議。通過與學(xué)生和老師座談,掌握哪些章節(jié)內(nèi)容適合用匯編語言講解,而哪些章節(jié)用C語言講解比較容易掌握;了解學(xué)生對單片機編程更傾向于選用匯編還是C語言、教師在用到單片機的科研項目中經(jīng)常采用哪種編程語言,以便更好地為單片機教材的修改完善吸取寶貴經(jīng)驗。
通過對南京大學(xué)、山東大學(xué)、南京航空航天大學(xué)、上海交通大學(xué)、浙江理工大學(xué)等幾所高校的相關(guān)專業(yè)關(guān)于目前單片機教材使用情況的調(diào)研,通過與上述學(xué)校老師和同學(xué)的交流,普遍認(rèn)為完全使用匯編語言編程的老師和同學(xué)數(shù)量較少,一方面是由于匯編語言編寫的程序可移植性較差,對于不同的單片機由于指令系統(tǒng)的不同需要重新編寫程序;另一方面就是匯編語言是針對計算機的語言,熟練應(yīng)用匯編語言編程需要掌握每條匯編語言指令,同時要有豐富的編程經(jīng)驗和編程技巧,這對于剛學(xué)習(xí)單片機的學(xué)生有較大的難度。用C語言編程編程對學(xué)生來說就比較容易掌握,因為他們在學(xué)習(xí)單片機課程之前就已經(jīng)開過C語言程序設(shè)計,雖然二者之間有區(qū)別,但是基本語句是一樣的,差別很小,很容易掌握,實現(xiàn)同樣功能的程序,用C語言編寫的程序段比用匯編語言編寫的程序段短,所以容易理解和掌握。
下面是用兩種語言編寫的兩段程序,功能是用51單片機的串行方式0實現(xiàn)電子時鐘的LED數(shù)碼管顯示,假設(shè)匯編語言中時、分、秒數(shù)據(jù)分別以二進制方式存放在內(nèi)存30H、31H和32H中,C語言中的數(shù)據(jù)存放在數(shù)組time的time【0】、time【1】和time【2】中,編程如下:
通過上面的程序比較可以看出,C語言編寫的程序較容易理解,而且語句較少,容易被學(xué)生掌握;相反,匯編語言編寫的程序由于是直接針對計算機的,需要掌握不同單片機系統(tǒng)的指令及使用方法,掌握起來相對比較困難,短時間內(nèi)不容易被學(xué)生熟練掌握。
三、實施方案
1.在廣泛聽取老師和學(xué)生意見、建議的基礎(chǔ)上,制定出合理有序的教材章節(jié)內(nèi)容架構(gòu)。由于教材采用C語言和匯編語言的同步講解,所以,單片機內(nèi)部各模塊內(nèi)容的講解應(yīng)該安排在匯編語言和C語言章節(jié)之后進行。
2.教材中設(shè)計到的舉例采用兩種語言編程。在講解完第四章以后,從第五章到第十章都采用匯編語言和C語言兩種語言編程,加深對兩種語言編程的理解和掌握,同時各例題盡量結(jié)合老師的科研項目和實際應(yīng)用例程講解,做到各例題直接輸入計算機,不需進行修改調(diào)試就能通過,尤其是第十章的實際應(yīng)用系統(tǒng)設(shè)計,全部采用教師科研項目中的實例編寫,通過學(xué)習(xí),讓學(xué)生掌握單片機實際應(yīng)用系統(tǒng)的設(shè)計方法和設(shè)計步驟,包括硬件設(shè)計和軟件設(shè)計方法,從中積累寶貴的單片機應(yīng)用系統(tǒng)設(shè)計經(jīng)驗,為以后獨立從事應(yīng)用系統(tǒng)設(shè)計提供基礎(chǔ)保障。
3.授課課程中的基礎(chǔ)實驗采用兩種語言調(diào)試。單片機基礎(chǔ)實驗是加深學(xué)生各模塊知識掌握的重要環(huán)節(jié),通過實驗,加深學(xué)生對所學(xué)單片機各模塊知識的理解和掌握,熟悉匯編語言和C語言的編程環(huán)境,培養(yǎng)學(xué)生基本的硬件設(shè)計能力和程序設(shè)計方法,學(xué)會單片機仿真器和編程器的使用方法,同時,通過兩種語言的編程調(diào)試,掌握每種語言編程的優(yōu)缺點及適用場合,為后續(xù)的單片機應(yīng)用系統(tǒng)軟件設(shè)計提供更好的設(shè)計方法。例如,在實時性要求較高的部分采用匯編語言編程,而在沒有特殊要求的其他環(huán)節(jié)采用C語言編程,整個應(yīng)用系統(tǒng)采用兩種語言的混合編程方式,充分發(fā)揮兩種語言的優(yōu)勢,既發(fā)揮了學(xué)生在編程語言上的特長,又較好地滿足應(yīng)用系統(tǒng)的實際需要。
四、實施效果
1.改革對單片機課程設(shè)計環(huán)節(jié)的作用。單片機課程設(shè)計實訓(xùn)是培養(yǎng)學(xué)生實際應(yīng)用系統(tǒng)設(shè)計能力的重要環(huán)節(jié),兩周的設(shè)計時間足以保證一個基本單片機應(yīng)用系統(tǒng)的設(shè)計完成,通過課程設(shè)計實訓(xùn),使學(xué)生能夠掌握從方案比較與選擇到硬件設(shè)計與原理圖和電路板圖繪制、元器件焊接、軟件設(shè)計與調(diào)試,直至最后元硬件綜合調(diào)試的整個設(shè)計過程,真正提高學(xué)生的單片機系統(tǒng)設(shè)計能力和動手實踐能力,在設(shè)計題目上要充分發(fā)揮指導(dǎo)教師的科研項目這一優(yōu)勢,真正與實際相結(jié)合,這樣既滿足了指導(dǎo)教師的科研需要,又達到了學(xué)生綜合鍛煉的目的。在軟件設(shè)計環(huán)節(jié),由于學(xué)生掌握了匯編語言和C語言兩種編程語言,可以在保證系統(tǒng)功能的前提下,充分發(fā)揮每種編程語言的優(yōu)勢,編寫出簡潔高效的軟件程序,提高自己的軟件設(shè)計水平。
2.改革對學(xué)生參加電子設(shè)計競賽等綜合賽事的促進作用。全國大學(xué)生電子設(shè)計競賽、山東省大學(xué)生電子設(shè)計競賽以及山東省機電產(chǎn)品大賽等大型賽事每年舉辦一次,對每位參賽同學(xué)來說是一次難得的學(xué)習(xí)和鍛煉機會,如果比賽中獲得好的名次,對學(xué)生將來的就業(yè)問題能提供極大幫助。現(xiàn)在用人單位最需要的就是有實踐經(jīng)驗的畢業(yè)生,參加過這種競賽的同學(xué)與沒有參加過的相比,當(dāng)然有實踐方面的優(yōu)勢,用人單位比較容易接收,但是由于這些競賽時間不充足,一般要求在一周時間內(nèi)完成,而學(xué)生對匯編語言的掌握還很不熟練,因為用匯編語言編程需要長期的鍛煉和經(jīng)驗的積累,通過教材改革,在先修課程C語言程序設(shè)計的基礎(chǔ)上,學(xué)生很容易就掌握了單片機的C語言編程,這樣,學(xué)生就可以應(yīng)用C語言完成軟件設(shè)計,達到節(jié)約時間的目的,更好地滿足各項電子競賽的需要。
五、改革創(chuàng)新點
1.實現(xiàn)了單片機教材中匯編語言與C語言的同步授課,提高了學(xué)生的編程技能。
2.軟件設(shè)計過程中可以根據(jù)系統(tǒng)的要求選擇不同的編程語言,更好地滿足系統(tǒng)的需要。
3.除了匯編語言外,學(xué)生可以選擇自己比較熟練的C語言編寫程序,更好地發(fā)揮學(xué)生的編程特長。
4.通過單片機課程設(shè)計的綜合鍛煉,培養(yǎng)學(xué)生的軟件設(shè)計技能。
5.為參加各類電子設(shè)計競賽積累寶貴的軟件設(shè)計經(jīng)驗。
六、總結(jié)
通過單片機教材的改革,克服了現(xiàn)有教材只采用匯編語言或者只采用C語言講解的弊端,將兩種編程語言同步融入到教材中,學(xué)生通過單片機的學(xué)習(xí)以及實驗和課程設(shè)計等環(huán)節(jié)的鍛煉,能夠掌握兩種語言的編程,一方面可以根據(jù)自己的優(yōu)勢選擇適合自己的語言編程,另一方面可以在實際的單片機應(yīng)用系統(tǒng)軟件設(shè)計中靈活地應(yīng)用每一種語言的特點,更好地滿足系統(tǒng)的性能要求,同時,通過教材的改革,學(xué)生掌握了兩種語言的編程方法與編程技巧,能夠選出更多的優(yōu)秀學(xué)生參加各類正規(guī)電子競賽,為將來畢業(yè)后從事本領(lǐng)域的工作積累豐富的實踐經(jīng)驗。總之,通過改革,學(xué)生的軟件設(shè)計能力和設(shè)計水平能夠得到極大的提高,更好地滿足社會的用人需要。