摘 要: 《單片機應用技術》是計算機專業一門重要的專業課程,隨著計算機技術的迅猛發展,教科書與現狀差距愈來愈大,這就要求我們廣大計算機專業課老師緊跟時代的脈搏,加大課程改革,這樣才能取得好的教學效果。
關鍵詞: 單片機應用技術 教學 改革“五化”
近年來,我在從事計算機專業《單片機應用技術》課程的教學工作時,愈來愈感受到單片機應用技術的教科書與現狀之間的差距逐漸加大。為此我特提出五個方面的問題,以鑒同行。
一、教學內容應該“硬件化”
這是個觀念問題。學校中的大多數教師把《單片機原理及應用》這門課當做一門“匯編語言”來教,往往陷在指令系統這一章中拔不出來,既浪費了大量課時,又嚴重偏離了方向。
實踐證明,單片機應用的工夫不在對單片機本身的掌握上,而在對單片機控制對象的了解上。搞單片機開發的成功者,往往不是計算機專業畢業的人,而是某行業中搞自動化控制的人。即熟悉電路硬件的比熟悉程序軟件的干得更有出息。
我們一定要把這門課的重點放在“應用”兩字上。對指令系統,我認為花4個課時就足夠了,更應該完全刪除教材中關于單片機程序設計結構的專門討論章節。要知道游泳是在水中學會的,根本沒有必要在岸上花大量的課時去訓練劃水的基本動作。一句話,在這門課的教學過程一定要突出硬件的地位,樹立軟件為硬件服務的觀念。
二、存儲器擴展已經“單片化”
在計算機技術發展的初始階段,存儲器曾是個昂貴的資源,而今的存儲器制造技術已今非昔比。單片達兆位級的EPROM、FlashROM已比比皆是,RAM的單片容量則更不用說了。因此像8051單片機這類最大只支持64K存儲空間的機種,存儲器一片就能到位。這個技術現狀反過來指導我們,在教學時可刪除現有教科書中大篇幅的多片存儲器擴展技術(這是一個突出的知識陳舊化問題)。
教過這門課的老師都知道,多片存儲擴展時,如果不用全地址譯碼法,則會造成同一物理地址空間映射多個邏輯地址空間甚至出現存儲器地址之間的交疊。在教學中這部分內容是非常難于讓學生理解的,在工程中也會給程序設計帶來不便,還可能留下隱患。而存儲器“單片化”結構,可徹底避免這一現象。所以,扔掉“單片機存儲器擴展”這一單元,不僅原來的難題不再是難題,而且可節約大量課時。
三、程序設計可以“模塊化”
歷來單片機以“短小精干”著稱,因此開發應用系統十分珍惜資源(包括硬件與軟件),十分強調簡短。為此開發人員往往為“簡之再簡”而絞盡腦汁,有時不得不用一些“技巧”,使得設計出來的程序可讀性差,移植性差。所以在這個領域以前是不提“結構化”設計的。
現在由于硬件技術的發展,有些情況正在變化。從應用開發的環境來看,應用領域越來越廣泛、技術更新越來越快、開發周期必須越來越短。因此,開發人員不可能在每一產品的程序設計上精雕細琢地花費大量時間,更何況這個領域主要是非計算機專業的人員在工作。面對這種形勢,要求單片機程序設計也要能結構化、模塊化、乃至對象化,以便實現程序的交流和重用。
從單片機技術本身的發展來看,資源的不斷擴大,已經允許我們在單片機這塊“彈丸之地”上做一些像桌面系統上的事情。
程序模塊化就是子程序化,子程序化就意味著堆棧的開銷加大。以往,8051單片機的內存,包括堆棧在內用戶真正可用的只有80個字節。現在我們可以用像8052這樣的產品,用戶實際可用的內存一下又多了128個字節。像臺灣華邦公司W77E58等51系列型號,片內還帶1024字節的RAM供用戶使用。
程序模塊化當然還會增多“履行公務”性的代碼,即“過門關節”變多。以往的觀點,這會使程序的運行時間加長,與單片機宗旨相違背。現在我們可以選用主頻33MH。甚至60MH的單片機,還怕來不及嗎?另外一個因素是存貯芯片的價格平民化,使我們不再怕程序太“臃腫”。
所有這些為我們在單片機應用領域里引進“結構化語言”的思想提供了有利條件。模塊化在教學上的效益就是:利用現有的成熟模塊,學生可以立即體驗單片機應用的成果。體驗完后,教師提出一些小要求,學生作些小調整,活動來些小變化……單片機教學不就成了“寓教于樂”的形式了嗎?
四、課堂教學必須“實時化”
單片機技術近年的飛速發展,特別是器件的層出不窮,要求教師時刻把準“脈搏”,及時地根據技術現狀對教學內容作出調整與取舍。
例如,在給學生介紹8051系列單片機的ROM形式時,必須及時地介紹“一次寫入式”OPT型的PIC系列單片機及帶“閃爍存儲器”的AT89系列單片機。因為它們的出現,極大地改變了單片機的應用狀況。
同理在給學生講8051的串行口時,必須及時地介紹點對點通信技術及多機通信技術,因為提供單片機與其他計算機智能儀表或設備的數據交換。是近來的流行趨勢在給學生介紹單片機的人機界面時一定要介紹點陣式液晶顯示技術,因為它的出現使單片機亦能做到“圖文并茂”;在給學生講解I/O擴展時,一定要介紹IA2C總線,因為這是一種僅兩條線的片間總線,它的應用對硬件設計模式將產生重大影響。
再有,在給學生講A/D、D/A轉換技術時,一定要介紹V/F、F/V轉換技術,因為頻率形式的量,是介于模擬與數字之間的量,在自動控制領域中有極廣泛的應用。
五、實驗調試應該“符號化”
過去的單片機實驗極其枯燥,我們編完程序后,要用查表的方法經過人工“匯編”把源程序再轉換成二進制器碼。這道工序既乏味又容易出錯。為什么會在廣泛采用了匯編語言后還要去搞機器語言呢?因為當時的開發機和實驗系統只能接受機器代碼指令的輸入。
現在則不同了,所有的開發機均可利用與PC機的實時通信,利用窗口界面在源程序級上調試。整個開發過程我們只跟“符號化”的匯編語言打交道,而根本不必知道機器碼是什么,甚至可以使用像C、BASIC這樣的高級語言進行調試。所以我們在實驗時要充分利用現在的開發手段,讓學生第一次就用聯機通訊模式調節器試程序,輕松盡快掌握技能。