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