趙月靜,陳繼榮,張永弟
(河北科技大學(xué) 機(jī)械電子工程學(xué)院,河北 石家莊 050018)
“單片機(jī)原理及應(yīng)用”課程是機(jī)械設(shè)計(jì)制造及其自動(dòng)化專業(yè)的一門重要的專業(yè)基礎(chǔ)課程,是機(jī)電專業(yè)模塊的專業(yè)必修課。隨著各種機(jī)械設(shè)備自動(dòng)化程度的提高,設(shè)備的控制系統(tǒng)越來越重要,單片機(jī)是實(shí)現(xiàn)各種機(jī)械電子設(shè)備控制的重要手段之一。單片機(jī)由于具備體積小、成本低、高性能等特點(diǎn)被廣泛應(yīng)用于工業(yè)控制、智能儀器和機(jī)電一體化等多領(lǐng)域。因此了解單片機(jī)的工作原理,掌握單片機(jī)技術(shù),特別是具備基本應(yīng)用操作技能,成為當(dāng)代相關(guān)專業(yè)大學(xué)生的重要任務(wù)。單片機(jī)是一門理論和實(shí)踐結(jié)合非常緊密、突出動(dòng)手能力的課程,但該課程相對(duì)比較抽象,學(xué)生普遍反映入門較難且難以理解單片機(jī)的內(nèi)部結(jié)構(gòu),而單片機(jī)的傳統(tǒng)教學(xué)方式多以課堂原理講解與少量硬件實(shí)驗(yàn)相結(jié)合,實(shí)踐內(nèi)容偏少,不能充分激發(fā)學(xué)生的學(xué)習(xí)興趣,使其處于被動(dòng)接受知識(shí)而不是主動(dòng)求知[1-2]。
目前的單片機(jī)課程教學(xué)主要由課堂教學(xué)和實(shí)驗(yàn)教學(xué)2部分組成。課堂教學(xué)普遍采用多媒體設(shè)備,將教學(xué)內(nèi)容制作成幻燈片,對(duì)著PPT講解電路和程序、CPU內(nèi)部結(jié)構(gòu)、I/O接口、硬件、軟件,均采用演示的教學(xué)方法[1]。這種具備音視頻效果的教學(xué)方式,使學(xué)生一定程度上容易理解和接受所講授的內(nèi)容,并對(duì)提高學(xué)習(xí)的積極性有一定效果,但對(duì)于單片機(jī)這種課程,只是把理論學(xué)了,而實(shí)際的動(dòng)手能力沒有得到鍛煉,效果有限。
現(xiàn)在大多數(shù)的單片機(jī)教材都是以匯編語言為主,由于匯編語言具有代碼緊湊、執(zhí)行時(shí)間短、控制及時(shí)且易于記憶等優(yōu)點(diǎn),教師也是把很多課時(shí)用在匯編語言上面,而單片機(jī)的C語言卻很少提及[4]。但是隨著單片機(jī)技術(shù)的發(fā)展出現(xiàn)了一些問題,主要表現(xiàn)在對(duì)硬件結(jié)構(gòu)的過分依賴,不同類型的單片機(jī)匯編指令有所不同,而且程序比較繁瑣、可移植性差等。與匯編語言相比,C語言在功能上、結(jié)構(gòu)上、可讀性和可維護(hù)性上有明顯的優(yōu)勢,而且C語言有豐富的函數(shù)庫,可以有效減少編程工作量,對(duì)單片機(jī)的硬件稍作了解即可進(jìn)行系統(tǒng)開發(fā),特別是C語言對(duì)寄存器的分配與尋址方式都是由編譯系統(tǒng)自動(dòng)完成,所以企業(yè)公司開發(fā)產(chǎn)品基本上都用 C 語言[5-6]。
現(xiàn)在的考核方式多采用閉卷考試,學(xué)生死記硬背硬件內(nèi)容和軟件指令,考完后很快忘掉,但開發(fā)單片機(jī)應(yīng)用系統(tǒng)的能力沒有任何提高。
單片機(jī)是一門注重應(yīng)用的課程,這門課最終目的還是在于開發(fā)產(chǎn)品,這些教學(xué)方式忽視了學(xué)生設(shè)計(jì)和創(chuàng)新能力的培養(yǎng),不利于培養(yǎng)學(xué)生解決實(shí)際問題的能力,對(duì)提高學(xué)生的學(xué)習(xí)興趣、擴(kuò)展學(xué)生的學(xué)習(xí)思路收效甚微,對(duì)以后課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)中要應(yīng)用的單片機(jī)控制系統(tǒng)更是知之甚少。
為了改善教學(xué)效果,增強(qiáng)學(xué)生的動(dòng)手實(shí)踐能力,在教學(xué)過程中采用將理論與實(shí)踐、硬件和軟件有機(jī)結(jié)合的教學(xué)方法。理論教學(xué)環(huán)節(jié)充分利用仿真軟件,在教學(xué)中引入Proteus仿真軟件,加強(qiáng)C51語言的教學(xué),引入Keil C編程軟件;采用項(xiàng)目驅(qū)動(dòng)教學(xué)法,通過開發(fā)單片機(jī)應(yīng)用系統(tǒng)項(xiàng)目,讓學(xué)生對(duì)實(shí)際控制系統(tǒng)有直觀的認(rèn)識(shí),并在參與系統(tǒng)開發(fā)的過程中加深認(rèn)識(shí),對(duì)整個(gè)開發(fā)過程有充分的了解。通過仿真的直觀性和項(xiàng)目可參與性,以及生動(dòng)有趣的真實(shí)感,激發(fā)學(xué)生的學(xué)習(xí)興趣,提高教學(xué)效果,極大地開拓了學(xué)生動(dòng)手實(shí)踐的時(shí)間和空間,降低了學(xué)習(xí)成本,提高了學(xué)習(xí)效果。
Proteus軟件是英國Labcenter electronics公司研發(fā)的電路分析與實(shí)物仿真軟件,具有近20年的歷史,是目前最好的單片機(jī)及外圍器件的仿真工具。Proteus軟件提供了大量的仿真設(shè)備和元器件,有30多個(gè)元件庫、近8 000個(gè)數(shù)字和模擬元件模型(包括各種單片機(jī)、常用邏輯電路),有各種調(diào)試工具、測試儀器、顯示設(shè)備、虛擬儀器、調(diào)試信號(hào)等。它由ISIS和ARES構(gòu)成。ISIS是原理圖編輯與仿真軟件,ARES是布線編輯軟件[7-9]。
利用Proteus可實(shí)現(xiàn)單片機(jī)及外圍電路的仿真,如單片機(jī)軟件仿真系統(tǒng)、模擬電路仿真、數(shù)字電路仿真、單片機(jī)外圍電路仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真等。該軟件不但可以模擬硬件系統(tǒng),而且可以把編譯好的程序代碼裝入仿真元件中,通過運(yùn)行仿真系統(tǒng)可以像焊接好的電路板一樣看到系統(tǒng)的執(zhí)行效果,滿足了在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果,彌補(bǔ)了理論知識(shí)和實(shí)踐應(yīng)用間脫節(jié)的矛盾,同時(shí)也支持第三方的軟件編譯和調(diào)試環(huán)境,以及Keil、Maplab等軟件整合使用,達(dá)到了更好的仿真效果。
Proteus軟件真正實(shí)現(xiàn)了在計(jì)算機(jī)上完成從原理圖設(shè)計(jì)、電路分析和仿真、單片機(jī)代碼調(diào)試與仿真、系統(tǒng)測試與功能驗(yàn)證到形成PCB的完整的電子設(shè)計(jì)、研發(fā)過程。
Keil C軟件是美國Keil Software公司出品的兼容單片機(jī)C語言軟件的開發(fā)系統(tǒng),它提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,采用全 Windows界面,并且多數(shù)語句生成的匯編代碼容易理解,尤其在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。一般將其中的C語言稱為C51。C51是專門為51系列單片機(jī)設(shè)計(jì)的,根據(jù)51單片機(jī)的特點(diǎn)對(duì)ANSI(標(biāo)準(zhǔn))C進(jìn)行了若干擴(kuò)展,在語法和庫函數(shù)方面存在稍許差別,使C51可以和匯編語言一樣可直接訪問51系列單片機(jī)的硬件資源,但大部分是兼容[10-11]。keil軟件目前已受到單片機(jī)愛好者、應(yīng)用者和開發(fā)者的青睞.
Keil CμVision是一款基于51單片機(jī)的軟件開發(fā)工具,提供了強(qiáng)大的項(xiàng)目管理功能,可以十分方便地進(jìn)行結(jié)構(gòu)化、多模塊程序設(shè)計(jì)。μVision集成開發(fā)環(huán)境(IDE)包括項(xiàng)目管理器、程序編輯器、Cx51編譯器、Ax51宏匯編、BL51/Lx51連接定位器、RTX51實(shí)時(shí)操作系統(tǒng)、Simulator軟件模擬器以及Monitor51硬件目標(biāo)調(diào)試器,所有這些功能都可以在μVision提供的單一靈活的開發(fā)環(huán)境中極為簡單地進(jìn)行操作[10]。它支持匯編語言、C語言及混合編程,具有強(qiáng)大的仿真功能,可以進(jìn)行硬件仿真和純粹的軟件仿真。在軟件模擬的仿真方式下不需要任何單片機(jī)硬件即可完成用戶程序仿真調(diào)試。
Proteus和Keil各自都可以進(jìn)行一定程度仿真調(diào)試,但效果不是很理想。如果我們把Proteus ISIS與Keil C配合起來使用,充分利用各自的仿真優(yōu)勢功能,使得在仿真過程中的軟件調(diào)試和硬件設(shè)計(jì)更加便捷、高效,降低開發(fā)成本。
在教學(xué)過程中,匯編語言與C51語言都講,讓學(xué)生了解匯編語言,掌握C51語言??梢杂脜R編語言完成簡單程序的設(shè)計(jì),能夠用C51語言完成簡單和復(fù)雜程序的設(shè)計(jì),學(xué)生的前序課程中學(xué)過C語言,這樣大大降低了學(xué)生學(xué)習(xí)的難度,同時(shí),學(xué)生能從對(duì)比中加深對(duì)匯編語言和C51語言的理解。
項(xiàng)目驅(qū)動(dòng)教學(xué)法是通過師生共同實(shí)施一個(gè)完整項(xiàng)目而進(jìn)行的教學(xué)活動(dòng),是圍繞項(xiàng)目展開,以項(xiàng)目開發(fā)步驟作為教學(xué)順序,將單片機(jī)理論知識(shí)點(diǎn)插入到開發(fā)項(xiàng)目的過程中,以學(xué)生為中心,以真實(shí)項(xiàng)目為基礎(chǔ),引導(dǎo)學(xué)生邊做邊學(xué),在實(shí)踐中學(xué)習(xí)。在項(xiàng)目教學(xué)中,教師不再把現(xiàn)成知識(shí)技能傳遞給學(xué)生作為教育的惟一目標(biāo),而是讓學(xué)生把看到的、聽到的、手上做的結(jié)合起來。學(xué)生在尋找某個(gè)結(jié)果過程中,學(xué)會(huì)思考,學(xué)會(huì)發(fā)現(xiàn)問題、解決問題,進(jìn)而增強(qiáng)信心、提高學(xué)習(xí)積極性、鍛煉動(dòng)手實(shí)踐能力,是引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)的方法。項(xiàng)目式教學(xué)中教師的作用是輔導(dǎo),是配角,是給各小組學(xué)生提供資料、方法,讓學(xué)生能夠針對(duì)問題主動(dòng)思考并得到解決[12]。項(xiàng)目驅(qū)動(dòng)教學(xué)法有利于實(shí)施模塊式教學(xué),實(shí)現(xiàn)階段性教學(xué)目標(biāo),培養(yǎng)學(xué)生的實(shí)際操作技能、綜合應(yīng)用能力和團(tuán)隊(duì)精神。
在單片機(jī)項(xiàng)目教學(xué)中,采用單片機(jī)系統(tǒng)虛擬仿真軟件Proteus充分仿真單片機(jī)系統(tǒng)工作情況,用Keil C軟件編程,用虛擬單片機(jī)系統(tǒng)代替實(shí)際硬件電路,程序運(yùn)行于虛擬的MCU上,使軟件調(diào)試不再依賴實(shí)物硬件電路,仿真結(jié)果達(dá)到系統(tǒng)預(yù)期效果后,還可以進(jìn)行硬件實(shí)物制作[13]。
在教學(xué)過程中,根據(jù)要講授的單片機(jī)課程內(nèi)容,按照項(xiàng)目應(yīng)用到的理論知識(shí)點(diǎn)來設(shè)計(jì)相應(yīng)的項(xiàng)目。每個(gè)項(xiàng)目設(shè)計(jì)中包括9個(gè)部分:項(xiàng)目名稱,項(xiàng)目目的,所用理論知識(shí)點(diǎn)撥,項(xiàng)目的硬件電路圖及仿真,軟件編程,項(xiàng)目注意事項(xiàng),動(dòng)手實(shí)踐焊接電路板,示例,項(xiàng)目拓展。在項(xiàng)目的實(shí)施過程中,既學(xué)到理論知識(shí),又理論聯(lián)系實(shí)際應(yīng)用,使學(xué)生明白單片機(jī)中這些硬件資源的使用方法及應(yīng)用場合[14]。
針對(duì)我們學(xué)校的單片機(jī)課程,共設(shè)計(jì)11個(gè)項(xiàng)目,分別是:定時(shí)器/計(jì)數(shù)器,中斷源,串行通信,I/O接口,I/O接口擴(kuò)展,鍵盤接口,顯示器接口擴(kuò)展,數(shù)據(jù)采集轉(zhuǎn)換系統(tǒng),步進(jìn)電機(jī)的控制(步進(jìn)電機(jī)驅(qū)動(dòng)),直流電機(jī)的控制(直流電機(jī)驅(qū)動(dòng)),交通信號(hào)燈的控制(模擬交通燈)。這些項(xiàng)目涵蓋了單片機(jī)中的所有硬件資源及擴(kuò)展的方法,軟件學(xué)習(xí)貫穿于每個(gè)項(xiàng)目中。通過這些項(xiàng)目的實(shí)施,學(xué)生對(duì)單片機(jī)的硬件、軟件及應(yīng)用都有很好的實(shí)踐,提高了學(xué)生的綜合應(yīng)用能力,為學(xué)生以后開發(fā)應(yīng)用系統(tǒng)打下堅(jiān)實(shí)的基礎(chǔ)。
單片機(jī)是一門注重應(yīng)用的課程,學(xué)習(xí)這門課最終目的在于開發(fā)應(yīng)用系統(tǒng),因此在課程結(jié)束考核階段,采用讓學(xué)生設(shè)計(jì)一個(gè)綜合、完整的單片機(jī)應(yīng)用系統(tǒng)項(xiàng)目,把學(xué)習(xí)的所有知識(shí)綜合起來,鍛煉學(xué)生設(shè)計(jì)單片機(jī)控制系統(tǒng)的實(shí)際應(yīng)用能力。具體措施如下:
(1)選擇合適的課題。教師向?qū)W生推薦若干個(gè)單片機(jī)應(yīng)用系統(tǒng)課題,學(xué)生根據(jù)自己的能力和愛好選擇其中一個(gè)課題,或者自己查找資料,和指導(dǎo)教師一起確定實(shí)用性課題。如果課題比較大的話,可以把幾個(gè)學(xué)生合成一個(gè)項(xiàng)目組,共同完成一個(gè)課題,學(xué)生的動(dòng)手能力得到鍛煉,同時(shí)也培養(yǎng)了學(xué)生的配合、溝通能力。
(2)整個(gè)項(xiàng)目的設(shè)計(jì)與調(diào)試。這種方式讓學(xué)生熟悉單片機(jī)應(yīng)用系統(tǒng)的研制步驟和方法,學(xué)生從分析系統(tǒng)入手,經(jīng)過總體設(shè)計(jì)—硬件系統(tǒng)—軟件系統(tǒng)—仿真調(diào)試—固化程序等整個(gè)流程,對(duì)每一個(gè)階段都有更加深刻的認(rèn)識(shí),對(duì)單片機(jī)應(yīng)用系統(tǒng)的開發(fā)系統(tǒng)也有一定的了解。學(xué)生自己利用所學(xué)的keil C軟件程序以及Proteus設(shè)計(jì)硬件電路,自己進(jìn)行電路焊接、軟硬件的綜合調(diào)試,并最終焊接電路板,完成作品實(shí)物。教師隨時(shí)根據(jù)學(xué)生要求進(jìn)行輔導(dǎo),幫助學(xué)生解決自己無法克服的難題。
(3)作品驗(yàn)收及點(diǎn)評(píng)。學(xué)生整理材料,做出整個(gè)開發(fā)過程的PPT進(jìn)行答辯。教師根據(jù)學(xué)生在項(xiàng)目分組中的表現(xiàn)和承擔(dān)的任務(wù),對(duì)作品進(jìn)行點(diǎn)評(píng),給出學(xué)生的成績等級(jí),同時(shí)還可鍛煉學(xué)生搜集、整理資料以及演講等能力。
現(xiàn)在單片機(jī)的學(xué)時(shí)數(shù)比較少,只能介紹最基礎(chǔ)的硬件和軟件知識(shí),后面的應(yīng)用由于時(shí)間關(guān)系也講解得很少,應(yīng)該增加該課程的學(xué)時(shí)數(shù),給學(xué)生更多的學(xué)時(shí)鞏固使用單片機(jī)。對(duì)于機(jī)電專業(yè)的學(xué)生,機(jī)械類的課程學(xué)完后,很多課都有課程設(shè)計(jì),電類課程也要引入課程設(shè)計(jì)環(huán)節(jié),否則學(xué)生學(xué)完電方面的課程,只掌握理論知識(shí)不會(huì)應(yīng)用,是一個(gè)缺憾。機(jī)電并重的學(xué)生才真正是企業(yè)所需要的機(jī)電一體化專業(yè)人才。
本文指出了單片機(jī)教學(xué)中出現(xiàn)的問題,并引入Protues和Keil C軟件,利用項(xiàng)目驅(qū)動(dòng)教學(xué)法進(jìn)行教學(xué),改進(jìn)考核環(huán)節(jié)。經(jīng)實(shí)踐證明,效果良好,學(xué)生動(dòng)手能力得到了較大的提高。在實(shí)踐過程中,可以要求學(xué)生借助于網(wǎng)絡(luò),特別是各種單片機(jī)論壇,從更多的渠道
獲得開發(fā)經(jīng)驗(yàn)與技巧,拓寬知識(shí)面。引導(dǎo)學(xué)生查閱各種單片機(jī)的芯片資料,為單片機(jī)的選型和硬件電路的搭建奠定基礎(chǔ),為開發(fā)單片機(jī)應(yīng)用系統(tǒng)起到輔助作用。單片機(jī)是機(jī)電專業(yè)的一門重要的專業(yè)課,學(xué)好、用好單片機(jī)可以提升學(xué)生就業(yè)競爭能力。
(References)
[1] 楊立林.單片機(jī)原理與應(yīng)用課程教學(xué)的實(shí)踐與思考[J].江蘇技術(shù)師范學(xué)院學(xué)報(bào):自然科學(xué)版,2009,15(2):62-66.
[2] 陳衛(wèi)國.機(jī)械電子工程專業(yè)中單片機(jī)課程群設(shè)置的研究與實(shí)踐[J].當(dāng)代教育理論與實(shí)踐,2011(5):63-65.
[3] 許超,吳新杰,張丹.基于Proteus和Keil的單片機(jī)課程教學(xué)改革[J].遼寧大學(xué)學(xué)報(bào):自然科學(xué)版,2011,38(1):27-29.
[4] 焦振宇.淺談新形勢下我國高校“單片機(jī)”教學(xué)的課程改革[J].高教論壇,2005(1):102-104.
[5] 王曉榮,權(quán)義萍,張印強(qiáng).基于C語言的“單片機(jī)”教學(xué)方法[J].中國電力教育,2009(6):96-97.
[6] 石明江,顧亞雄,張禾.單片機(jī)原理與應(yīng)用課程教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)教育,2011(6):11-13.
[7] 劉燎原,孫秋波.Proteus軟件在單片機(jī)項(xiàng)目教學(xué)中的應(yīng)用[J].徐州建筑職業(yè)技術(shù)學(xué)院,2009,9(2):63-65.
[8] 周潤景,張麗娜.基于PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006:154-202.
[9] 周潤景,袁偉亭,景曉松.Proteus在 MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2006.
[10] 張齊,朱寧西.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)[M].北京:電子工業(yè)出版社,2009:70-75.
[11] 殷士勇.Keil和Proteus在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2009,26(6):567-570.
[12] 張富貴,黃海松,呂敬堂,等.單片機(jī)設(shè)計(jì)性實(shí)驗(yàn)與工程實(shí)踐能力的培養(yǎng)[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(2):135-138.
[13] 曾成,伍萍輝,劉艷萍.基于虛擬硬件環(huán)境的單片機(jī)原理與應(yīng)用實(shí)驗(yàn)開發(fā)[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(2):91-93.
[14] 楊明欣,鄭郁正,趙建,等.結(jié)合電子設(shè)計(jì)競賽進(jìn)行單片機(jī)課程改革[J].實(shí)驗(yàn)科學(xué)與技術(shù),2007,5(4):94-97.