丁向榮
(廣東輕工職業技術學院 電子通信工程系,廣東 廣州 510300)
單片機仿真可分為軟件模擬仿真與在線系統仿真。
軟件模擬仿真是利用計算軟件模擬單片機系統硬件環境,進行單片機系統應用程序的調試,目前主要有Keil C集成開發環境的軟件模擬仿真與Proteus軟件的模擬仿真。由于軟件模擬仿真的系統環境是理想環境,因此,仿真效果與實際系統的運行效果還是有差距的[1]。
在線仿真(調試)是一種在線系統調試方案,它是利用實際的單片機應用系統環境,結合計算機仿真軟件進行系統調試,仿真運行效果與實際系統的運行效果是一致的。它可以讓單片機以單步、跟蹤、執行到光標處、設置斷點、全速運行等模式來執行程序。每執行一段或一行程序,就可以觀察該程序執行完畢后的效果,并與寫該段或該行指令時的預期效果進行比較。如果比較的結果一致,說明程序正確;如果不一致,說明程序或硬件出現問題,需作進一步修改和調試。因此,在線仿真是單片機應用系統開發過程中的重要步驟與重要調試手段[2-3]。
如圖1所示,在線仿真需要設計專門的硬件仿真器,才能應用PC機對單片機目標系統進行仿真。雖然仿真器很貴,但在程序存儲器只能用ROM、PROM與EPROM的時代,單片機硬件仿真器是單片機應用系統開發的必備工具,但對于單片機實驗而言,就屬于奢侈品了[4]。

圖1 仿真器仿真連接線路圖
隨著集成電路技術的發展,誕生了可在線編程的Flash ROM程序存儲器芯片,可實現在線編程,使擦除程序存儲器的內容與編寫程序可瞬間完成。傳統的硬件仿真器淡出了開發工具的行列,單片機應用系統的開發模式改變為軟件仿真+“寫片”驗證。這種模式雖然也很方便,但畢竟不能應用單步、斷點等運行模式進行在線仿真調試,這會大大地降低單片機應用系統的開發效率[2]。
ISD51在線仿真(調試)技術是Keil提供的一種在線調試技術。利用這種技術,可以在沒有硬件仿真器的情況下,借用目標單片機的串口完成單步、斷點運行等調試手段。ISD51在線仿真(調試)技術是在目標應用程序適當位置通過調用Keil提供的ISD51功能函數iskey(void)、ISDinit(void)、ISDwait(void)、ISDcheck(void)、ISDdisable(void)、ISDbreak(void)等來實現的。雖然ISD51在線仿真(調試)技術不需要硬件仿真器,但需要占用目標單片機的串口資源以及需要在目標應用程序放置ISD51功能函數,需要有較豐富的經驗才能做到,否則,不但不能幫助調試程序,還會影響目標應用程序的功能。因此,采用ISD51在線仿真(調試)技術需要較高的門檻[5]。
IAP15F2K61S2單片機的可仿真技術是STC公司推出的最新技術,采用基于IAP(在線應用編程)的“軟”核技術實現硬件仿真器的功能。IAP15F2K61S2單片機既可以作目標芯片,也可用作仿真芯片。利用STC-ISP編程軟件的設置工具將一段在線仿真監控程序下載到IAP15F2K61S2單片機中,IAP15F2K61S2單片機就是1顆仿真芯片了,不需增加任何外圍電路,就相當于傳統的單片機硬件仿真器[6]。
在線仿真電路與STC單片機的在線編程電路是一致的,不需增加任何硬件開銷,如圖2所示。

圖2 在線仿真電路
IAP15F2K61S2單片機設置為仿真芯片的設置界面如圖3所示(設置界面在STC-ISP在線編程軟件界面中的“Keil仿真設置”選項中),點擊“將IAP15F2K60S2設置為2.0版仿真芯片”按鈕,然后將單片機重新上電,即可將IAP15F2K61S2單片機設置為仿真芯片。

圖3 仿真芯片的設置
Keil軟件是8051單片機應用開發與學習的必會工具。Keil除可以編輯、編譯ASM或C51應用程序,生成機器代碼程序以外,還可以實施軟件模擬仿真和在線仿真,所要做的只是進行在線仿真設置和運行:
(1) 選擇“STC Mon51仿真”模式;
(2) 選擇與在線編程電路一致的串口號;
(3) 選擇與在線編程電路一致的串口波特率;
(4) 在線仿真的運行。
當按照以上要求設置好后,就可以利用Keil軟件的單步、跟蹤、斷點、執行到光標、全速運行模式對目標程序進行在線仿真(調試)了。在線調試時,既可以在Keil軟件的調試界面上觀察目標程序的運行結果,又可以在目標單片機應用系統上直接觀察程序的運行結果(與在系統調試一致)。經反復調試,系統無誤后,利用在線編程軟件將調試好的程序下載到IAP15F2K61S2單片機中,IAP15F2K61S2單片機就成為目標單片機了。
基于IAP15F2K61S2單片機的在線仿真,在不增加硬件開銷的情況下,具有傳統仿真器的仿真效果,可大大提高單片機應用系統的開發效率。
單片機課程是一門實踐性、應用性很強的課程,提高單片機課程教學效果必須從單片機實驗技術與實驗手段方面著手[7]。為了提高單片機的教學效果,人們探討采用項目教學、任務驅動的模式,實施“教、學、做”一體化教學方法,其根本在于實驗教學模式的改變[8]。
目前,較為先進的單片機實驗模式是“Proteus軟件模擬仿真”與“單片機開發板的在系統驗真”相結合。由于價格便宜,人人擁有一塊單片機開發板已成為現實,其最大的意義是使單片機實驗室得到了無限擴展。單片機開發板的在系統驗真屬于“寫片”驗證模式,雖然基于“Flash ROM”的在線編程技術已經非常成熟與簡單了,“寫片”已是一件很方便的事情,但如果不能利用Keil軟件的單步、斷點等調試功能來調試單片機應用程序,進行程序的差錯與糾錯,自然會降低實驗效率,而且缺乏調試手段的實驗不利于理解單片機應用程序,影響單片機的學習效率[9-10]。
基于IAP的在線仿真技術,即在在線編程電路的基礎上,不需增加任何硬件開銷,IAP15F2K61S2單片機即可設置為仿真單片機芯片,Keil軟件可以很方便地實施在線硬件仿真,給單片機應用系統的技術開發注入了新的活力,它將使得單片機應用系統的開發過程變得更加簡單與高效。單片機課程的實驗教學時刻要與現實單片機應用開發技術接軌,將“單片機開發板的在系統驗真”的實操模式提升為“在線系統仿真”,充分利用Keil軟件的調試功能進行程序的分析與功能調試,有利于提高學生的程序分析能力與編程能力,有利于鍛煉學生的綜合分析能力與創新能力。采用基于IAP在線仿真技術除必須采用“IAP15F2K61S2單片機”或“IAP15L2K61S2單片機”外,不需對單片機開發板作任何改動。提升實驗技術是一種實驗理念的改變,一種實驗習慣的改變。
基于IAP(IAP15F2K61S2單片機)的在線仿真技術,是目前最先進的一種在線仿真技術,1顆芯片即為一個硬件仿真器。在不增加任何硬件開銷的情況下,可以具有傳統的、比較昂貴的硬件仿真器所具備的調試功能。保持實驗教學與市場同步,培養與社會“零銜接”的人才,是當代人才培養的教育理念,更是單片機應用技術人才培養過程所提倡和追求的[11]。
[1] 底群.單片機實驗教學仿真軟件設計[J].現代電子技術,2013(2):39-41,44.
[2] 丁向榮.增強型8051單片機原理與系統開發[M].北京:清華大學出版社,2013.
[3] 丁向榮.單片微機原理與單片機應用技術[M].北京:電子工業出版社,2012.
[4] 常淑俊,黃杰勇.單片機實驗教學的探討[J].實驗科學與技術,2013(4):82-83.
[5] 周堅.單片機C語言輕松入門[M].北京:北京航空航天大學出版社,2011.
[6] 深圳宏晶科技有限公司.STC15F2K60S2系列單片機中文數據資料手冊[M].深圳:深圳宏晶科技有限公司,2013.
[7] 李萍.以單片機實驗教學改革探大學生實踐與創新能力培養模式[J].中國現代教育裝備,2012(11):49-50,59.
[8] 賈萍,丁向榮,胡美蘭.“教、學、做”一體化單片機教學實驗平臺設計與應用[J].實驗技術與管理,2012,29(6):139-142.
[9] 楊琳,高宏亮.以提高學習興趣為導向的單片機實驗課改革[J].實驗室科學,2013(4):95-98.
[10] 黃克亞.基于虛擬仿真和ISP下載的AVR單片機實驗模式研究[J].實驗技術與管理,2013,30(8):81-85.
[11] 孟雷.應用型本科院校單片機實驗教學改革探討[J].現代商貿工業,2013(8):129-130.