陳洪財(cái)
(韓山師范學(xué)院,廣東潮州 521041)
“單片機(jī)應(yīng)用技術(shù)”是電子和自動(dòng)化等專業(yè)的必修課,它融合了電子、計(jì)算機(jī)、電路設(shè)計(jì)及工藝等技術(shù),是一門(mén)理論和應(yīng)用性很強(qiáng)的課程。對(duì)于初學(xué)者來(lái)說(shuō),要掌握單片機(jī)難度很大,如果不根據(jù)學(xué)生的認(rèn)知規(guī)律和單片機(jī)課程的特點(diǎn)教學(xué),將給學(xué)生的學(xué)習(xí)造成困難。我們經(jīng)過(guò)多年的教學(xué)實(shí)踐,發(fā)現(xiàn)基于模塊化的單片機(jī)教學(xué)方法切實(shí)可行,效果明顯[1]。
模塊化的單片機(jī)教學(xué)就是把單片機(jī)系統(tǒng)分成各個(gè)具有獨(dú)立功能又可以互相銜接的簡(jiǎn)單模塊,將復(fù)雜難懂的指令、語(yǔ)法、編程及其電路分解,使編程簡(jiǎn)單化的教學(xué)方法。通過(guò)對(duì)各個(gè)模塊的學(xué)習(xí),使學(xué)生掌握相關(guān)電路原理及編程控制方法,再把不同功能模塊連接起來(lái)組成一個(gè)具有完整功能的應(yīng)用系統(tǒng)。
我們根據(jù)學(xué)生的認(rèn)知規(guī)律,將單片機(jī)教學(xué)模塊分成三個(gè)部分:硬件模塊、軟件模塊和程序功能模塊。其中程序功能模塊關(guān)系到教學(xué)的成敗[2]。
按照單片機(jī)的功能開(kāi)發(fā)思路和教學(xué)先后順序,我們將程序功能模塊分成三大部分:端口基本功能模塊、中斷基本功能模塊和外圍驅(qū)動(dòng)高級(jí)功能模塊。上一個(gè)程序的功能在下一個(gè)程序中作為一個(gè)子程序得到運(yùn)用,功能逐漸增強(qiáng),使程序成為一個(gè)具有強(qiáng)大功能的實(shí)用程序。
端口功能模塊的設(shè)置目的是:掌握單片機(jī)匯編語(yǔ)言的編程思想,熟悉匯編指令,通過(guò)仿真理解單片機(jī)的內(nèi)部結(jié)構(gòu)。在學(xué)習(xí)過(guò)程中,掌握延時(shí)子程序、查表子程序、數(shù)碼管顯示子程序和鍵盤(pán)子程序的編寫(xiě)方法。這些子程序是單片機(jī)的控制基礎(chǔ),也是項(xiàng)目開(kāi)發(fā)所必須的基本功能,是單片機(jī)入門(mén)的基礎(chǔ)。教學(xué)中可以完成多個(gè)基本應(yīng)用程序,每一個(gè)程序都是獨(dú)立的。上一個(gè)程序可以作為子程序在下一個(gè)程序中應(yīng)用,如LED流水燈控制、單個(gè)數(shù)碼管基本顯示、多數(shù)碼管靜態(tài)顯示、數(shù)碼管的選擇和數(shù)碼管數(shù)字顯示控制等。
中斷、定時(shí)/記數(shù)和串行通信是單片機(jī)學(xué)習(xí)的難點(diǎn),應(yīng)該從簡(jiǎn)單的INT0中斷開(kāi)始,建立含有INT0中斷的完整程序框架,讓學(xué)生模仿中斷控制寄存器IE、TCON設(shè)置和中斷子程序的編寫(xiě),進(jìn)行中斷響應(yīng)過(guò)程仿真。學(xué)生一旦學(xué)會(huì)INT0中斷的應(yīng)用,INT1中斷往往不需要具體講解就會(huì)應(yīng)用。對(duì)于T0、T1中斷需要重點(diǎn)講解工作方式控制寄存器TMOD。模仿教師的演示程序非常重要,以便讓學(xué)生建立起含有所有中斷及其子程序的完整程序框架,子程序內(nèi)容可以自行設(shè)置,以便讓學(xué)生掌握單片機(jī)程序的可移植性,而對(duì)不同的電路結(jié)構(gòu)只需改變單片機(jī)端口和寄存器的相關(guān)參數(shù)。我們還要求學(xué)生建立自己的控制寄存器手冊(cè),將控制控制字結(jié)構(gòu)和意義加以注釋,方便編程時(shí)查找、理解和應(yīng)用。
外圍驅(qū)動(dòng)模塊的應(yīng)用是針對(duì)外圍硬件電路而言的,如常用的集成芯片:DS1302、AT24C02、DS18B20、TLC549、A/D模數(shù)轉(zhuǎn)換芯片以及步進(jìn)電機(jī)、紅外線遙控模塊等。雖然各種集成芯片驅(qū)動(dòng)時(shí)序及其控制方法不相同,但無(wú)論是串口還是并口其讀寫(xiě)方法是相同的。我們需要對(duì)不同芯片建立不同的驅(qū)動(dòng)和控制子程序,講清典型的控制方法,如AT24C02、A/D芯片的通信和控制。
為了配合模塊化的教學(xué),硬件電路設(shè)計(jì)也應(yīng)該模塊化。將單片機(jī)的各個(gè)功能模塊以獨(dú)立的原理圖形式出現(xiàn),各個(gè)模塊通過(guò)印制板上預(yù)留的連接器與系統(tǒng)主板進(jìn)行連接,然后用排線組合成所需要的系統(tǒng)。硬件電路模塊應(yīng)包含兩種基本模塊:獨(dú)立式鍵盤(pán)(或行列式鍵盤(pán))模塊和多位動(dòng)態(tài)數(shù)碼管顯示模塊。我們選取的應(yīng)用模塊有:RS232通訊模塊、DS1302時(shí)鐘模塊、AD0832模數(shù)轉(zhuǎn)換模塊、LCD顯示模塊、EEPROM讀寫(xiě)模塊、串口通信模塊、DS18B20溫度測(cè)量模塊及無(wú)線遙控模塊等。
我們?cè)诮虒W(xué)中,應(yīng)首先采用匯編語(yǔ)言,這有利于程序的模塊化。一般用匯編進(jìn)行數(shù)碼管及鍵盤(pán)程序的編寫(xiě),然后用C語(yǔ)言編寫(xiě)同樣功能的模塊進(jìn)行對(duì)照,即橫向融合。
學(xué)生可以先用WAVE軟件進(jìn)行匯編端口功能模塊程序編寫(xiě)。為了過(guò)渡到C語(yǔ)言編程,同時(shí)用匯編語(yǔ)言和C語(yǔ)言編寫(xiě)中斷基本功模塊。對(duì)于外圍硬件驅(qū)動(dòng)因其功能強(qiáng)大,借助KEIL軟件,獨(dú)立用C語(yǔ)言程序。根據(jù)筆者多年的教學(xué)經(jīng)驗(yàn),以上的方法取得的教學(xué)效果良好。
充分利用教學(xué)評(píng)價(jià)手段可以調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,教學(xué)過(guò)程中分三個(gè)階段給出學(xué)習(xí)成績(jī):基本功能開(kāi)發(fā)的書(shū)面報(bào)告和實(shí)際電路作品:40分;高級(jí)功能開(kāi)發(fā)的書(shū)面報(bào)告和實(shí)際電路作品:40分;電路特色和功能創(chuàng)新、結(jié)合市場(chǎng)需要:20分。這樣的評(píng)價(jià)可以激發(fā)學(xué)生的動(dòng)手制作和編程熱情,同時(shí),也可以根據(jù)需要提高平時(shí)分?jǐn)?shù)所占的比重,而期末考試的成績(jī)只占總成績(jī)的30%。這種評(píng)價(jià)體系更適合單片機(jī)實(shí)踐教學(xué)。
采用單片機(jī)功能模塊教學(xué)方法的是學(xué)生能夠熟練掌握重點(diǎn)指令,編寫(xiě)并積累了大量的完整的實(shí)用單片機(jī)程序,能夠熟練操作單片機(jī)開(kāi)發(fā)的整套工具,以提高學(xué)生的動(dòng)手能力和產(chǎn)品設(shè)計(jì)能力[3,4];整個(gè)學(xué)習(xí)過(guò)程中,先學(xué)的功能是下一功能的基礎(chǔ)或子程序,功能開(kāi)發(fā)相銜接,學(xué)習(xí)效率大大提高。
[1] 胡敬朋,王聰.單片機(jī)項(xiàng)目教學(xué)研究及實(shí)踐[J].南京:電氣電子教學(xué)學(xué)報(bào),2009(5)
[2] 唐鴻儒;夏揚(yáng);黃亞忠.單片機(jī)課程的實(shí)踐教學(xué)探索[J].南京:電氣電子教學(xué)學(xué)報(bào),2009(1)
[3] 劉國(guó)光.任務(wù)驅(qū)動(dòng)法在單片機(jī)教學(xué)中的應(yīng)用[J].北京:高等教育研究學(xué)報(bào),2004(4)
[4] 孫肖子,吳鵬.美國(guó)工程教育改革計(jì)劃簡(jiǎn)介及啟示[J].南京:電氣電子教學(xué)學(xué)報(bào),1998(4)