李永建 王福元 王 軍
(鹽城工學(xué)院,江蘇 鹽城 224000)
本課程講授單片機C51語言的基礎(chǔ)知識,包括C51程序設(shè)計的基本語法、函數(shù)、數(shù)據(jù)結(jié)構(gòu)等內(nèi)容;然后介紹了單片機調(diào)試軟件Keil C51的應(yīng)用及其調(diào)試、仿真技巧;是工科院校計算機專業(yè)及非計算機專業(yè)廣泛開設(shè)的一門的專業(yè)技術(shù)基礎(chǔ)課。
通過本課程的學(xué)習(xí),學(xué)生應(yīng)達到以下幾方面的要求:
(1)掌握單片機C語言編程方面的基本概念,基礎(chǔ)知識。(2)熟悉51系列單片機基本硬件結(jié)構(gòu)及編程方法。(3)掌握51系列單片機C語言的指令和語法。(4)學(xué)習(xí)C51程序的編寫方法,能夠編制和調(diào)試簡單常用的程序。(5)掌握51系列單片機的程序存儲器、數(shù)據(jù)存儲器、輸入/輸出口的C語言編程方法。(6)掌握51系列單片機的仿真技術(shù)及應(yīng)用。(7)了解單片機C語言應(yīng)用系統(tǒng)開發(fā)的基本方法。
本課程的教學(xué)目標(biāo)如下:
通過本課程的學(xué)習(xí),使本課程講授了單片機的應(yīng)用概述,單片機的內(nèi)部結(jié)構(gòu)及指令系統(tǒng),單片機的程序設(shè)計,中斷系統(tǒng)和定時器,串行口和系統(tǒng)的擴展,測試接口,80C51兼容單片機等,以培養(yǎng)學(xué)生應(yīng)用單片機的能力,為今后學(xué)習(xí)復(fù)雜的工業(yè)控制系統(tǒng)打下基礎(chǔ)。
本課程的應(yīng)用性較強,與生產(chǎn)實際的聯(lián)系緊密,安排適當(dāng)?shù)膶嶒灴梢詭椭鷮W(xué)生理解教學(xué)內(nèi)容,鍛煉動手能力和綜合設(shè)計能力。實驗內(nèi)容為:(1)單片機C51程序設(shè)計集成開發(fā)環(huán)境應(yīng)用;(2)流水燈實驗;(3)中斷程序設(shè)計實驗;(4)定時器/計數(shù)器程序設(shè)計實驗等。
我們先分析一下《C51程序設(shè)計》特點,如下:
首先,課程和以往單片機知識聯(lián)系緊密,這就要求具有良好的單片機基礎(chǔ),很多同學(xué)學(xué)完一門課程后就扔掉一門課程,不重視課程間的聯(lián)系,也不愿再重新復(fù)習(xí)原來知識,這時候,在講解《C51程序設(shè)計》課程的時候就要把和單片機相關(guān)知識講詳細(xì)、講透徹,讓學(xué)生不在害怕忘記了單片機知識,無法繼續(xù)學(xué)習(xí)《C51程序設(shè)計》課程;
其次,課程和C語言密切聯(lián)系,這對課程的學(xué)習(xí)是好事,多數(shù)的同學(xué)都修過《C語言程序設(shè)計》這門課程,有的同學(xué)甚至通過C語言的計算機等級考試,因此,對有C語言很好的基礎(chǔ),減輕了《C51程序設(shè)計》課程的學(xué)習(xí)難度;但畢竟《C51程序設(shè)計》和《C語言程序設(shè)計》是有區(qū)別的,C51的學(xué)習(xí)跟依靠單片機知識,部分同學(xué)認(rèn)為學(xué)好C語言再熟悉一下C51特有的語法就可以從事C51的編程了,事實上,很多從事單片機開發(fā)的技術(shù)人員都精通匯編和C51語言,因為很多時候C51程序需要反匯編并進行修改,以防止程序冗余和精簡控制指令,因此,《C51程序設(shè)計》課程的學(xué)習(xí),不僅僅學(xué)好C51本身,還有熟悉單片機最基本的匯編語言,才能使C51語言更好的適合單片機的應(yīng)用開發(fā)。
目前,比較流行的單片機編程方法有3種:匯編、C語言和兩種混合編程。下面對它們的優(yōu)缺點進行歸納,供深入學(xué)習(xí)《C51程序設(shè)計》課程參考:
1)匯編的特點是最接近機器語言,控制語句最直接,對于單片機的控制效率最高,適合作精確控制的場合,常常用于底層驅(qū)動或控制算法的編程,缺點是與C語言相比不方便記憶,而且受寄存器等位數(shù)(51單片機的寄存器或存儲器為8位)的限制,復(fù)雜算法的編程較困難;
2)C語言的特點是編程相對匯編語言簡單,特別是適合一些復(fù)雜些的算法編程,但編譯成機器代碼冗余指令較多,從而導(dǎo)致占用程序存儲器空間較多,而且冗余指令對控制產(chǎn)生影響,所以不適合做精確或?qū)崟r性要求較高的場合;
3)混合編程是一種流行的方法,它結(jié)合匯編和C語言的優(yōu)點。通?;旌暇幊炭刹捎脙煞N方法,一種是匯編語句嵌入到C語言中,這種方法實現(xiàn)較容易,但控制功能還是不強;另一種方法是用匯編和C語言兩個文件,用接口函數(shù)或接口寄存器進行兩個函數(shù)的數(shù)據(jù)傳遞,最后進行聯(lián)合編譯形成一個機器代碼。
C51是單片機語言與C語言結(jié)合的一門語言,它具備了各自的優(yōu)點,比如,可以控制單片機硬件,比匯編語言直觀簡潔?!禖51程序設(shè)計》這門課程是C51語言的教學(xué)內(nèi)容,因為這門課程具有單片機的特點和C語言的特點,所以這門課程的學(xué)習(xí)就離不開單片機硬件的支撐知識。首先,我們來談?wù)勅绾芜M行《C51程序設(shè)計》的教學(xué)。
1)根據(jù)課程特點,圍繞單片機基礎(chǔ)進行教學(xué)
單片機是《C51程序設(shè)計》課程的基礎(chǔ),因此不能離開單片機的基礎(chǔ),在C51學(xué)習(xí)中遇到單片機知識不能回避,要進行簡要的教學(xué),比如歸納和總結(jié)C語言在單片機上的應(yīng)用。
2)借鑒匯編語言知識,互補學(xué)習(xí)
學(xué)習(xí)知識不是孤立的學(xué)習(xí),要全面學(xué)習(xí),作為單片機的另一門語言-匯編語言,我們不能完全不理,要借鑒匯編的學(xué)習(xí)方法,體會匯編語言的優(yōu)點,對比學(xué)習(xí)C51才能知己知彼,百戰(zhàn)不殆。
3)重視編程訓(xùn)練,進行必要的強化訓(xùn)練。
編程是一門靠大量訓(xùn)練積累經(jīng)驗的技術(shù),課程的學(xué)習(xí)離不開編程,因此除了教知識外,要進行一定的編程練習(xí),鞏固學(xué)習(xí)的知識。
《C51程序設(shè)計》是一門理論性和實踐性均較強的單片機應(yīng)用課程,概念理解難、學(xué)習(xí)內(nèi)容較多,目前學(xué)生學(xué)習(xí)吃了,難易吃透知識,給教學(xué)帶來一定的難度,因為單純的理論教學(xué)無法提高學(xué)生的學(xué)習(xí)積極性,此外,C51的學(xué)習(xí)對實踐提出了很大的要求,要求學(xué)生要有較強的動手能力。為了改變教學(xué)出現(xiàn)的吃力現(xiàn)象,筆者在C51教學(xué)中探索出一套教學(xué)和實踐一體化的應(yīng)用方案。
1)以教學(xué)計劃為前提,強化教學(xué)和實踐一體化的基礎(chǔ)
教學(xué)計劃是教師教學(xué)的一盞明燈,是打造高效教學(xué)前提條件。因此,要制訂出一套適合教學(xué)的好的計劃。首先,充分考慮學(xué)生的知識水平和基礎(chǔ)能力是教師在制定計劃的前提條件,針對部分學(xué)生邏輯思維能力偏弱,學(xué)習(xí)習(xí)慣欠妥,教師要結(jié)合教學(xué)大綱的要求,對教學(xué)內(nèi)容進行適當(dāng)刪減和調(diào)整。其次,教師還應(yīng)充分考慮學(xué)校的教學(xué)儀器能否能滿足日常教學(xué)需要,對教學(xué)有無特殊要求等。
2)以項目教學(xué)為母體,實事教學(xué)和實踐一體化
《C51程序設(shè)計》課程教學(xué)是普通高等院校的教學(xué)難點,如果采用傳統(tǒng)的教學(xué)方法,從單片機的基礎(chǔ)知識講起,過渡到單片機的結(jié)構(gòu)與原理,然后深入到C51指令系統(tǒng)、定時與中斷系統(tǒng)、擴展與接口技術(shù)等知識。通常情況下,在基礎(chǔ)階段就會有一批學(xué)生感覺所學(xué)知識過于枯燥和乏味;在進入第二階段進行C51結(jié)構(gòu)與原理學(xué)習(xí)時,會出現(xiàn)約1/3的學(xué)生無法參與到課堂中,更談不上對知識的理解和掌握,以及能力的培養(yǎng)和提高。
項目教學(xué)法打破了傳統(tǒng)教學(xué)的章節(jié)次序,把知識點按照教學(xué)需要整合起來,某個項目就可以涉及整本書的內(nèi)容,也可以包括某個章節(jié)的內(nèi)容,以最精簡的方式達到教學(xué)效果的最優(yōu)化。同時,采用項目教學(xué)法,可以從一開始就吸引學(xué)生注意力,提高學(xué)習(xí)興趣,激發(fā)他們學(xué)習(xí)的主動性,進而提高教學(xué)效果。
《C51程序設(shè)計》是基于單片機知識和應(yīng)用的一門課程,單片機的軟硬件基礎(chǔ)對學(xué)好這門課程至關(guān)重要,因此,要充分重視知識的積累,并加強C51和單片機的融合,不放棄對匯編語言的應(yīng)用,才能使《C51程序設(shè)計》得學(xué)習(xí)再進一個臺階。
《C51程序設(shè)計》課程是一門專業(yè)課程,有較強的實踐要求,無論教和學(xué)都要從實踐出發(fā),要重視編程訓(xùn)練,同時不放松理論的學(xué)習(xí),才能真正學(xué)好這門課程。
[1]唐穎,主編.單片機技術(shù)及C51程序設(shè)計[M].電子工業(yè)出版社,2014.
[2]侯殿友,主編.單片機C51程序設(shè)計[M].人民郵電出版社,2012.