王 瑾,袁戰(zhàn)軍
(1.陜西工業(yè)職業(yè)技術學院 信息工程學院,陜西 咸陽 712000;2.陜西國際商貿學院 電子系,陜西 咸陽 712046)
虛擬仿真技術在單片機課程教學中的應用
王瑾1,袁戰(zhàn)軍2
(1.陜西工業(yè)職業(yè)技術學院 信息工程學院,陜西 咸陽712000;2.陜西國際商貿學院 電子系,陜西 咸陽712046)
針對以往單片機課程教學中存在的問題,提出了將虛擬仿真技術應用到該課程實踐教學中。通過三個Proteus仿真實例,詳細介紹了虛擬仿真技術在單片機課程教學中的實現(xiàn)過程,包括系統(tǒng)仿真電路設計、軟件編程和交互仿真。實踐結果表明,虛擬仿真技術的應用增加了單片機課程教學的直觀性、可視性,激發(fā)了學生的學習興趣和創(chuàng)新能力,提高了單片機課程的教學質量;同時,還有效地縮短了單片機系統(tǒng)的研發(fā)周期,降低了電子元件的購買費用。
虛擬仿真技術;單片機課程;Proteus軟件;Keil軟件
《單片機原理及應用》課程是高校電子信息工程、電氣自動化和計算機等相關專業(yè)的一門重要專業(yè)基礎課。在課程教學中通常按照先介紹單片機內部資源和基本組成,再講解單片機基本指令和編程方法的步驟進行;由于該課程內容較抽象并且前半部分理論知識過多,在實際教學中常常使學生感覺枯燥,失去學習興趣,嚴重影響了課堂教學效果[1]。
為了提高《單片機原理及應用》課程的教學質量,在教學中引入了虛擬仿真技術,采用項目驅動法,通過由淺入深的案例講解單片機的硬件電路設計和軟件編程方法。例如:在虛擬仿真環(huán)境下,通過用一個端口實現(xiàn)對LED閃爍控制的案例,來講解單片機最小系統(tǒng)的組成和編程方法,并通過在虛擬仿真軟件和Keil軟件中的系統(tǒng)仿真聯(lián)調,使學生不但掌握了基本指令的功能,還親眼看見了系統(tǒng)運行結果,激發(fā)了學生的學習興趣,保證了教學效果[2]。
目前主流的虛擬仿真軟件有Multisim和Proteus等軟件。Multisim是由NI公司推出的一款仿真軟件,它包含電路原理圖的圖形輸入、電路硬件描述的語言輸入功能,具有豐富的仿真分析能力,適用于電工電路、通信電路等仿真。Proteus是Labcenter Electronics公司研制的一款電路設計與仿真軟件,它包括了ISIS、ARES等模塊,ARES模塊的功能是用來完成PCB設計,而ISIS模塊的功能是用來完成電路原理圖的布圖和仿真;由于Proteus軟件具有豐富的器件資源和完美的仿真功能,可以用來仿真和分析各種模擬電路與集成電路;同時,Proteus軟件還提供了大量模擬與數(shù)字元器件和外部設備,其中包括了各種虛擬儀器(如電壓表、電流表、示波器和信號發(fā)生器等),特別是它還能對單片機及其外圍電路組成的綜合系統(tǒng)進行交互仿真,因此,在單片機教學中主要使用Proteus軟件來進行虛擬仿真實驗[3]。
在單片機教學中,虛擬仿真實驗需要通過Proteus軟件和Keil軟件的共同配合來實現(xiàn)。首先,根據(jù)設計要求在Keil軟件中進行系統(tǒng)編程和調試,生成.HEX文件;接著,在Proteus環(huán)境下搭建系統(tǒng)硬件電路模型;然后,將.HEX文件導入系統(tǒng)硬件電路模型中,進行系統(tǒng)交互仿真,觀察運行效果。注意在單片機系統(tǒng)軟件開發(fā)時,雖然匯編語言或C語言均可使用,但由于C語言編程可以縮短開發(fā)周期,提高開發(fā)效率,并且程序易于移植,所以目前主要使用C語言進行編程。下面通過3個仿真實例來介紹如何利用虛擬仿真技術實現(xiàn)單片機教學。
2.1單個LED閃爍控制仿真實例
實例要求:用AT89C51單片機的P1.0引腳控制單個LED的閃爍,并通過軟件參數(shù)調整實現(xiàn)LED閃爍頻率調節(jié)。具體實現(xiàn)過程如下:
1)根據(jù)要求在Proteus ISIS編輯區(qū)內進行系統(tǒng)仿真電路設計,電路如圖1所示。設計電路講解時,要告訴學生必須先搭建單片機最小系統(tǒng)(包括時鐘電路、復位電路等),才能保證系統(tǒng)正常工作;接著,用P1.0引腳外接一個LED,通過控制P1.0腳的輸出電平實現(xiàn)LED的閃爍。
2)在Keil軟件中實現(xiàn)編程設計。通過硬件電路分析啟發(fā)學生思考“既然LED閃爍由P1.0高、低電平控制,那么閃爍頻率如何控制?編程如何實現(xiàn)?”,使學生自然想到LED閃爍頻率可由P1.0引腳輸出高、低電平的切換頻率來控制,編程時可在 P1.0引腳電平取反后調用一段延時子程序 delay (uchar n),通過改變n值控制LED的閃爍頻率,并畫出系統(tǒng)程序流程,如圖2所示[4]。該程序先進行系統(tǒng)初始化,并給n賦初值;然后給P1.0引腳電平取反使LED燈交替亮、滅,并調用延時子程序使該狀態(tài)保持一段時間;隨后每當延時時間到就給P1.0引腳取反,依次循環(huán)。
圖1 單個LED閃爍控制電路圖Fig.1 Circuit diagram of single LED flashing control
3)在Proteus環(huán)境下,將在Keil中生成的.hex文件加載到AT89C51單片機上,進行仿真調試并觀察程序運行時LED的亮、滅情況;同時,通過對延時子程序中n值的修改,觀察LED燈的閃爍頻率變化。
圖2 單個LED閃爍控制的流程圖Fig.2 Flow chart of single LED flashing control
2.2流水燈控制系統(tǒng)仿真實例
實例要求:用AT89C51單片機的P2口控制8只LED的亮滅,要求由最左邊那只LED開始先從左到右依次點亮1只LED;當最右邊那只LED亮后,再從右到左依次點亮1只LED;然后,循環(huán)進行以上兩個過程,產(chǎn)生左右來回循環(huán)的流水燈控制效果[5]。具體實現(xiàn)過程如下:
1)首先在Proteus環(huán)境下設計流水燈控制系統(tǒng)仿真電路,如圖3所示。電路中,將8只LED(D1-D8)的陽極分別與P2.0-P2.7引腳相連,D1-D8的陰極分別通過限流電阻R2-R9后共地,LED為共陰極接法[6]。
2)接著,在Keil軟件中編寫、調試程序。通過硬件電路分析可知,要使某只LED亮而其余LED滅,只需P2口中控制該只LED的引腳輸出高電平其余引腳輸出低電平即可。當8 只 LED從左到右點亮時,P2口需要依次輸出 00000001、00000010、00000100、……、10000000;當從右到左點亮時,P2口需要依次輸出01000000、00100000、……、00000001;根據(jù)以上分析,給出流水燈控制程序流程,如圖4所示。程序先進行系統(tǒng)初始化,給P2口賦值0x01使D1發(fā)光;然后,將P2口內容左移一位,并調用延時子程序;接著,判斷是否滿足循環(huán)左移結束條件,是否已循環(huán)左移7次,不滿足條件 (未到7次)則繼續(xù)左移,否則進入循環(huán)右移。在循環(huán)右移過程中,不斷給P2口內容右移,并調用延時子程序,然后進行循環(huán)右移結束條件判斷;不滿足條件則繼續(xù)右移,滿足條件轉到循環(huán)左移過程,不斷重復上述過程。
3)最后,在Proteus中仿真運行,觀察8只LED先從左至右又從右至左循環(huán)點亮的過程,不斷重復。
2.3模擬交通燈控制系統(tǒng)仿真實例
實例要求:模擬十字路口交通信號燈的切換和控制過程,本設計要求選用12只LED分成東、西、南、北方向4組,每組均有1只紅色、1只黃色和1只綠色LED指示燈,用它們來模擬每個路口紅燈、黃燈和綠燈的交通指示[7-8]。具體實現(xiàn)過程如下:
1)先在Proteus環(huán)境下設計LED交通燈控制系統(tǒng)仿真電路,如圖5所示。由于南北方向路口交通指示情況相同,東西方向交通指示情況相同,因此用單片機P0.0-P0.2引腳分別控制東西方向紅、黃和綠燈,用P0.3-P0.5引腳控制南北方向紅、黃和綠燈;同時12只LED均為共陽極接法,當P0.0-P0.5引腳有低電平輸出時,其所控制的LED點亮。
圖3 流水燈控制系統(tǒng)仿真電路Fig.3 System simulation circuit of the running water lights control
圖4 流水燈控制程序流程圖Fig.4 Flow chart of the running water lights control program
圖5 LED交通燈控制系統(tǒng)仿真電路Fig.5 System simulation circuit of the LED traffic light control
2)按照實際十字路口紅綠燈切換情況,程序共設計了四個狀態(tài),狀態(tài)1:東西方向綠燈亮,南北方向紅燈亮;狀態(tài)2:東西方向黃燈閃爍且綠燈滅,南北方向紅燈亮;狀態(tài)3:南北方向綠燈亮,東西方向紅燈亮;狀態(tài)4:南北方向黃燈閃爍且綠燈滅,東西方向紅燈亮;并按照狀態(tài)1到狀態(tài)4的過程循環(huán)執(zhí)行,LED交通燈控制程序流程如圖6所示。
3)最后,在Proteus中進行仿真,觀察12只LED模擬十字路口交通信號燈的切換和控制過程,并可通過改變每個狀態(tài)所調用延時子程序delay(uchar n)中參數(shù)n的值,實現(xiàn)十字路口紅綠燈持續(xù)時間控制,從而有效調節(jié)各路口通行時間。
圖6 LED交通燈控制程序流程圖Fig.6 Flow chart of the LED traffic light control program
文中針對以往《單片機原理及應用》課程教學中,存在著學生學習興趣不高、課堂教學質量差等情況,提出了將虛擬仿真技術引入本門課程的實踐教學環(huán)節(jié)。通過近幾年來的教學實踐證明:虛擬仿真技術的使用,提高了《單片機原理及應用》課程教學的直觀性、可視性,激發(fā)了學生對單片機系統(tǒng)設計和開發(fā)的興趣,培養(yǎng)了學生的實踐動手能力;甚至有許多同學通過本門課程的學習后,購買了單片機開發(fā)板,下載了單片機視屏教學資料,還積極參加了各種大學生科技創(chuàng)新項目活動和單片機系統(tǒng)設計大賽,并取得了優(yōu)異成績。同時,該技術的使用還可以有效地縮短單片機系統(tǒng)的研發(fā)時間,降低電子元器件的購買費用。
[1]李云勝.PROTEUS在電子實驗教學中的應用[J].信息化研究,2010,36(4):58-60.
[2]王超,楊蓮紅.Proteus仿真軟件在單片機實踐教學中的應用[J].現(xiàn)代電子技術,2014,37(14):84-87.
[3]孫浩.PROTEUS軟件在設計電子電路中的應用[J].儀表技術,2009(8):74-75.
[4]王凡.Proteus在電子信息類畢業(yè)設計中的應用與研究[J].實驗技術與管理,2014,31(4):112-114.
[5]王自珍.基于Proteus單片機仿真的舵機控制設計[J].電氣自動化,2013,35(4):79-81.
[6]洪連環(huán).基于Proteus的液晶溫度顯示器仿真設計[J].電子設計工程,2011,19(5):186-189.
[7]吳凌燕.基于Proteus的單片機仿真設計[J].儀表技術,2011,(7):31-33.
[8]吳小花,吳先球.Proteus電路設計與仿真在教學中的實踐[J].計算機系統(tǒng)應用,2010,19(2):201-204.
The application of virtual simulation technology in the teaching of single-chip microcomputer course
WANG Jin1,YUAN Zhan-jun2
(1.College of Information Engineering,Shaanxi Polytechnic Institute,Xianyang 712000,China;2.Department of Electronics,Shaanxi Institute of International Trade&Commerce,Xianyang 712046,China)
Aiming at the problems in the previous teaching of single-chip microcomputer course,this paper puts forward the application of virtual simulation technology in the practice teaching of this course.Through three Proteus simulation examples,the implementation process of virtual simulation technology in the teaching of single-chip microcomputer course are introduced in detail,including system simulation circuit design,software programming and interactive simulation.The practical results show that the application of virtual simulation technology increases the intuitiveness and visibility of single-chip microcomputer teaching,stimulates the students'learning interest and innovation ability,and improves the teaching quality of the course.At the same time,it also shortens the development period of single chip microcomputer system effectively,and reduces the buying expenses of electronic components.
virtual simulation technology;single-chip microcomputer course;Proteus software;Keil software
TN7
A
1674-6236(2016)01-0045-03
2015-02-03稿件編號:201502018
陜西省教育廳2012年科學研究項目(12JK0549);陜西省科學技術研究發(fā)展計劃項目(2013k07-44)
王 瑾(1974—),女,陜西咸陽人,碩士,副教授。研究方向:計算機控制及電子信息。