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