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