李傳江++馮英鵬++張自強(qiáng),王愛(ài)華++周鳴++茅紅偉++王義慶
摘要:針對(duì)單片機(jī)教學(xué)中存在的問(wèn)題及弊端,提出了基于Proteus與Keil C的單片機(jī)教學(xué)實(shí)踐探索。將單片機(jī)硬件電路設(shè)計(jì)與軟件程序編寫結(jié)合,通過(guò)實(shí)例仿真操作演示,教學(xué)效果良好,非常適合單片機(jī)課程的教學(xué)。
關(guān)鍵詞:?jiǎn)纹瑱C(jī)教學(xué);Proteus;Keil C
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)25-0073-02
目前,單片機(jī)技術(shù)是高校機(jī)電類、電子信息類、自動(dòng)化類和計(jì)算機(jī)類等專業(yè)開(kāi)設(shè)的一門實(shí)踐性很強(qiáng)、應(yīng)用面很廣的課程。隨著科學(xué)技術(shù)的發(fā)展,單片機(jī)技術(shù)在智能化電子產(chǎn)品、智能儀器儀表等領(lǐng)域的頻繁使用,社會(huì)對(duì)單片機(jī)系統(tǒng)開(kāi)發(fā)人才的需求持續(xù)增長(zhǎng)。對(duì)此,高校對(duì)單片機(jī)課程教學(xué)的要求也越來(lái)越高。學(xué)生在學(xué)習(xí)單片機(jī)課程的過(guò)程中,不僅要熟練掌握單片機(jī)技術(shù)基礎(chǔ),提高整體專業(yè)素養(yǎng),更要提高動(dòng)手能力,獲得實(shí)用的專業(yè)技能以增強(qiáng)就業(yè)競(jìng)爭(zhēng)力。但是單片機(jī)技術(shù)包含的知識(shí)面廣、內(nèi)容邏輯性強(qiáng)、難度大、抽象等特點(diǎn),存在“教師講授難,學(xué)生理解難”的現(xiàn)象,致使單片機(jī)教學(xué)改革成為高校亟待解決的一項(xiàng)教研課題[1]。本文在研究單片機(jī)教學(xué)普遍存在的問(wèn)題的基礎(chǔ)上,提出了基于Proteus與Keil C的單片機(jī)教學(xué)實(shí)踐探索。
1 單片機(jī)教學(xué)存在的問(wèn)題及新方法探索
傳統(tǒng)的單片機(jī)教學(xué)重在講授單片機(jī)的內(nèi)部結(jié)構(gòu)及其理論知識(shí),沒(méi)有進(jìn)行單片機(jī)系統(tǒng)的設(shè)計(jì)與仿真,或者說(shuō)沒(méi)能進(jìn)行單片機(jī)相關(guān)的應(yīng)用實(shí)踐,無(wú)法滿足培養(yǎng)單片機(jī)應(yīng)用型技術(shù)人才的需要。在單片機(jī)課程的學(xué)習(xí)過(guò)程中,學(xué)生根據(jù)課程的安排到實(shí)驗(yàn)室使用實(shí)驗(yàn)箱等設(shè)備進(jìn)行相關(guān)實(shí)驗(yàn),由于學(xué)生對(duì)單片機(jī)基本知識(shí)的掌握不夠,加上實(shí)驗(yàn)內(nèi)容固定,在有限的時(shí)間內(nèi),學(xué)生多數(shù)做的是驗(yàn)證性的實(shí)驗(yàn)。實(shí)驗(yàn)箱是已經(jīng)設(shè)計(jì)好的單片機(jī)系統(tǒng)電路與外接電路,學(xué)生將課堂上講授的程序編譯好,經(jīng)下載器下載到單片機(jī)系統(tǒng)的CPU中,實(shí)驗(yàn)現(xiàn)象和要求的一致,即驗(yàn)證了某種功能。在這種情況下,對(duì)電路不了解的學(xué)生而言,實(shí)驗(yàn)算是完成了,甚至是對(duì)電路熟練掌握的學(xué)生而言,省略了電路設(shè)計(jì)思考的工作,本來(lái)在學(xué)習(xí)單片機(jī)過(guò)程中存在或多或少的問(wèn)題,但基于實(shí)驗(yàn)現(xiàn)象的正確,學(xué)生在匆匆做完實(shí)驗(yàn)就離開(kāi)實(shí)驗(yàn)室,沒(méi)能深入分析實(shí)際問(wèn)題,那么單片機(jī)實(shí)驗(yàn)課就失去了意義。
高校單片機(jī)教學(xué)目的在于通過(guò)課堂講授單片機(jī)的理論知識(shí)、程序編寫與實(shí)驗(yàn)室里進(jìn)行相關(guān)實(shí)驗(yàn)結(jié)合,達(dá)到引發(fā)學(xué)生學(xué)習(xí)單片機(jī)的興趣和積極性。借助實(shí)驗(yàn)室已有的設(shè)備,學(xué)生針對(duì)自身所學(xué)的單片機(jī)知識(shí),在教師的引導(dǎo)下,利用硬件與軟件獨(dú)立完成各項(xiàng)目任務(wù)。在這過(guò)程中,學(xué)生要面對(duì)實(shí)際的設(shè)計(jì)問(wèn)題,認(rèn)真思考,親自動(dòng)手,鍛煉解決實(shí)際工程問(wèn)題的能力,提高社會(huì)就業(yè)的競(jìng)爭(zhēng)力。
根據(jù)單片機(jī)教學(xué)的實(shí)踐,本文提出了基于Proteus與Keil C的單片機(jī)教學(xué)實(shí)踐探索。該方法通過(guò)課堂上講授單片機(jī)理論知識(shí),創(chuàng)造鮮活的問(wèn)題情境,先使用Proteus工具設(shè)計(jì)單片機(jī)電路,再用Keil C軟件編程,最后將Proteus與Keil相結(jié)合進(jìn)行仿真及結(jié)果演示,加深學(xué)生對(duì)單片機(jī)教學(xué)的感性認(rèn)識(shí),引發(fā)學(xué)生的學(xué)習(xí)積極性,發(fā)揮其主觀能動(dòng)性。由于這兩個(gè)仿真軟件裝在PC機(jī)里,就可以進(jìn)行單片機(jī)相關(guān)電路設(shè)計(jì),靈活性強(qiáng),大大縮減了硬件成本,便于開(kāi)放式教學(xué)。這種實(shí)踐性教學(xué)方法,學(xué)生能夠主觀地去思考,尋求有效的解決方法,完成設(shè)計(jì)任務(wù),其教學(xué)效果優(yōu)于單純講授的傳統(tǒng)教學(xué)法。
2 Proteus與Keil軟件介紹
Proteus是英國(guó)Labcenter公司開(kāi)發(fā)的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真軟件,不僅可以實(shí)現(xiàn)數(shù)字電路、模擬電路的仿真,而且還具有微控制器系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計(jì)等功能。Proteus是目前唯一能對(duì)多種微處理器進(jìn)行實(shí)時(shí)仿真、調(diào)試與測(cè)試的EDA工具,真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。其處理器模型支持8051、PIC、AVR、ARM、MSP430、Cortex和DSP系列等,同時(shí)也支持IAR、Keil和MPLAB等編譯器,非常適合單片機(jī)課堂教學(xué)與實(shí)驗(yàn)教學(xué)。
Keil是德國(guó)Keil Software公司出品的單片機(jī)集成開(kāi)發(fā)系統(tǒng)平臺(tái),支持51單片機(jī)的所有兼容機(jī),提供了包括C編譯器、宏匯編、連接器、庫(kù)管理及一個(gè)功能強(qiáng)大的仿真調(diào)試器在內(nèi)的完整開(kāi)發(fā)方案,并通過(guò)一個(gè)開(kāi)發(fā)集成環(huán)境([μ] Vision3)將這些組合在一起。該軟件不需要連接單片機(jī)硬件,可直接進(jìn)行純軟件仿真,具有跟蹤、調(diào)試、設(shè)置斷點(diǎn)等工程,能生成在線仿真和燒錄到芯片所需的Hex文件。
3 基于Proteus和Keil C的應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程
針對(duì)具體的單片機(jī)系統(tǒng),這里使用Proteus7.5的ISIS Professional繪制原理圖,Keil [μ] Vision3建立項(xiàng)目工程,通過(guò)如下簡(jiǎn)單的設(shè)置,即可聯(lián)合調(diào)試單片機(jī)仿真:
(1)Proteus的設(shè)置。運(yùn)行Proteus的ISIS,打開(kāi)電路原理圖。
(2)Keil設(shè)置。建立Keil工程后,單擊“Project菜單/Options for Target ‘Target 1”選項(xiàng)或者點(diǎn)擊工具欄的“option for ta rget”,彈出窗口,點(diǎn)擊“Output”,在“Create HEX fi…”前打鉤,對(duì)話框中保持“HEX-80”選項(xiàng)。
(3)Keil和Proteus聯(lián)調(diào)。調(diào)試時(shí),只能打開(kāi)一個(gè)Proteus電路原理圖。調(diào)試步驟為首先點(diǎn)擊Keil軟件中Debug/Start/Stop Debug session(此項(xiàng)為調(diào)試開(kāi)關(guān)),連接成功以后,電路圖處于暫停狀態(tài),此時(shí)可以在Keil中調(diào)試程序了。Keil具有跟蹤型單步(Step)、通過(guò)型單步(Step over)、執(zhí)行到光標(biāo)處(Run to cursor line)、全速(Run)、暫停(Stop Running)等功能;同時(shí)還可以進(jìn)行設(shè)置斷點(diǎn)、觀察變量的值(最簡(jiǎn)單的方法是在暫停狀態(tài)下將光標(biāo)移到變量處)等,執(zhí)行到接口輸出功能時(shí),電路圖都有相應(yīng)的反應(yīng);Proteus中可以做硬件方面的模擬,如按按鍵、改變可調(diào)電阻的阻值等,Keil中會(huì)有反應(yīng)的。按照項(xiàng)目要求,根據(jù)實(shí)驗(yàn)現(xiàn)象去修改源程序,直至調(diào)試成功為止。
(4)如要退出調(diào)試,按Keil的Debug/Start/Stop Debug session即可。
4 單片機(jī)實(shí)例仿真教學(xué)實(shí)踐
該實(shí)踐教學(xué)項(xiàng)目要求如下:
CPU選擇AT89C51芯片,使用定時(shí)器T0的工作方式1,采用中斷方式,在P2.7口輸出周期為2ms的方波,用Proteus自帶的虛擬示波器觀察輸出波形,晶振頻率為12MHz。
根據(jù)項(xiàng)目要求,分析如下:
機(jī)器周期為12/12MHz=1[μ]s,因要求波形周期為2ms,這里定時(shí)時(shí)間選擇為1ms,那么計(jì)數(shù)次數(shù)為1000次,計(jì)數(shù)初值為(65536-1000)。
按照要求使用Proteus7.5繪制的硬件電路如圖1所示:
圖1 單片機(jī)硬件電路圖
根據(jù)實(shí)驗(yàn)分析,使用Keil [μ]Vision3建立工程,編寫程序,軟件流程圖如圖2所示。
圖2 軟件流程圖
程序代碼如下:
#include
sbit P2_7=P2^7;
timer0() interrupt 1{ //定時(shí)器T0中斷函數(shù)
P2_7=!P2_7; //P2.7取反,輸出周期2ms的方波
TH0=0xfc; //計(jì)數(shù)器初值裝填
TL0=0x18;
}
void main(){
TMOD=0x01; //定時(shí)器T0工作方式1
TH0=0xfc; //計(jì)數(shù)器初值裝填
TL0=0x18;
EA=1; //開(kāi)全局中斷
ET0=1; //開(kāi)定時(shí)器T0中斷
TR0=1; //啟動(dòng)定時(shí)器T0
while(1){}
}
按照上述的環(huán)境設(shè)置,通過(guò)Keil [μ]Vision3編譯程序,選擇Keil軟件中Debug/Start/Stop Debug session,這樣就實(shí)現(xiàn)了Proteus與Keil的聯(lián)調(diào)。Proteus中顯示如圖3。
圖3 示波器仿真結(jié)果
示波器A通道連接AT89C51的P2.7引腳,橫軸為1ms/格,發(fā)光二極管D1閃爍間隔1ms,由圖可見(jiàn),A通道是周期為2ms的方波。
5 結(jié)論
本文將Proteus與Keil [μ]Vision3相結(jié)合,用于單片機(jī)仿真教學(xué),解決了單片機(jī)教學(xué)中理論與實(shí)踐脫節(jié)的問(wèn)題。通過(guò)仿真教學(xué)演示,學(xué)生感知教學(xué)任務(wù)深刻,提高了學(xué)習(xí)積極性。這種實(shí)踐性教學(xué)方法,不僅可以減少實(shí)驗(yàn)設(shè)備的硬件維護(hù),更能讓學(xué)生面對(duì)實(shí)際問(wèn)題,主觀地去思考,尋求解決問(wèn)題的方法,有利于提高學(xué)生的創(chuàng)新能力,對(duì)單片機(jī)教學(xué)具有積極的影響。
參考文獻(xiàn):
[1]馬華玲.Proteus+Keil在單片機(jī)教學(xué)中的應(yīng)用[J]. 高等函授學(xué)報(bào),2012(4):26-27.
[2]宋蘊(yùn)璞,周文泳,徐鳴謙,等. 高校單片機(jī)教學(xué)實(shí)驗(yàn)設(shè)備與方式探討[J]. 實(shí)驗(yàn)室研究與探索,2009,28(11):6-9.
[3]張子紅,劉鑫. 基于Proteus的單片機(jī)課程教學(xué)改革[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(11):15-18.
[4]李紹靜. 基于案例驅(qū)動(dòng)的單片機(jī)教學(xué)模式研究[J] . 信息技術(shù),2013(4):59-62.
[5]張紅霞,桂偉. 單片機(jī)教學(xué)中自主學(xué)習(xí)能力的培養(yǎng)策略研究與實(shí)踐. 中國(guó)電力教育,2014(6):60-61.