朱文彬,王海燕
[摘 要] 單片機(jī)是自動化技術(shù)中一門專業(yè)課程。在智能化程度越來越高的今天,職業(yè)技術(shù)教育中,無論是電工還是電子專業(yè),單片機(jī)技術(shù)課程已經(jīng)不可缺少。對C語言課程教學(xué)改革的出發(fā)點(diǎn)、教學(xué)改革的目標(biāo)與價值進(jìn)行了思考闡述。
[關(guān) 鍵 詞] 單片機(jī);C語言;課程改革
[中圖分類號] G712 [文獻(xiàn)標(biāo)志碼] A [文章編號] 2096-0603(2018)06-0128-01
一、課程改革的出發(fā)點(diǎn)
單片機(jī)控制技術(shù)作為電類專業(yè)的專業(yè)核心課程,是學(xué)習(xí)者建立編程思維體系、進(jìn)行電路維護(hù)設(shè)計開發(fā)的基礎(chǔ),同時也是畢業(yè)設(shè)計的一個重要方向。但是在日常教學(xué)、技能競賽和課題開發(fā)過程中發(fā)現(xiàn),現(xiàn)有的單片機(jī)教學(xué)存在很多的問題:
1.低級編程語言。一直以來,我們采用匯編語言進(jìn)行單片機(jī)教學(xué)。匯編語言是計算機(jī)軟件開發(fā)語言中的低級語言,一共包含111條匯編語言指令,它的可編程性、可讀性、可移植性、靈活性都比較差,屬于入門級語言,在實(shí)際開發(fā)中很少使用。
2.教學(xué)方法比較傳統(tǒng)。在匯編語言教學(xué)過程中,按章節(jié)從基礎(chǔ)指令開始逐步講解,采用傳統(tǒng)的從低到高的教學(xué)方式。但在教學(xué)實(shí)際中我們發(fā)現(xiàn),學(xué)習(xí)者往往學(xué)習(xí)后面的內(nèi)容時就忘記了前面已學(xué)的內(nèi)容。而且,由于匯編語言的單體指令數(shù)太多、語言格式較死,導(dǎo)致學(xué)習(xí)者在學(xué)習(xí)過程中很難做到活學(xué)活用、融會貫通。
3.教學(xué)內(nèi)容單一。除了對匯編語言的指令系統(tǒng)進(jìn)行介紹之外,就是進(jìn)行單片機(jī)最小系統(tǒng)的簡單編程。對于片外硬件、液晶顯示、串行通訊等稍復(fù)雜的硬件應(yīng)用涉及很少。這直接影響了學(xué)習(xí)者對單片機(jī)的認(rèn)知程度。
二、單片機(jī)C語言編程的優(yōu)勢
1.不需要掌握單片機(jī)的基本指令集,也能完美編寫單片機(jī)程序。
2.不懂單片機(jī)的具體硬件,也能編出符合硬件實(shí)際的程序。
3.數(shù)據(jù)實(shí)行覆蓋,有效利用片上有限的RAM空間。
4.C語言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性。
5.提供auto、static等存儲類型和專門針對51單片機(jī)的data、idata、pdata、xdata、code等存儲類型,自動為變量合理地分配地址。
6.中斷服務(wù)程序的現(xiàn)場保護(hù)和恢復(fù),中斷向量表的填寫,是直接與單片機(jī)相關(guān)的,都由C編譯器代辦。
7.提供常用的標(biāo)準(zhǔn)函數(shù)庫,以供用戶直接使用。
8.頭文件中定義宏、說明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開發(fā)。
三、C語言課改目標(biāo)與價值
(一)改革目標(biāo)
有關(guān)C語言的書籍很多,但大多屬于以下兩種類型之一:
第一種是C語言類教材:側(cè)重于C語言語法、算法講解,知識的體系性非常完整,但學(xué)習(xí)起來比較枯燥、難度大,相應(yīng)的學(xué)習(xí)者是C語言初學(xué)者,屬于計算機(jī)語言類教學(xué)。
第二種是單片機(jī)C程序應(yīng)用型教材:這類教材分析電路組成、羅列相關(guān)C程序,但沒有介紹程序中所包含的語法知識、程序結(jié)構(gòu)等內(nèi)容,對應(yīng)的學(xué)習(xí)者應(yīng)當(dāng)具備相當(dāng)?shù)腃語言能力,屬于單片機(jī)專業(yè)類教學(xué)。
這兩種類型的教材沒有將C語言基礎(chǔ)講解、單片機(jī)C項(xiàng)目程序開發(fā)進(jìn)行融合,沒有在進(jìn)行單片機(jī)編程的同時講解語法知識,需要學(xué)習(xí)者同時進(jìn)行兩本教材的學(xué)習(xí)。但是學(xué)習(xí)者,尤其是初學(xué)者往往在開始學(xué)習(xí)后并不能抓住重點(diǎn),不知道如何有效地將兩種教材知識點(diǎn)相結(jié)合。所以,發(fā)展下去往往會出現(xiàn)兩種結(jié)
果:一種是只掌握了C語言的理論(側(cè)重學(xué)習(xí)了C語言教材);另一種只會照著單片機(jī)教材錄入程序,對程序本身的含義、語法一無所知或是一知半解。這樣對學(xué)習(xí)者來說不僅浪費(fèi)了寶貴的時間和精力,而且單片機(jī)C語言編程的知識也沒有學(xué)到。
所以想辦法將C語言語法和單片機(jī)程序進(jìn)行有機(jī)結(jié)合,將兩者的知識點(diǎn)以學(xué)習(xí)任務(wù)為載體由淺入深、循序漸進(jìn)地展現(xiàn)給學(xué)習(xí)者是本次課程改革的主要目標(biāo)。
(二)教學(xué)價值
打破固有語言教學(xué)體系:將C的語言類教學(xué)與單片機(jī)程序編寫融合,以項(xiàng)目教學(xué)模式,圍繞所編寫單片機(jī)程序,以“需要哪些知識點(diǎn)、就講解哪些知識”為原則開展C語言教學(xué),讓學(xué)習(xí)者邊寫程序、邊學(xué)語法,邊調(diào)試、邊看現(xiàn)象。以此來激發(fā)和提高學(xué)習(xí)者學(xué)習(xí)單片機(jī)和C語言的興趣。
與技能大賽相融合:將多年來參加技能大賽所積累的單片
機(jī)編程方面的案例與單片機(jī)C語言教學(xué)相結(jié)合。
(三)配套硬件電路
為了讓學(xué)習(xí)者更好地體驗(yàn)單片機(jī)C語言的開發(fā)過程,我們
專門設(shè)計了相應(yīng)的單片機(jī)開發(fā)板。開發(fā)板含有十多種功能電路,
可獨(dú)立實(shí)現(xiàn)簡單功能程序設(shè)計,也可組合實(shí)現(xiàn)綜合性較強(qiáng)的綜
合控制功能設(shè)計。具有較強(qiáng)的可擴(kuò)展性:電路板上預(yù)留了大量的擴(kuò)展口,可實(shí)現(xiàn)單片機(jī)功能擴(kuò)展設(shè)計,也可進(jìn)行多塊板之間的通訊研究,能成為學(xué)習(xí)者的創(chuàng)新平臺??墒褂枚喾NMCU芯片:設(shè)計的開發(fā)板可以分別使用ATMEL、STC和AVR系列的8位機(jī)芯片。
參考文獻(xiàn):
[1]譚浩強(qiáng).C程序設(shè)計[M].第4版.清華大學(xué)出版社,2010.
[2]戴佳,戴衛(wèi)恒.51單片機(jī)C語言應(yīng)用程序設(shè)計實(shí)例精講[M].電子工業(yè)出版社,2008.
[3]李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)(修訂本)[M].北京航天航空出版社,2005.