夏鯤 陳國平
【摘要】通過總結單片機理論、實驗和課程設計的教學實踐經驗及教學研究心得,以某高校電子電氣信息類本科專業為例,分析了如何完善單片機課程體系建設,如何在課程教學過程中通過理論與實踐相結合加強大學生對理論的深入理解,構建系統化的教學工作。
【關鍵詞】單片機 理論與實驗 課程設計 協同教學
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2016)31-0243-01
引言
單片機理論、實驗和課程設計相關課程體系是各高等院校電子電氣信息類工科專業基礎專業課程設置的重要組成部分,為大學生深入學習掌握單片機的基本原理,設計方法,實踐應用等打下基礎。大多數理工科高校開設這些課程,對學生進行綜合培養。對于單片機的理論與實踐教學,既可以選擇匯編語言,也可以選擇C語言進行。在高校的實際教學工作中,大多數老師是選擇匯編語言進行教學的,因為從匯編語言入手能更好的掌握單片機的硬件資源使用原理等,也有部分老師是直接使用C語言進行教學,認為匯編語言編程過于繁瑣,而C語言編程能夠在將來的實踐工作中得到更好的應用。本文通過總結作者多年來在單片機相關課程教學積累的經驗和教學研究心得,以51單片機理論、實驗和課程設計教學為例,對如何在使用不同編程語言進行繁瑣和復雜的教學中使學生更好地掌握單片機知識體系進行了探討。
1.單片機理論教學
1.1 匯編語言理論教學
單片機是一個把中央處理器CPU、數據存儲器RAM、程序存儲器ROM、并行IO接口、串行IO接口、定時器計數器、時鐘振蕩電路等集成在一起的控制芯片,硬件資源簡單且豐富,也易于擴展外圍電路,所以單片機的學習側重點首先在于掌握硬件資源使用方法。因為匯編語言實際上是CPU能夠識別的機器碼的助記符,從匯編語言入手開始教學,能夠使學生更好地掌握單片機的硬件資源使用原理。使用匯編語言編程可以很方便地對單片機存儲器地址直接進行存取操作,也能很方便地對存儲器地址進行整體安排分配,前提是對單片機硬件資源非常熟悉,能夠靈活調用。比如指令MOV、MOVC和MOVX可以分別訪問單片機內部的數據存儲器、程序存儲器和外部擴展的數據存儲器。匯編編程的缺點在于進行算術運算和邏輯判斷跳轉等比較繁瑣。
1.2 C語言理論教學
國內的單片機C語言程序設計教程多數的編排都會在前面開始的章節介紹單片機硬件資源以及匯編語言指令系統,然后以更大篇幅講述C語言程序設計語法和針對硬件資源的編程。針對單片機的C語言程序設計語法與計算機C語言高級程序設計編程語法基本一致,而針對硬件資源的指令又類似于匯編語言指令系統,所以應該可以說單片機C語言程序設計是計算機C語言高級程序設計和匯編語言指令結合體。要掌握好C語言編程依然要對于單片機的硬件資源理解透徹并能靈活調用。但是C語言針對硬件資源的指令與匯編語言指令比較起來卻不如匯編那么直觀,也不如匯編指令那樣更加有助于單片機硬件體系結構的理解。
為了使初學者能夠更好地理解單片機硬件體系結構,掌握硬件資源的調用,選擇匯編語言進行教學顯然是更加合適的。
2.單片機實驗教學
單片機作為電子電氣信息類專業的一門專業基礎核心課程,比某些專業基礎課程如電路原理、數字電子技術、模擬電子技術等更加注重編程實踐的練習。單片機實驗課程一般都是配套安排在單片機理論課程的下半學期,這樣能夠更加有助于理論的理解和掌握。作為理論課程的配套課程,單片機實驗課程在教學上必須與理論課程保持一致性,選擇匯編語言進行實驗教學就是必然和最好的選擇。
在實驗設備的選擇上,學院實驗室早期購置過星研單片機Star ES51實驗箱,后來又購置了大批光佑STC開發板,可以兩者選其一。
早期的單片機實驗都是集中在實驗室進行,兩人共用一臺實驗箱,通過連線和讀寫配套程序仿真運行來進行實驗。這樣的實驗有一些明顯的不足,比如配套程序調用了很多鍵盤顯示的子程序,而這些子程序沒有直接給出來,實驗箱的很多硬件電路連接也沒有給出詳細原理圖,所以造成了實驗結束后多數學生也是對實驗原理和編程似懂非懂的結果。
有了STC開發板后,每個學生可以分配一塊開發板,各自進行單片機的編程仿真實驗,還可以將開發板帶回宿舍課后繼續練習,實驗可以更方便地進行。實驗開發板的原理圖清晰,例子程序豐富,通過讀寫配套例程可以較好的掌握單片機的基本原理。
顯然使用匯編語言選擇STC開發板進行單片機實驗是實驗教學的最好安排。實驗課程的要求注重于單片機基礎知識的掌握和硬件資源的調用。
3.單片機課程設計教學
單片機課程設計的安排是為了進一步提高學生的實踐能力,所以課程設計的教學就不再局限于基本原理的掌握,而是必須達到更高程度的實踐效果。匯編語言編程有利于對基礎知識的理解和單片機硬件資源的掌握,卻不利于復雜邏輯的處理。所以在學生已經基本掌握了基礎理論的情況下,課程設計選擇C語言編程,可以讓學生更加方便的進行復雜程序的編寫。
單片機課程設計實踐項目內容的安排上,必須注重單片機內部和外部硬件資源的綜合調用,以便完成具有實際意義的綜合程序的編寫。課程設計實踐項目安排了可以綜合調用單片機I/O口資源進行鍵盤掃描數碼管顯示以及中斷處理的實現計算器功能的程序編寫,和能夠使用I2C總線進行通訊的AD/DA處理的程序編寫。這兩種程序的綜合度和復雜度都遠遠大于單片機實驗題目的要求。從實踐結果來看,通過這種綜合性復雜程序的編寫練習,能夠大大提高學生的開發設計實際項目的動手實踐能力。
結束語
在我國大力實行人才戰略強調人才培養的大環境下,本文作者所在高校也響應國家號召加強本科生培養,實施卓越工程教育,取得了積極可喜的成績。本文積極探索和提高單片機理論實驗課程設計協同教學的方法,取得了長足的進步和發展,也得到了學生的高度認同。以此方法培養出來的本科生在參加全國大學生電子設計競賽的過程中也取得了驕人的成績。本文作者經驗和方法也可以為兄弟院校相關專業的教學提供參考和借鑒。
參考文獻:
[1]李朝青.單片機原理及接口技術(第4版),北京航空航天大學出版社,2013.7
[2]郭天祥.新概念51單片機C語言教程——入門、提高、開發、拓展, 電子工業出版社,2009.1
[3]彭偉.單片機C語言程序設計實訓100例——基于8051+Proteus仿真(第2版), 電子工業出版社,2012.10
[4]張毅剛.單片機原理及接口技術(C51編程),人民郵電出版社,2016.4
[5]王東鋒.單片機C語言應用100例(第2版), 電子工業出版社, 2013.5