摘 要 目前大多數(shù)高職工科院校單片機實驗均采用虛擬實驗室來完成。許多院校采用Keil c和Proteus兩種軟件構(gòu)建仿真單片機虛擬實驗室,采用這種方式構(gòu)建虛擬實驗室既經(jīng)濟實惠,又在一定程度上緩解了實驗操作過程難及設備維護困難和資金短缺問題。
關鍵詞 單片機 Proteus軟件 keil c
中圖分類號:TP368.12 文獻標識碼:A
MCU Virtual Lab Building Based on Proteus and Keil
QIAO Guorong
(Liaoning Vocational College of Light Industry, Dalian, Liaoning 116000)
Abstract Most vocational colleges of engineering microcontroller experiments were done using a virtual lab. Many colleges use Proteus and Keil c microcontroller simulation software to build virtual laboratory, using this approach to build a virtual laboratory that is affordable and in a certain extent, ease the difficult process of experimental operation and maintenance difficulties and shortage of funds.
Key words microcontroller; Proteus; software; keil c
1 傳統(tǒng)單片機教學中的弊端
目前很多高職院校均開設了單片機專業(yè)課程,但在單片機實際教學過程中尤其在實驗教學環(huán)節(jié)存在很多問題,主要表現(xiàn)在以下幾個方面:(1)傳統(tǒng)的單片機課堂教學大多數(shù)情況下以理論教學為主,理論教學進行過程中會穿插幾次實驗,在實驗過程中需要很多硬件設備,老師在理論教學中很難輔助硬件進行教學,即使有的老師能當場硬件演示,但是效果也不是很好。(2)傳統(tǒng)的單片機基礎實驗教學平臺,由于價格昂貴,除了課程規(guī)定的實驗教學時間,學生平時難得有機會再去實驗室,并且傳統(tǒng)的單片機實驗設備都是事先設計好的成品,學生只能做點連線實驗,對于基本細節(jié)設計學生很難參與其中,因此,即便有單片機實驗,學生的動手能力也很難提高。(3)傳統(tǒng)實驗配套的實驗設備大多數(shù)采用實驗箱,對于學生來說能做的實驗項目是有限的并且是固定的,學生沒有自由發(fā)揮的余地,并且設備出問題很難維修。(4)傳統(tǒng)的單片機實驗室建設成本高,隨著時間的推移,實驗設備不斷老化,更換新的設備又得投入大量的資金。針對上述問題綜合分析利用Proteus與Keil兩款軟件聯(lián)合構(gòu)建單片機虛擬實驗室能很好地解決傳統(tǒng)單片機教學中的上述問題,并且能使每個學生人人都可以擁有自己的“實驗室”,實驗內(nèi)容可以自由發(fā)揮。
2 構(gòu)建單片機虛擬實驗室的方法
(1)Proteus和Keil C軟件簡介。Proteus是英國Labcenter公司開發(fā)的實物仿真與電路分析軟件。它在Windows操作系統(tǒng)上運行,該軟件不但能仿真單片機CPU的工作情況,而且能仿真單片機外圍電路或其它電路的工作情況,該軟件提供了30種元件庫,數(shù)千種元件,元件有各種模擬器件和集成電路,該軟件還提供了大量的儀表資源以及豐富的測試信號用于電路測試。Keil C是德國Keil公司開發(fā)的單片機編譯器,該軟件是目前單片機開發(fā)的最好用的工具之一,它不僅可以用來編譯匯編源程序,而且還可以編譯C源代碼,用該軟件連接和重定位目標文件和庫文件并且創(chuàng)建HEX文件、調(diào)試目標程序,它是一款集成化的文件管理編譯環(huán)境。
(2)如何使用Proteus和Keil C兩款軟件建立虛擬實驗室呢?方法如下:
首先安裝Proteus和Keil C兩款軟件,這兩種軟件都在各自的環(huán)境下都可以進行一定程度的調(diào)試,但是Proteus軟件只能對硬件進行調(diào)試,不能直觀地看到軟件運行的過程,而Keil C也只能對程序進行調(diào)試,不能看到硬件的運行結(jié)果。如果把這兩種軟件聯(lián)合起來,既能看到軟件運行的結(jié)果,又能觀察到硬件運行的情況,這樣學生學習起來非常直觀方便。設計結(jié)果一目了然。其次是實驗教學設計,單片機實驗一般情況是老師下發(fā)的驗證性的實驗或是設計性實驗,如果是驗證性實驗學生按照老師設計好的電路從Proteus元件庫中找出相應的元件完成電路設計,并把教師下發(fā)的程序在Keil C中進行編譯調(diào)試并把生成的HEX文件應用于單片機CPU中進行驗證。而設計性實驗要求學生自行設計電路,自行編寫程序來驗證設計電路的合理性。
圖1
(3)教學設計實例。下面利用ATC89C51及LCD設計一電子秒表介紹利用Proteus與Keil C聯(lián)合仿真,首先在Proteus中設計如圖1所示電路。
然后在Keil C中編寫如下源程序部分內(nèi)容如下:
//**************數(shù)碼管顯示函數(shù)*******************
void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
P1=0xfe;
P0=table[qian];
delay(2);
P1=0xff;
P1=0xfd;
P0=table[bai]|0x80;
delay(2);
P1=0xff;
P1=0xfb;
P0=table[shi];
delay(2);
P1=0xff;
P1=0xf7;
P0=table[ge];
delay(2);
P1=0xff;
}
//**************延時函數(shù)(ms)****************
void delay(uint t)
{
uint i;
while(t--)
for(i=90;i>0;i--);
}
然后在Keil C中編寫如下源程序部分內(nèi)容如下:
編譯生成HEX文件,并將該HEX文件載入單片機中,運行電路后就可以看到一電子秒表了。
3 單片虛擬實驗室總結(jié)
利用Proteus 仿真軟件和Keil聯(lián)合搭建單片機虛擬實驗室,不但可以觀察和仿單片機內(nèi)部資源的變化,而且能夠在程序調(diào)試中觀察單片機外圍電路的變化情況,這樣使得硬件電路和軟件程序互動起來,真正實現(xiàn)了軟硬件協(xié)同工作共同仿真,設計效果明顯。