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