
摘 要:傳統(tǒng)的單片機(jī)實(shí)驗(yàn)是在專門的實(shí)驗(yàn)室中進(jìn)行的,其硬件設(shè)備昂貴和設(shè)備維護(hù)工作量大,而且實(shí)驗(yàn)內(nèi)容存在更新慢、與工程實(shí)際應(yīng)用脫節(jié)等問(wèn)題。本文提出一種基于Proteus軟件構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)的方案,并通過(guò)應(yīng)用實(shí)例的分析,詳細(xì)闡述采用Proteus軟件仿真的特點(diǎn),結(jié)合單片機(jī)開(kāi)發(fā)程序,建立仿真環(huán)境,通過(guò)合理地設(shè)置,虛擬單片機(jī)實(shí)驗(yàn)過(guò)程,驗(yàn)證單片機(jī)系統(tǒng)的可靠性。從而解決實(shí)驗(yàn)教學(xué)中硬件條件不足的問(wèn)題,大大提高了實(shí)驗(yàn)教學(xué)的效果,縮短了實(shí)驗(yàn)教學(xué)與工程實(shí)際應(yīng)用之間的差距。
關(guān)鍵詞:?jiǎn)纹瑱C(jī)實(shí)驗(yàn);Proteus軟件;仿真
“單片機(jī)原理與應(yīng)用”這門課是機(jī)電一體化、自動(dòng)化等專業(yè)的一門重要課程,具有理論性強(qiáng)、實(shí)踐性更強(qiáng)等特點(diǎn)。目前大多數(shù)高校都建立了單片機(jī)實(shí)驗(yàn)室,基本上配備了實(shí)驗(yàn)箱等硬件仿真設(shè)備。但實(shí)驗(yàn)箱硬件電路固定、實(shí)驗(yàn)內(nèi)容較難改動(dòng),很難適應(yīng)單片機(jī)技術(shù)的快速發(fā)展以及培養(yǎng)學(xué)生的單片機(jī)開(kāi)發(fā)能力、創(chuàng)新能力等需求。利用Proteus軟件進(jìn)行單片機(jī)虛擬仿真實(shí)驗(yàn),可以在一定程度上彌補(bǔ)上述不足。隨著多媒體教學(xué)手段的不斷發(fā)展,仿真軟件得到了廣泛的應(yīng)用,Proteus軟件是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行在Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。
1 基于Proteus的單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)的優(yōu)勢(shì)
⑴實(shí)驗(yàn)內(nèi)容廣泛:利用Proteus軟件豐富的系統(tǒng)資源,可完成驗(yàn)證性、設(shè)計(jì)性和綜合性實(shí)驗(yàn)內(nèi)容。驗(yàn)證性實(shí)驗(yàn)項(xiàng)目:①輸入輸出口實(shí)驗(yàn);②中斷實(shí)驗(yàn);③定時(shí)器實(shí)驗(yàn)等。設(shè)計(jì)性實(shí)驗(yàn)項(xiàng)目:①設(shè)計(jì)時(shí)鐘電路,完成時(shí)間的實(shí)時(shí)顯示;②設(shè)計(jì)16×16LED點(diǎn)陣的顯示電路;完成漢子的循環(huán)顯示等。綜合性實(shí)驗(yàn)項(xiàng)目:①溫度控制系統(tǒng)設(shè)計(jì);②步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)等。設(shè)計(jì)靈活,克服了單片機(jī)實(shí)驗(yàn)箱中實(shí)驗(yàn)內(nèi)容固定不變等方面的局限性,增強(qiáng)學(xué)生的學(xué)習(xí)興趣。
⑵硬件投入少:在實(shí)際教學(xué)中,如果微控制器涉及到 51系列、PIC系列、AVR系列等,為保證教學(xué)的需要,必然要投入各種實(shí)驗(yàn)設(shè)備;在實(shí)驗(yàn)過(guò)程中若需示波器、邏輯分析儀、信號(hào)發(fā)生器等設(shè)備,也必然要投入資金。若采用Proteus軟件則可仿真多種單片機(jī),并可利用系統(tǒng)提供的虛擬儀表進(jìn)行分析,避免了上述問(wèn)題。
⑶實(shí)驗(yàn)過(guò)程中損耗小:在傳統(tǒng)的實(shí)驗(yàn)過(guò)程中,都涉及到因操作不當(dāng)而造成的元器件和儀器儀表的損毀,也涉及到儀器儀表等在工作時(shí)所造成的能源消耗。采用仿真軟件進(jìn)行的實(shí)驗(yàn),基本沒(méi)有元器的損耗問(wèn)題,在實(shí)驗(yàn)的過(guò)程中是比較安全的。
(4)Proteus軟件進(jìn)行仿真實(shí)驗(yàn),學(xué)生可在計(jì)算機(jī)上自行設(shè)計(jì)所需實(shí)驗(yàn),畫原理圖、編寫源代碼、反復(fù)調(diào)試,觀察結(jié)果,直到最終滿意為止。這樣可以節(jié)省開(kāi)發(fā)時(shí)間和開(kāi)發(fā)費(fèi)用,并且可大大提高學(xué)生的單片機(jī)應(yīng)用能力以及創(chuàng)新能力。
2 基于Proteus的單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)的配置方案
⑴虛擬仿真軟件的配置:選Proteus軟件仿真系統(tǒng),在單片機(jī)實(shí)驗(yàn)室為每臺(tái)計(jì)算機(jī)安裝一套該軟件,可彌補(bǔ)硬件設(shè)備的不足。
⑵編譯調(diào)試環(huán)境選用Keil C51 uVision3軟件:Keil C51 uVision3軟件集編輯、編譯和程序仿真于一體, 是當(dāng)前較為流行的軟件之一,該軟件支持多種匯編和C語(yǔ)言的編程,Proteus軟件支持Keil C51 uVision3聯(lián)合調(diào)試。
⑶基于Proteus的單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)學(xué)習(xí)網(wǎng)站:學(xué)生可在該網(wǎng)站上自主學(xué)習(xí)Keil C51 uVision3軟件的詳細(xì)使用方法,以及二者聯(lián)合調(diào)試的方法,并且給出了大量的實(shí)例,以視頻錄像的方式展現(xiàn),便于學(xué)生學(xué)習(xí)。
3 應(yīng)用實(shí)例
下面介紹一個(gè)集中斷、七段碼顯示和時(shí)鐘日歷芯片DS1302的綜合實(shí)驗(yàn)平臺(tái)設(shè)計(jì)以及調(diào)試方法。
3.1 繪制仿真電路的原理圖
啟動(dòng)Proteus軟件,在主窗口界面點(diǎn)擊窗口左側(cè)的元器件選擇區(qū)的P按鈕,接下來(lái)會(huì)彈出Pick Devices窗口,接著Category欄里點(diǎn)擊,在Results 欄里會(huì)出現(xiàn)多類型的CPU器件,找到80C51后雙擊,80C51就被添加到當(dāng)前窗口左側(cè)的元器件列表區(qū)。再用同樣的方法依次把DS1302、7SEG-MPX8-CA-BLUE、74LS373、74LS138、Switch以及多個(gè)電阻也添加到器件列表區(qū)里。然后再依次點(diǎn)擊列表區(qū)的器件,把他們放到繪圖區(qū)并編輯其屬性,接著進(jìn)行合理的布局后,就可以進(jìn)行連線。繪制出電路原理圖如圖1所示。
3.2 應(yīng)用實(shí)驗(yàn)平臺(tái)完成實(shí)驗(yàn)項(xiàng)目
該仿真實(shí)驗(yàn)平臺(tái)可設(shè)置多個(gè)基本實(shí)驗(yàn)和擴(kuò)展實(shí)驗(yàn)項(xiàng)目。
基本實(shí)驗(yàn):
①外部中斷1實(shí)驗(yàn):外部中斷1(P3.3引腳)接一個(gè)開(kāi)關(guān),P0口通過(guò)兩片74LS273鎖存器連接16個(gè)發(fā)光二極管,可利用開(kāi)關(guān)產(chǎn)生低電平或下跳沿觸發(fā)中斷來(lái)控制 16個(gè)發(fā)光二極管的亮滅;②多個(gè)外部中斷實(shí)驗(yàn):外部中斷0(P3.2引腳)接兩個(gè)開(kāi)關(guān),作為兩個(gè)外部中斷源,若有一個(gè)開(kāi)關(guān)產(chǎn)生低電平或下跳沿觸發(fā)中斷,可利用查詢P1.3、P1.4引腳判斷是哪個(gè)外部中斷源引起中斷,并可控制16個(gè)發(fā)光二極管的亮滅;③七段碼顯示實(shí)驗(yàn):P2.0、P2.1、P2.2三個(gè)引腳通過(guò)74LS138譯碼器作為8個(gè)七段碼的位選線,通過(guò)P0口送出段碼,可完成動(dòng)態(tài)掃描顯示。④時(shí)鐘芯片DS1302實(shí)驗(yàn):P1.0、P1.1、P1.2三個(gè)引腳作為DS1302的復(fù)位端、脈沖輸入端以及數(shù)據(jù)輸入輸出端,通過(guò) 8個(gè)七段碼顯示器顯示,可實(shí)現(xiàn)小時(shí)、分、秒的實(shí)時(shí)顯示。
擴(kuò)展實(shí)驗(yàn):
①根據(jù)時(shí)間控制16個(gè)發(fā)光二極管的亮滅;②若P3.3口接光敏電阻,可根據(jù)光的強(qiáng)弱控制16個(gè)發(fā)光二極管的亮滅;③若P3.2引腳接熱式紅外傳感器,可根據(jù)是否有人來(lái)控制16個(gè)發(fā)光二極管的亮滅。
根據(jù)該實(shí)驗(yàn)平臺(tái)還可設(shè)計(jì)其他實(shí)驗(yàn),可讓學(xué)生自行開(kāi)發(fā)。
3.3 編寫程序
利用Keil C51 uVision軟件編寫C語(yǔ)言程序,由于篇幅限制,下面只給出利用外部中斷1控制16個(gè)發(fā)光二極管的亮滅程序,DS1302程序略。
#include
#include
#define uchar unsigned char
sbit ME_RST=P1^0;
sbit ME_SLCK=P1^1;
sbit ME_IO=P1^2;
sbit_1_in=P1^3;
sbit_1_out=P1^4;
sbit_273_1_clk=P2^4;
sbit_273_2_clk=P2^5;
uchar dis_code[10]= ﹛0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07, 0X7F, 0X6F﹜;
void main (void)
﹛
dsinit( );
w_init( );
dswrprt( );
IT1=1;
EX1=1;
EA=1;
Do
﹛time( );﹜
While(1);
﹜
/*int1中*/
Void extern1_ISR( )interrupt2
﹛P0=0x55;
_273_1_clk=0;
_273_1_clk=1;
_273_1_clk=0;
P0=0x55;
_273_2_clk=0;
_273_2_clk=1;
_273_2_clk=0;
﹜
在文件Keil C51 uVision2中,將上述程序編譯成16進(jìn)制文件IntTimedLed.HEX。
3.4 系統(tǒng)仿真
⑴Proteus ISIS與Keil 連接
⑵在ISIS中,選中單片機(jī)80C51,再右鍵點(diǎn)擊80C51,出現(xiàn)相應(yīng)的對(duì)話框,在Program File中填入“IntTimedLed.HEX”文件,然后點(diǎn)擊“OK”。此時(shí),完成了程序的載入。
⑶在ISIS窗口的下方有4個(gè)模擬調(diào)試控制按鈕:運(yùn)行、步進(jìn)、暫停和停止按鈕,點(diǎn)擊運(yùn)行按鈕,即可仿真。
4 結(jié)束語(yǔ)
基于Proteus的單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)的應(yīng)用,既可充分利用學(xué)校計(jì)算機(jī)房的現(xiàn)有設(shè)備,減少了實(shí)驗(yàn)設(shè)備的硬件投入及維護(hù)工作量,又實(shí)現(xiàn)了形象化教學(xué),為單片機(jī)的軟硬件結(jié)合虛擬仿真提出了一個(gè)新的思路,同時(shí)可提高學(xué)生的單片機(jī)應(yīng)用以及開(kāi)發(fā)能力。
作者簡(jiǎn)介:張文(1983.1-),女,漢族,江蘇徐州人,職稱:講師,學(xué)位:工程碩士,大學(xué)本科,研究方向:控制工程。