譚筠梅, 李玉龍, 王履程
(1. 蘭州交通大學 國家級計算機實驗教學示范中心, 甘肅 蘭州 730070;2. 蘭州交通大學 電子與信息工程學院, 甘肅 蘭州 730070)
單片機嵌入式系統類課程是各電類專業普遍開設的計算機硬件類課程。在傳統的教學理念下,實驗課程的設置過分依賴理論教學,實驗內容多以驗證性和演示性實驗為主,無法滿足培養學生實踐能力和創新創業能力的要求,亟待對單片機課程的實驗教學內容、教學方法進行深入的研究和改革。采用實際的工程案例來驅動實驗教學,可以很好的解決這一問題[1-3]。
近年來,蘭州交通大學整合了單片機課程的教學內容,從實驗教學入手,匯聚了關于單片機的全部知識點,設計了不同的教學案例,采用多樣化的實驗教學方法,提高了課堂教學質量。教學中側重實踐能力的培養,極大地發揮了學生的學習主觀能動性,提高了學生的綜合素質和創新創業能力[4-6]。
本文設計并實現了一個基于Proteus的單片機實驗案例。案例緊跟技術發展和社會需求,以提高學生實踐能力、培養學生創新能力為出發點。案例覆蓋教學大綱所有知識點,具備一定的深度和廣度,并能充分激發學生學習興趣,鼓勵學生積極思考。
Proteus是著名的EDA工具,也是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,支持多種處理器類型。在編譯方面,Proteus支持IAR、Keil和MPLAB等多種編譯器[7-8]。使用Proteus軟件與Keil軟件結合進行單片機應用系統的仿真模擬和程序設計,可以靈活地設計多種類型的實驗項目,方便地擴展普通實驗箱無法完成的大型綜合實驗項目,降低實驗室的建設和維護成本,并能充分調動學生學習的積極性,對提高學生實踐動手能力、樹立工程意識、培養創新創業能力起到非常重要的作用。
貨車運輸超重是我國道路管理中經常遇到的問題。本案例為設計一款基于單片機技術的貨車超重監控系統。該系統不需要人員值守和專門的地磅設備就可以對路段上貨車超重情況進行監測記錄,大大減少了人力、物力的投入,減少了因車輛超載檢測引起的道路交通事故,為道路安全運行提供了保障[9-10]。
該貨車超重監控系統是一個可以綜合運用單片機技術、電子技術、傳感器技術、智能儀器及C51編程技術解決實際生活和工程問題的典型案例,通過實驗培養學生掌握單片機的基本工作原理,熟練應用C51語言編程,初步掌握常用電子元器件的工作特性以及硬件電路設計的知識,了解Proteus仿真軟件和Keil C軟件的使用方法,了解基本的基于單片機的實際應用系統開發流程。
本實驗案例要求學生設計并仿真實現一個基于單片機的貨車超重監測系統,要求學生能夠系統地運用已學過的理論知識,綜合設計并實現該系統,從而提高獨立分析問題的能力和解決實際問題的能力。學生通過對設計任務進行詳細分析,設計出合理的實現方案,完成硬件電路設計和軟件程序設計,并能在Proteus中仿真運行。
本案例采用51單片機作為系統處理的核心,利用集成壓力傳感器將機動車載重量轉換成電壓信號[11-13],然后將該電壓信號傳送到A/D轉換芯片并轉換成數字信號后計算出載重量。計算得到的載重量將送到單片機,單片機與設定的載重量作比較并判斷是否超載。若貨車超載,LCD應顯示超載的重量,蜂鳴器開始報警,同時將超重數據寫入存儲器中。
該案例的系統的功能模塊如圖1所示,其核心控制模塊是51單片機,其他模塊包括顯示模塊、報警模塊、壓力檢測模塊、A/D轉換模塊和存儲模塊[14]。

圖1 貨車超重監測系統實驗的功能模塊
通過對硬件功能模塊的劃分和系統的功能的分析,該實驗系統關鍵器件的選擇可參考表1,學生也可以根據設計需求自行選擇。系統的硬件電路及Proteus仿真圖如圖2所示。

表1 實驗案例關鍵器件型號選型

圖2 實驗案例硬件電路及Proteus仿真圖
基于51單片機的應用系統軟件一般采用匯編語言或者C語言編寫,受教學課時和學生基礎的限制,本系統采用較容易掌握的C語言編寫軟件源程序。由于Proteus軟件本身不自帶編譯調試環境,所以本系統源程序需要在Keil C下編寫,將代碼生成HEX文件,然后加載到單片機[15-16]。編寫軟件時,要求學生首先設計軟件系統整體工作流程圖,按功能劃分模塊,設計出每個模塊的工作流程圖并編寫軟件程序,最后進行軟件模塊集成。
按照系統工作的流程,軟件設計分A/D轉換模塊、存儲器讀寫模塊、數據顯示模塊、報警模塊和綜合模塊幾部分組成。
A/D轉換模塊是單片機對ADC0832的控制和數據處理模塊,使用單片機I/O引腳模擬ADC0832的相應時序進行數據交換;E2PROM存儲器讀寫模塊包含了對AT24C04AA的讀寫函數,使用單片機I/O引腳模擬I2C總線的時序操作;數據顯示模塊包含了LCD1602的動態刷新和壓力數據顯示的處理;報警模塊包含了蜂鳴器聲音音調和大小以及時長的處理;軟件綜合模塊在程序中完成A/D芯片值的采集,通過計算公式得到當前的壓力值,并將壓力值送顯示模塊顯示,同時進行相應判斷及數據存儲。
在案例實驗教學實現的過程中,指導教師不但要講解單片機應用系統的基本原理及技術難點,還要把案例分解成不同模塊,每個模塊就是一個小實驗。學生通過每一個模塊的實現最終匯集完成整個實驗。在實驗教學中,該工程案例覆蓋了單片機課程教學目標的多個知識點,既可以應用到普通的課內實驗課教學、實訓教學,也可以用到課外的開放實驗課。針對不同專業單片機課程的實驗課時和不同基礎的學生,本案例的課時可以設置為8學時或者16學時。案例的任務模塊及課時分配如表2所示。

表2 實驗案例的任務分解和課時分配 學時
在實驗教學過程中,學生容易在顯示模塊和存儲模塊的實驗中出現錯誤。顯示模塊使用的是LCD1602,存儲模塊使用的是AT24C04AA。這兩個元器件引腳數目較多、控制指令復雜,電路設計和編寫軟件驅動模塊的難度較大。為了讓學生在這兩個模塊設計和實現的過程中盡可能少出現錯誤,開課前教師會要求學生提前查閱資料,并且把所用元器件的使用手冊和基本使用示例發放給學生,讓學生提前學習每個元器件的工作原理、電氣參數及芯片封裝結構,完成系統功能需求分析,綜合思考并提出合理的實驗方案。
在硬件電路設計過程中,要求學生從整體的角度出發,從系統集成的高度設計出每個模塊的工作電路;在軟件程序編寫的過程中,要求學生改變一個主函數編寫的方法,而是采用模塊式的方法編寫程序,這樣不僅會降低程序的復雜度,也更容易查找和修改錯誤。
傳統的單片機實驗課成績評定是對每一次實驗結果進行評價;而基于案例式的實驗教學采用了新的更加客觀的評價方法,既對學習過程中每一個環節進行考核,也對整個系統的實驗完成情況和系統功能進行考核。總評成績由實驗環節成績、系統設計與運行效果成績、設計報告成績和答辯成績4部分組成,實驗考核結果分為優秀、良好、中等、及格和不及格5個級別。通過從不同角度的考核,教師可以掌握學生的學習進度和對知識的掌握情況,以便隨時調整教學進度和教學方法,更好地提高教學效果。
基于Proteus的單片機工程案例的虛擬仿真實驗設計完成后,首先應用于我校科技創新開放實驗課。這種新穎的實驗方式吸引了眾多學生積極報名學習。該實驗課程已面向全校所有專業開放,共有6個班、180名學生完成了該課程的學習,并且取得了非常好的學習效果。
在總結本項開放實驗教學經驗的基礎上,案例式教學方法已被引入課內課程,并在多個專業推廣。學生通過該課程的學習,為單片機嵌入式方向的學習、創新奠定了良好的基礎,選拔出來的學生在“博創杯”“TI杯”等全國大學生嵌入式物聯網大賽和各類創新創業大賽中取得了非常好的成績。
基于Proteus的仿真軟件實驗案例已經應用到我校多個專業的單片機課程教學中,取得了較好的教學效果,與傳統實驗相比具有明顯的優勢,實驗內容更全面、在較少的硬件投入下就可以開展大型的工程實踐類實驗項目,豐富了實踐性教學的手段。該方法不僅可以應用到單片機實驗教學,還可以推廣到嵌入式系統等其他課程。
參考文獻(References)
[1] 葉宗海.應用型本科院校單片機實驗教學改革研究[J].高教學刊,2016(13):128-129.
[2] 李蓉,葉俊民,楊艷.基于案例任務驅動的軟件項目管理課程實踐[J].計算機教育,2014(14):99-102.
[3] 孔英,褚曉廣.基于案例項目任務驅動的計算機硬件課程實踐教學[J].計算機教育,2013(6):30-32.
[4] 張同莊,胡明,郭健鵬,等.以能力為導向的單片機卓越工程師培養[J].高教學刊,2016(21):92-93.
[5] 馮洋.基于實踐創新能力培養的單片機原理及應用課程改革與實踐研究[J].高教學刊,2015(15):87-88.
[6] 馬小紅,張東波.面向創新能力培養單片機實踐教學改革[J].教育教學論壇,2016(35):93-94.
[7] 王娟.Proteus軟件在單片機專題實訓中的應用[J].實驗室研究與探索,2012,31(8):72-74.
[8] 趙月靜,張永弟,翟衛賀.Proteus和Keil C在開發單片機控制系統中的應用[J].實驗科學與技術,2013,11(2):31-34.
[9] 闞鵬飛.載運貨車超載限制系統設計[D].哈爾濱:哈爾濱工業大學,2013.
[10] 趙加信.高速公路貨車不停車計重收費研究[J].商品與質量,2016(39):109-111.
[11] 付承彪,田安紅,朱怡婷.基于壓力傳感器的數字胎壓計系統設計[J].實驗室研究與探索,2017,36(6):51-54.
[12] 鄧玉良.基于單片機實驗系統設計的稱重系統硬件設計[J].信息通信,2013(2):76-77.
[13] 劉淑波,張園,隋先輝,等.基于Proteus的氣壓報警系統設計[J].電子設計工程,2015(8):100-102.
[14] 張新,陳躍琴.51單片機開發25例:基于Proteus仿真[M].北京:電子工業出版社,2013.
[15] 邵春聲.Proteus和Keil仿真聯調在單片機課程教學中的應用[J].常州工學院學報,2015(3):75-77.
[16] 王海燕,楊艷華.Proteus和Keil軟件在單片機實驗教學中的應用[J].實驗室研究與探索,2012,31(5):88-91.