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