摘要:介紹了一種基于Proteus和Keil C51的虛擬單片機實驗室的建設方案,并以具體的實踐項目詳細的闡述了虛擬實驗室里硬件電路設計、軟件設計和軟硬聯合仿真等應用。實際的實踐教學效果表明:合理利用虛擬實驗室能降低實踐教學成本,培養學生的學習興趣,增強學生的操作能力。
關鍵詞:proteus;keil;聯合仿真;單片機;實踐教學
中圖分類號:TP368文獻標識碼:A文章編號:1009-3044(2010)21-5906-02
Application of Software and Hardware Co-simulation in SCM Practice Teaching
ZHANG Wan-jing, LIU Chang-rong, XING Hai-xia, GU Jun-lin
(Department of Computer Science and Engineering, Huai'an College of Information Technology, Huai'an 223003, China)
Abstract:The virtual microcontroller laboratory building solution based on Proteus and Keil C51 is introduced, and the application of the hardware circuit design, software design and software and hardware co-simulation is presented in detail by the actual project. Actual practice teaching indicates that the rational utilization of the virtual laboratory can reduce the cost of practice teaching, develop interest in leaning and enhance the operational capacity of the students.
Key words: proteus; keil; co-simulation; SCM; practice teaching
單片機是高等職業技術學校工科計算機類相關專業的一門專業課,它是一門理論性和實踐性都很強的綜合性課程,也是一門有利于學生就業的技術課程。但是從我系歷年的單片機教學情況來看,采用傳統的教學理念,教學效果比較差。原因是單片機的原理非常抽象,學生理解起來很困難,學習起來很枯燥;結果導致學生學習興趣不高,及格率低,畢業后沒有從事單片機技術崗位的能力和信心。為了改變這種狀況,培養學生的學習興趣,我系決定對單片機教學進行改革,將理論知識模塊和實踐模塊以項目化教學方式,結合虛擬實驗室和實物實驗室呈現給學生。
實踐教學是單片機教學改革中十分重要的教學環節,是培養學生動手能力、創新思維的必需手段。當前,各個學校的單片機實驗室都是購買一些實驗板或者實驗箱等設備來構建的,但是由于受資金的限制、以及容易損壞、維護費高的原因導致實物實驗難以達到應有的效果。此時,虛擬實驗室作為傳統實驗的重要補充,克服了諸多條件的限制,豐富了實踐教學的手段[1],是單片機教學改革的重要組成部分。
1 基于Proteus軟件的虛擬實驗室
Proteus是英國Labcenter公司開發的電路分析與實物仿真及印制電路板設計軟件[2],它可以仿真、分析各種模擬電路與集成電路,軟件提供了大量模擬與數字元器件及外部設備,各種虛擬儀器,特別是它具有對單片機及其外圍電路組成的綜合系統的交互仿真功能。
Keil C51是德國Keil Software公司推出的51系列兼容單片機C語言軟件開發系統,它具有豐富的庫函數和功能強大的集成開發調試工具,全Windows操作界面,可以完成從工程建立和管理、編譯、連接、目標代碼生成、軟件仿真等完整的開發流程,是單片機C語言軟件開發的理想工具。
Proteus與Keil C51配合使用,可以在不需要硬件投入的情況下,完成單片機C語言應用系統的仿真開發,從而縮短實際系統的研發周期,降低開發成本。幾臺計算機,安裝上Proteus電子仿真軟件和集成開發環境軟件Keil C51,就相當于一個設備先進、功能完善的虛擬實驗室。
2 Proteus和Keil的聯合仿真實例
下面以“簡易數字鐘(延時方式)”實踐項目為例,利用虛擬實驗室完成對延時、LED數碼管、動態顯示控制等知識模塊的學習。
2.1 硬件設計
該實例的電路由AT89C51單片機,8位LED共陰極數碼管和2個反向驅動器74LS04等元器件組成,在Proteus ISIS中繪制系統硬件原理圖,如圖1所示。
2.2 軟件設計
該實踐項目的軟件在Keil中進行設計。首先在相應的工程項目中編輯創建源程序文件,取名為t1.c,再對該文件進行編譯,生成目標代碼文件(本例為t1.hex)。若編譯失敗,可對源程序進行修改調試直至編譯成功。部分子程序清單如下:
void calc()//時間計算程序
{time[2]++;//秒鐘數加1
if(time[2]>59)
{time[2]=0;
time[1]++;//分鐘數加1
if(time[1]>59)
{time[1]=0;
time[0]++;//小時數加1
if(time[0]>23)
time[0]=0;}}}
void display(void)//8個數碼管動態顯示程序,顯示一次大約4ms
{uchar i,k=0x80;
for(i=0;i<8;i++)
{P2=0;
P0=display_code[d[i]];
P2=k;
k=k>>1;
delay05ms();}
P2=0;}
2.3 聯合仿真
把產生的目標代碼文件(本例為t1.hex)添加入到硬件電路中的AT89C51內,然后運行仿真,即可看到仿真效果,如圖2所示。
3 結論
單片機教學改革后,教學結果表明:如果利用傳統的單片機實驗室,不僅需要采購大量的硬件設備,而且設備維護工作量也非常巨大,浪費了較多的時間和經費。而基于Proteus和Keil C51的虛擬實驗室單片機實踐教學,在提高學生的知識水平、專業能力和專業素質方面具有明顯的優勢,同時降低了設計成本,縮短了開發周期,提高了效率。此外,學生還可以在課外獨立設計,驗證自己的系統,有助于培養學生的創新素質和創造能力[3],擴展了學生的思路,提高學生的學習興趣。
參考文獻:
[1] 岳冬梅.基于Proteus的虛擬實驗室在實踐教學中的應用[J].常州信息職業技術學院學報,2007(3).
[2] 張秀國.單片機C語言程序設計教程與實訓[M].北京:北京大學出版社,2008.
[3] 劉燎原,孫秋波.Proteus軟件在單片機項目教學中的應用[J].徐州建筑職業技術學院學報,2009,9(2):63-65.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文