韓翠娥 郭清晨
中國人民解放軍軍械工程學院四系 河北石家莊 050003
單片機自問世以來,以其極高的性能價格比,以及抗干擾能力強、控制功能強的顯著特點,廣泛應用于實時工業(yè)控制、機電一體化產(chǎn)品、智能化儀表、通信產(chǎn)品、家用電器及軍事裝備等領(lǐng)域。因此,即使為選修課,該課程也越來越受到學生的追捧?!奥槿鸽m小,五臟俱全”,單片機雖只是一個芯片,但其內(nèi)涵非常豐富,知識點多,內(nèi)容抽象,要在短時間內(nèi)使學生既熟練掌握單片機原理又能夠嫻熟應用于實踐的難度很大。那么,怎樣才能大幅提升課程教學質(zhì)量呢?在對單片機教學實踐過程中,筆者在以下幾方面進行了有益的探索。
教學內(nèi)容的設(shè)計包含兩個層面:
在很短的學時(僅20學時)內(nèi),如何使學生最大限度地掌握單片機知識,是一個急需解決的問題。針對這一問題,筆者在以下兩方面進行了嘗試。
1.1.1 內(nèi)容的取舍
我院學生在學習單片機原理與應用課程之前已經(jīng)學過很多前序課程,如計算機組成原理、C語言程序設(shè)計、操作系統(tǒng)、模擬電子電路、數(shù)字電路、計算機硬件技術(shù)基礎(chǔ)等。并且,在計算機硬件技術(shù)基礎(chǔ)課程中,學生已系統(tǒng)地學過尋址方式、指令系統(tǒng)、程序設(shè)計方法、存儲器、并行接口(以8255為例)以及模擬I/O接口等內(nèi)容。因此對數(shù)制與碼制、數(shù)字電路、程序設(shè)計的基本方法等基礎(chǔ)知識不須重復講授;將8086指令系統(tǒng)與單片機指令系統(tǒng)采取對比的方式進行講授;減少了8255芯片的內(nèi)容,增加了8155芯片,且更注重這些芯片與單片機之間的電路連接及編程使用;減少了A/D,D/A轉(zhuǎn)換芯片介紹,注重其與單片機之間的連接方式及編程應用。
1.1.2 內(nèi)容的重組
通常,本課程教材的編排順序是微型計算機基礎(chǔ)→MCS51單片機結(jié)構(gòu)和時序→單片機指令系統(tǒng)→匯編語言程序設(shè)計→中斷系統(tǒng)→定時器/計數(shù)器→并行I/O接口→A/D及D/A接口技術(shù)→串行通信等內(nèi)容。如果完全按照教材的編排順序授課,各知識點之間相對獨立,不能使學生建立起整體的概念。因此,整合教學內(nèi)容,合理安排教學順序,顯得至關(guān)重要。
在教學過程中,主要以單片機最小系統(tǒng)組成及原理、單片機指令系統(tǒng)、程序設(shè)計、單片機系統(tǒng)的擴展及I/O擴展技術(shù)四大模塊為設(shè)計主線,以如何組建單片機應用系統(tǒng)并實現(xiàn)其功能為設(shè)計思路,將各部分內(nèi)容有機聯(lián)系成一個整體。首先將教學內(nèi)容分成兩大部分(如圖1所示)—單片機原理與單片機應用。
單片機原理主要包括硬件和軟件兩部分,其中硬件部分重點講授單片機最小系統(tǒng)的組成原理(以51系列單片機為核心的單片機硬件結(jié)構(gòu)與原理、存儲器配置、單片機外圍工作電路、4個并行I/O端口電路結(jié)構(gòu)、中斷系統(tǒng)、定時/計數(shù)器);對于軟件部分,將指令系統(tǒng)和程序設(shè)計融合在一起,不再講授教材的簡單與分支程序設(shè)計、子程序設(shè)計和運算程序設(shè)計的相關(guān)內(nèi)容,不再逐條介紹MCS51單片機的111條指令,而是重在梳理歸納總結(jié),特別指出51匯編與X86匯編的相同和不同之處;對于一些關(guān)鍵指令,結(jié)合具體的程序進行講解,加深學生的理解和掌握,如利用DJNZ指令設(shè)計循環(huán)程序,利用MOVC A,@A+PC和MOVC A,@A+DPTR兩條指令設(shè)計查表程序,分別用相應的程序舉例進行講解。在軟件部分,還引入了C51內(nèi)容,指出C51與普通C的區(qū)別。同時針對單片機的I/O端口、定時/計數(shù)器、中斷系統(tǒng)也給出具體的編程實例。
在單片機應用部分重點講授單片機的外圍擴展技術(shù),主要包括:單片機應用系統(tǒng)的擴展(程序存儲器的擴展、數(shù)據(jù)存儲器的擴展、并行I/O端口的擴展)、單片機對鍵盤和顯示器件的擴展技術(shù)、單片機對A/D和D/A轉(zhuǎn)換器的擴展技術(shù)以及單片機與單片機、單片機與PC機之間的串行通信技術(shù)。針對這些內(nèi)容的特點(應用性非常強)主要以一些典型器件為例進行講授。例如,程序存儲器和數(shù)據(jù)存儲器的擴展電路連接有相似之處,教學過程中以新型的EEPROM芯片2817(既可作為程序存儲器也可作為數(shù)據(jù)存儲器)為例來講授其與單片機之間的電路連接。對于顯示器件的擴展,除了介紹單片機對LED數(shù)碼管的擴展技術(shù)外,還增加了單片機對LCD顯示器的擴展內(nèi)容。
單片機原理和應用兩大部分的內(nèi)容并不是孤立的,同時在教學過程中也不是獨立講解的,單純的講原理,內(nèi)容很抽象,學生也不易理解和掌握,而在單片機原理的基礎(chǔ)上,穿插各種典型設(shè)計案例的講解,將原理教學融入生活或工程實際中的相應案例,既加深了學生對相關(guān)內(nèi)容的理解和掌握,又對學生以后進行單片機系統(tǒng)設(shè)計有一定的啟發(fā)。
單片機的發(fā)展日新月異,為了避免教學內(nèi)容陳舊跟不上時代的發(fā)展,就必須把握單片機發(fā)展趨勢,將最新的技術(shù)引入教學中,及時更新課程內(nèi)容。開闊學生的知識面,激發(fā)學習興趣,調(diào)動學習積極性,進一步培養(yǎng)學生的創(chuàng)新能力。
如對單片機編程語言的選擇,以C51為主,匯編為輔。由于C語言的突出優(yōu)點(它兼顧了多種高級語言的特點,并具備匯編語言的功能),針對8051的C語言日趨成熟,成為了專業(yè)化的實用高級語言,國內(nèi)最通用的是Keil C51。但匯編語言也不能被完全舍棄,它在某些情況下具有一定的優(yōu)勢,如與硬件有關(guān)的程序用匯編語言編寫,用C51編寫主程序和運算子程序。所以除了引入C51的相關(guān)內(nèi)容外,還引入了針對匯編和C51的混合編程舉例。除此之外,LCD顯示器接口技術(shù)也是新增內(nèi)容。
在有限的學時內(nèi),不僅要使學生學到更多的知識,讓學生在短時間內(nèi)將所學知識融會貫通并牢固掌握,也是值得每個教師深思的問題。筆者認為,采取多樣化的教學手段是提升教學效果的有效途徑。
目前主要以課堂授課為主,大多采用多媒體和黑板相結(jié)合的方式進行。多媒體教學雖然減少了教師在黑板上的書寫時間,但是課堂上單純的程序和電路講解,內(nèi)容枯燥,學生學習也沒有積極性,不利于學生對知識的掌握。并且,單片機課程既不像一些理論課那樣具有大量的公式需要推導,也不像機械結(jié)構(gòu)課可以采用動畫形式進行內(nèi)部結(jié)構(gòu)及工作原理的演示。它本身所固有的特點就是實踐性和應用性很強,針對這一點,在教學過程中,一方面采用多媒體教學,節(jié)省學時,以便在有限的時間內(nèi)能教授更多的內(nèi)容;另一方面將程序和電路仿真軟件——Keil μVision和Proteus引入教學,針對所有引用的程序和電路在課堂上進行仿真,這一做法不僅吸引了學生的眼球,激發(fā)了他們的學習興趣,更加深了學生對所學知識的掌握,同時也掌握了這兩個軟件的應用。這里僅舉兩個例子。
例1:對MOVC A,@A+DPTR和MOVC A,@A+PC兩條查表指令的使用,分別如圖2和圖3所示。圖中兩段程序均使用查表指令進行平方值的查詢,程序雖然短小,卻足以說明這兩個查表指令的具體用法,非常有利于學生的理解和掌握,尤其是MOVC A,@A+PC,在使用之前需要加一個偏移量。從圖中左側(cè)寄存器A中的值可以讀出具體結(jié)果。利用Keil μVision除了可以驗證程序的正確與否之外,還可以使學生更好地了解單片機內(nèi)部存儲器的配置,如這兩段程序中,具體的平方值都是以常數(shù)形式存放于程序存儲器中,從圖右下側(cè)可以看出,它們存放在以2000H單元開始的ROM中。
例2:單片機對ADC0808芯片的擴展技術(shù)(如圖4所示)。圖中以一分壓電阻作為輸入的模擬信號,輸入ADC0808的IN3通道,單片機通過P0口擴展了4位LED數(shù)碼管來顯示模擬電壓對應的數(shù)字量。滿量程顯示255(FFH),改變分壓值(圖中分壓比為65%),對應的數(shù)字量輸出也會相應改變。AD轉(zhuǎn)換需要通過程序來實現(xiàn),這就用到了Proteus和Keil μVision軟件的聯(lián)合仿真,以Keil μVision軟件對程序進行編譯生成HEX文件供Proteus電路調(diào)用,然后在Proteus軟件中運行電路和程序,即可得到仿真結(jié)果(如圖4所示)。
雖然將程序和電路仿真軟件引入教學,確實提高了課堂的授課效果,但畢竟沒有給學生親自動手實踐的機會。所以,為了培養(yǎng)學生的動手能力和創(chuàng)新能力,達到學以致用的目的,在教學方法上,我們引入了案例教學。不僅在課堂上引入大量生活中或工程中的實例,如加入單片機在軍事、通信、能源、機器人、交通、IT以及現(xiàn)代工業(yè)、農(nóng)業(yè)、儀器儀表、汽車電子系統(tǒng)、家用電器、玩具及個人信息終端等諸多領(lǐng)域的應用案例,增加學生的感性認識;更重要的是通過讓學生選擇不同的設(shè)計題目,親自動手設(shè)計硬件電路和軟件編程實現(xiàn)相應的功能,大大提高了學生的動手能力和創(chuàng)新能力。
由于是大班教學(50~60人),而且課時又少,不便于開展實驗教學,同時,原有的單片機實驗箱,課程實驗固定,不利于培養(yǎng)學生的創(chuàng)新能力。通過設(shè)立不同的設(shè)計任務,有效調(diào)動學生的學習積極性,使學生積極開動腦筋完成任務,以任務推動教學,突出學生在學習中的主體地位,進一步鍛煉學生的動手能力,達到熟練掌握本課程的目的。
在教學過程中,設(shè)立10個題目供學生選擇,平均每題4~6人。由于時間有限,題目不宜選得太大太難,以能鍛煉學生動手能力,并按時完成任務為原則,題目如下。
(1)定時鬧鈴LCD,(2)密碼鎖控制,(3)8051八音盒,(4)基于單片機的數(shù)字鐘,(5)機箱活動門(如光驅(qū)門)的控制,(6)8通道自動溫度檢測系統(tǒng),(7)多功能信號發(fā)生器設(shè)計,(8)用單片機來設(shè)計計算器,(9)單片機與微機之間的無線數(shù)據(jù)傳輸,(10)紅外遙控器的設(shè)計。這些設(shè)計題目可充分鍛煉學生對8051定時器、按鍵掃描、LCD顯示器、密碼比較處理、歌曲旋律設(shè)計、A/D、D/A轉(zhuǎn)換器的接口設(shè)計、串行通信及單片機對電機驅(qū)動的設(shè)計方法。在學生完成項目過程中,給予適度的指導,關(guān)鍵是讓學生自己獨立自主、保質(zhì)保量地完成設(shè)計任務,把上課時的被動學習變?yōu)檎n外實踐中的積極主動思考。一方面提高了學生的動手能力、解決問題的能力和創(chuàng)新能力;另一方面讓學生帶著問題學習,激發(fā)了其學習興趣和熱情,增強了學生的自信心,在課程教學實踐中收到了很好的效果。
這些做法在教學過程中收到了非常好的效果。通過合理設(shè)計教學內(nèi)容,提高了課堂授課信息量及授課效率,解決了學時少與授課內(nèi)容多之間的矛盾;課堂引入Keil和Proteus仿真教學手段,大大提高了課堂的授課質(zhì)量;案例教學法的實施,激發(fā)了學生的學習熱情和學習興趣,提高了學生分析問題、解決問題的能力,培養(yǎng)了學生的動手能力和創(chuàng)新能力。
[1]靳達.單片機應用系統(tǒng)開發(fā)實例導航[M].北京:人民郵電出版社,2003.
[2]陳明熒.8051單片機課程設(shè)計實訓教材[M].北京:清華大學出版社,2004.
[3]段英宏,田志宏,劉秀紅.《單片機原理及應用》課程改革與創(chuàng)新能力的培養(yǎng)[J].現(xiàn)代教育技術(shù),2009,19(13):282-284.
[4]陳艷麗,劉小燕.“單片機原理與應用”教學改革探討[J].中國電力教育,2010(1):74-75.