葉優(yōu)良
摘要:單片機(jī)體積小功能強(qiáng)大,廣泛應(yīng)用于各種自動控制設(shè)備,已經(jīng)成為自動化控制專業(yè)的必修課程。早期教學(xué),或因?qū)嶒灄l件不足,或因?qū)W習(xí)方法欠佳,導(dǎo)致很多學(xué)生覺得單片機(jī)是高大上,難以懂。作者根據(jù)多年的教學(xué)經(jīng)驗,提出一個教學(xué)思路:正確認(rèn)識單片機(jī),采用C51編程語言,通過項目教學(xué)法,強(qiáng)調(diào)同步實驗加深對課程知識的理解,逐步培養(yǎng)學(xué)生的單片機(jī)的開發(fā)應(yīng)用能力,讓學(xué)生輕松學(xué)懂51單片機(jī)。
關(guān)鍵詞:單片機(jī) 硬件電路 C51 程序 項目教學(xué)法
上世紀(jì)80年代誕生的單片機(jī)因其控制功能強(qiáng)大被廣泛應(yīng)用于各種電子設(shè)備,隨即國內(nèi)外各大高校掀起了學(xué)習(xí)單片機(jī)課程的熱潮。但早期課本是以芯片生產(chǎn)商提供的技術(shù)資料、微機(jī)接口技術(shù)和匯編語言作為主要內(nèi)容,可謂是深奧難懂;加上當(dāng)年實驗設(shè)備昂貴實驗機(jī)會不多,以及當(dāng)時教育模式是理論課程和實際操作課程分步進(jìn)行,導(dǎo)致大部分人對這門課程的感覺是霧里看花。今天,單片機(jī)技術(shù)飛速發(fā)展,已成為自動控制領(lǐng)域的重要技術(shù),職業(yè)院校的自動控制專業(yè)把單片機(jī)控制技術(shù)作為主干課程,對單片機(jī)掌握程度直接影響學(xué)生專業(yè)技能水平的高低。因此,怎樣讓學(xué)生輕松學(xué)懂單片機(jī),已經(jīng)成為授課教師苦思冥想的問題,本文將逐步探討讓學(xué)生輕松學(xué)懂單片機(jī)的方法。
首先,正確認(rèn)識單片機(jī)和單片機(jī)系統(tǒng)。單片機(jī)的全稱是單片微型計算機(jī),它是在一塊集成芯片上制作了計算機(jī)的主要組成部分,它根據(jù)存儲器中的程序(工作步驟表)的內(nèi)容控制其它電路工作。凡是應(yīng)用單片機(jī)控制技術(shù)的電路都可以稱為單片機(jī)系統(tǒng),控制環(huán)節(jié)的硬件電路包含最小系統(tǒng)和外圍拓展電路兩部分:最小系統(tǒng)為單片機(jī)提供最基本的工作條件(供電、時鐘和復(fù)位),外圍電路包含檢測外界狀況的輸入電路和控制電路實現(xiàn)各種操作的輸出電路。為了便于理解,現(xiàn)在用比喻的方法介紹單片機(jī)系統(tǒng):沒有燒錄程序的單片機(jī)相當(dāng)空白的大腦(不會工作的),整個單片機(jī)硬件電路像是人體,最小系統(tǒng)像是軀干部位給這個大腦提供基本生存條件,輸入電路像是眼、耳、皮膚等視覺聽覺觸覺器官,輸出電路像是手、腳、嘴巴等運動器官;單片機(jī)這個大腦是按內(nèi)部燒錄的工作步驟表工作,所謂工作步驟表就是程序員所編寫的程序;單片機(jī)這個大腦通過I/O接口接收感覺器官送來的信號,同樣通過I/O接口發(fā)送信號控制行動器官實施動作。需要注意的是人的器官是健全的,而單片機(jī)系統(tǒng)的外圍電路是設(shè)計者根據(jù)需要來設(shè)置的,可多可少,甚至是沒有輸入只有輸出。比如單片機(jī)控制臨時紅綠燈,它從不看實際交通狀況,只是按事先設(shè)定的步驟表,交替亮起紅、黃、綠三色燈,也就是說這個單片機(jī)系統(tǒng)沒有輸入電路只有輸出電路。
然后,明白單片機(jī)系統(tǒng)是怎樣工作的,明白理解硬件電路是編程的前提條件。單片機(jī)是在程序的指導(dǎo)下工作,通過檢測I/O引腳電平的變化來感受外圍電路送來的信號,通過對I/O引腳的電平置1或置0控制外圍電路完成功能操作。輸入信號的檢測和控制信號的傳輸是單片機(jī)程序完成控制的決定性因素,而信號的檢測傳輸?shù)囊?guī)則由單片機(jī)I/O口結(jié)構(gòu)、拓展芯片的結(jié)構(gòu)等硬件決定,因此理解硬件電路是編程的前提條件。很多人學(xué)單片機(jī),一頭扎在編程研究上,但到了實際項目編程時就束手無策,其原因是忽視了硬件的學(xué)習(xí)。只有看懂了硬件電路、單片機(jī)單元電路結(jié)構(gòu)方框圖、拓展芯片內(nèi)部結(jié)構(gòu)方框圖,才能理解各種芯片的功能表、控制引腳電平設(shè)置、工作時序圖,編程才能胸有成竹。
接著,選擇C51作為單片機(jī)編程語言。單片機(jī)系統(tǒng)的靈魂是存儲器里的工作步驟表,即程序員編寫的程序,編程必須使用計算機(jī)語言。早期單片機(jī)編程主要使用匯編語言,是因為匯編語言的指令與硬件緊密關(guān)聯(lián),每條指令都有固定的機(jī)器周期,在時間上可以做到精確掌控,生成目標(biāo)代碼精簡占用的存儲空間小,執(zhí)行時間短,非常適合當(dāng)時的單片機(jī)速度慢、存儲空間很小的狀況;加上匯編語言出現(xiàn)得早,當(dāng)時的程序設(shè)計人員對它是耳熟能詳,故廣泛應(yīng)用。但匯編語言指令的數(shù)量多、理解難度大、尋址方式復(fù)雜,編寫源程序的代碼較長,令無數(shù)初學(xué)者頭痛。今天,單片機(jī)的存儲空間大、速度快,已經(jīng)不再苛求代碼數(shù)據(jù)量和程序執(zhí)行速度。單片機(jī)編程語言C51,雖然程序運行時間不能精確控制,目標(biāo)代碼較多,但通俗易懂,容易掌握,程序移植性好,使得C51成為目前主流的單片機(jī)編程語言。也就是說:C51編程語言最適合初學(xué)者,有利于提高學(xué)習(xí)效率,讓學(xué)習(xí)事半功倍。
重點:項目教學(xué)法是讓學(xué)生輕松學(xué)懂單片機(jī)的關(guān)鍵所在。掌握單片機(jī)開發(fā)技術(shù),所需要的硬件和軟件方面的知識非常多。傳統(tǒng)教學(xué)法完成理論學(xué)習(xí)后再進(jìn)行實習(xí),理論知識難度大且容易混淆,以至實驗時頭腦混亂,不能做到理論指導(dǎo)實踐,導(dǎo)致難以學(xué)懂。項目教學(xué)法只學(xué)習(xí)即將用到的知識點,將實操與理論學(xué)習(xí)同步進(jìn)行,理論指導(dǎo)實踐,實踐驗證理論,可謂是“學(xué)以致用,用以促學(xué)”,極大降低學(xué)習(xí)難度,大大提高學(xué)習(xí)興趣,使學(xué)習(xí)變成輕松愉快。
通過項目教學(xué)法,將數(shù)量龐大的硬件和軟件知識分解到每一個項目中,逐個掌握,逐項應(yīng)用,逐步提高學(xué)生應(yīng)用單片機(jī)的能力。單片機(jī)開發(fā)人員需要掌握的軟硬件知識非常繁多,首先要理解全局硬件電路、單片機(jī)單元電路方框圖和芯片結(jié)構(gòu)方框圖;接著理解信號的傳輸途徑、拓展芯片的功能表和控制引腳電平設(shè)置、工作時序圖、控制寄存器的設(shè)置、定時器初始值設(shè)置等知識;還需掌握眾多軟件知識,如各種變量、數(shù)組、各種運算符、語法規(guī)則、程序結(jié)構(gòu)、while、for 、if、switch指令,以及如何用位操作指令模擬時序的方法等。面對如此龐大的知識量,項目教學(xué)法成功的把這個“大饅頭”分成很多小塊,逐快吞咽。因為單個項目只學(xué)習(xí)即將用到的一兩個知識點,逐個學(xué)習(xí)單片機(jī)項目,就能逐項掌握相關(guān)軟硬件專業(yè)知識。
單片機(jī)項目教學(xué)法關(guān)鍵點是實踐。單片機(jī)是控制硬件電路的,非常注重實際效果,實驗成為重要教學(xué)環(huán)節(jié)。硬件電路實驗和軟件仿真實驗,使單片機(jī)項目教學(xué)法實驗環(huán)節(jié)非??尚?,保障實際操作跟理論學(xué)習(xí)同步進(jìn)行,讓學(xué)生成為學(xué)習(xí)的主導(dǎo)者,快樂學(xué)習(xí)。硬件電路實驗是指利用學(xué)校的實驗箱或開發(fā)板進(jìn)行實驗,首先讀懂電路圖,然后參照給定的例程,在KEIL軟件上編寫自己的程序并編譯,最后通過燒錄軟件將目標(biāo)程序燒錄到單片機(jī)內(nèi),通電實驗。軟件仿真實驗是指在電腦上利用PROTEUS軟件(需要和KEIL聯(lián)動)進(jìn)行仿真實驗,它是一個虛擬實驗室,有很多種類的虛擬器件,不受實際條件限制的進(jìn)行各種實驗,我們只需在原理圖窗口繪制電路圖,程序代碼窗口編寫軟件,然后進(jìn)行仿真實驗。初學(xué)者每在書本上完成一個項目的學(xué)習(xí),即刻實驗觀看控制效果,加深對知識的理解,提升動手能力。
項目教學(xué)法可以快速提高初學(xué)者的單片機(jī)開發(fā)能力。通過給學(xué)生布置設(shè)計課題,引導(dǎo)學(xué)生從分析設(shè)計意圖和項目功能開始,然后去設(shè)計硬件電路,研究硬件電路所用芯片,構(gòu)思程序的流程圖,設(shè)置控制寄存器,編寫程序代碼(用位操作指令模擬工作時序),進(jìn)行多次實驗,逐步實現(xiàn)項目功能。通過項目開發(fā)練習(xí),學(xué)生能夠把所學(xué)的知識及時應(yīng)用,提升電路設(shè)計和軟件編程能力,快速掌握單片機(jī)專業(yè)知識。
本文從正確認(rèn)識單片機(jī)系統(tǒng)及其工作過程開始,提出理解硬件電路是編程的前提條件的觀點,選擇C51作為編程語言,運用項目教學(xué)法,將眾多軟硬件知識分解逐個掌握,通過實驗逐漸培養(yǎng)單片機(jī)應(yīng)用能力,讓學(xué)生輕松學(xué)懂單片機(jī)。
參考文獻(xiàn):
趙興宇等 單片機(jī)的應(yīng)用與設(shè)計(項目式教學(xué))