聶婭琴
摘 要:單片機課程設計是電子、自動化等專業學習中重要的必修實踐課。在對單片機課程設計的安排中包括:對匯編語言或C語言的學習,對基于Keilc51的編譯和調試的學習,對電路仿真聯調的學習,程序燒寫的學習等,以使學生掌握應用單片機的技術,從而完成電路功能的設計。本文將對基于軟件仿真和硬件電路聯調的單片機課程設計的流程進行介紹,并對其進行總結。
關鍵詞:單片機課程設計;軟件仿真;硬件電路聯調
在開發單片機嵌入式系統時,使用最多的軟件就是Keilc51軟件,此軟件是由Keil公司研發出來的,軟件以uVision2為開發平臺,具有的功能包括項目管理、編碼、程序生成器等。Keilc51的優點在于:其界面的友好性較高、操作便捷,支持對匯編語言、C語言及混合語言的編程、編譯和調試工作,可以在很大程度上縮短設計周期,在對程序進行修改時也是很方便的。與此同時,Keilc51還能夠加載Proteus軟件的VSM仿真器,加載之后就可以和Proteus軟件進行聯機調試。
一、課程設計流程
1.編寫相關指導文件
在對課程設計著手之前,需要對課程設計的流程進行文檔編寫,為扎實掌握單片機技術打下基礎。相關指導文件包括:單片機項目開發的相關教程和例程材料,Keilc51和Proteus軟件的教程和例程材料,單片機課程設計完成程度的標準,課程設計大綱等。
2.選擇題目
在制作課程計劃時,需要根據每個章節內容的不同和課程進展程度對學生的實際學習情況進行考量,通過對學生掌握情況的判斷再對課程設計進行擬題。課程設計的題目包括針對各章內容的,也包括針對綜合應用的:關于MSC-51與A/D轉換方面的課程設計題目,關于MCS-51串口方面的課程設計題目,關于定時器與中斷方面的課程設計題目,關于I/O接口方面的課程設計題目,關于MCS-51的綜合使用方面的題目等。除此之外,還要列出詳細的元件表,供學生選擇和參考,并對課程設計題目的實現提出相應的具體要求。
3.使用仿真軟件和實現電路功能
在課程設計實現中,教師可指導學生分組進行,根據學生所選題目對學生如何在軟件和硬件等方面進行設計給予指導,以完成設計的初步內容。在對學生進行指導時,可按照以下步驟進行:
(1)繪制程序流程圖,可以使用Visio或Word進行繪制。學生在繪制程序流程圖時,不但要依據所選題目的設計要求,還要結合教師的指導內容進行繪制,為接下來的程序設計做鋪墊。
(2)設計硬件電路,可以使用Proteus軟件進行設計。在這一步驟中,首先要對Proteus軟件進行學習,在掌握基本應用原理和方法的基礎上,再依據設計要求設計電路。在學習Proteus軟件的基礎上,由教師組織學生先進行軟件的實際操作學習,需要學生掌握的內容有:建立工程文件、選取和使用元件、連接電路和進行調試運行等。
(3)編寫程序和編譯調試,根據上一步驟得到的硬件電路使用匯編語言編寫源程序,再在Keilc51軟件中進行編譯和調試。教師要指導學生,讓他們依據課程設計要求把編寫好的匯編代碼導入到Keilc51軟件中,進行編譯調試。
(4)聯合調試,對Proteus軟件和Keilc51軟件進行聯合調試。將在Proteus中畫好的原理圖在ISIS上打開,在Proteus軟件里的DEBUG菜單中選擇use remote debug monitor選項,并對聯機仿真參數進行設置。將在第三步中編譯好的Keilc51工程文件打開,并設置相關參數:在Keilc51的project菜單中點擊進入option for target“工程名”,在DEBUG選項的右上方下拉菜單中選擇Proteus VSM Monitor-51 Driver,并設置聯機仿真參數。
4.面包機設計和電路功能的實現
在這一階段,教師要先組織學生對集成芯片的用途和管腳功能進行學習,之后再在面包板上建電路,電路連接無誤后,使用編程器將程序燒寫到單片機的CPU上,最終使電路功能得以實現。
5.實行課程設計考核答辯制
教師采用答辯制的形式對學生的課程設計進行考核,在答辯中真正判斷出學生對課程設計的體悟到底有多深。
二、成果總結
本課程設計將軟件和硬件的使用集合了起來,完成了對單片機的開發設計,在實踐過程中取得了良好的結果,讓學生對軟件電路、硬件電路以及軟硬件聯調設計和面包板設計都有了更加深入的了解。
1.理論與實踐結合
在教學中,不僅要將學生的實際情況與學習內容結合起來,還要單片機學習中各個章節的內容和實際動手操作結合起來。在本課程設計中,擬定了MSC-51與A/D轉換、MCS-51串口、定時器與中斷、I/O接口、MCS-51的綜合使用等方面的數十個設計題目,并對課程設計提出了具體要求。
2.讓學生告別“眼高手低”
仿真聯調的結果雖然不能完全代表在實際情況中的結果,但是在很大程度上已經實現了電路設計的功能在虛擬情景中的實現,為判斷抉擇提供依據。根據仿真聯調的結果,我們可以在硬件操作中實際運行,通過這種方式,可以對仿真結果的正確性和準確程度進行校正。在學生進行實踐之前,要讓學生對集成芯片的芯片用途和管腳功能有所了解,之后在面包板上建電路,然后將程序通過編程器燒寫到單片機的CPU上,這樣就可以完成對電路功能的實現了。在課程設計的一系列環節中,學生既可以學習到各環節所需工具的相關知識,又可以提高學生的動手能力,增強學生的學習積極性。
3.對能力的培養
在實踐課程設計的過程中,通過繪制流程圖、畫電路圖和編程等,可以鍛煉學生有步驟地實現目標的能力;通過要求學生對程序進行標注,可以有效鍛煉和提高學生的編程能力,增強他們獨立思考的能力。
先進和完善的軟件能夠使硬件的運行達到更好的效果。在單片機課程設計中引入軟件,可以使學生在了解和掌握單片機的設計流程的基礎上,熟悉聯調的技巧與方法。與一般的單片機仿真軟件不同,在課程設計中所使用的仿真軟件除了能仿真單片機CPU的實際情形,還能仿真單片機周邊電力和未參加工作的電路情況。此仿真實驗能夠很好地將實驗和工程銜接起來,仿真結果的無誤將為電路的實際實現提供重要依據。同時這樣的課程實訓也是工程師的最基本實踐內容,這也為學生今后的學習和工作奠定了基礎。
參考文獻:
[1]喬建華.李臨生.Proteus在單片機教學中的應用分析[J].電氣電子教學學報,2009,2(6):24-25.
[2]陳淑芳.基于51單片機的教學實驗系統的設計與開發[D]青島:中國海洋大學,2011.
[3]吳慧芳,陸茵.“單片機原理及應用”課程設計引入Proteus軟件的實踐[J].中國電力教育,2010,5(9):123-124.
[4]彭小峰.雷李.基于Proteus和Keil的整合建構單片機虛擬實驗室[J].重慶工學院學報(自然科學版),2009,4(11):67-68.
[5]李海鯤.Proteus在單片機課程設計中的應用[J].電腦知識與技術,2010,6(16):62-63.