廣東理工學(xué)院電氣工程系 龍小麗 唐東成 李欣雪
Keil與Proteus軟件在單片機課程教學(xué)中的應(yīng)用
廣東理工學(xué)院電氣工程系 龍小麗 唐東成 李欣雪
本文介紹了Keil與Proteus這兩種軟件在"單片機應(yīng)用技術(shù)"課程教學(xué)中的應(yīng)用,以基于AT89C51單片機為核心的簡易可調(diào)時鐘為例闡述了Keil與Proteus軟件在仿真單片機應(yīng)用系統(tǒng)時的步驟和需要注意的問題。將Keil與Proteus引入"單片機應(yīng)用技術(shù)"課程教學(xué)中,可有效提高上課質(zhì)量,幫助學(xué)生加深對課堂知識點的理解,為以后將所學(xué)知識應(yīng)用到實踐中做好準備。
單片機應(yīng)用技術(shù);Keil;Proteus;仿真
"單片機應(yīng)用技術(shù)"是電子信息、通信工程及測控技術(shù)等理工科專業(yè)非常重要的一門課程,成為理工科專業(yè)的學(xué)生畢業(yè)后就業(yè)的一個主要專長。該課程教學(xué)目標是在理論教學(xué)的基礎(chǔ)上通過實踐教學(xué),使學(xué)生掌握單片機組成(內(nèi)部與外部結(jié)構(gòu))、端口使用(P0~P3口、RST、XTAL1、XTAL2等)、CPU片內(nèi)資源(ROM、RAM)、中斷系統(tǒng)、定時器、外部擴展技術(shù)及程序設(shè)計等知識,培養(yǎng)學(xué)生具有利用單片機及其外圍芯片設(shè)計單片機系統(tǒng)的能力,為將單片機應(yīng)用到傳感器、工控、家用電器及計算機通信等多個領(lǐng)域打下良好基礎(chǔ)。
在"單片機應(yīng)用技術(shù)"課程的教學(xué)過程中,學(xué)生反映單片機的內(nèi)部存儲結(jié)構(gòu)、外部擴展技術(shù)、中斷系統(tǒng)及程序設(shè)計等知識難以掌握,雖然學(xué)習(xí)了理論知識,具體卻不知道如何應(yīng)用。單片機課程的實踐性要求非常高,而對于傳統(tǒng)的教學(xué)模式,通常是先學(xué)習(xí)理論知識,再進行實踐操作,這種模式使得實踐操作與理論知識脫節(jié)。在單片機實踐課程教學(xué)中,通常采用只能進行單片機系統(tǒng)驗證的實驗箱,只能夠?qū)σ恍?yīng)用系統(tǒng)進行驗證,學(xué)生沒有自己針對具體功能進行設(shè)計的機會,有一定的局限性[1]。Keil與Proteus軟件教學(xué)中的應(yīng)用正好能夠解決這個問題。本文根據(jù)自己的教學(xué)經(jīng)驗,討論Keil與Proteus軟件在單片機課程教學(xué)中的應(yīng)用。
Proteus是一款可用于設(shè)計和開發(fā)單片機系統(tǒng)的仿真平臺軟件,它按功能劃分為ISIS、VSM、ARES三個部分。該軟件可用于模擬仿真51、PIC、AVR、HC11系列等常用的MCU及其外圍電路[2-3]。并支持大量的外圍芯片和存儲器。同時還支持C語言和匯編語言的程序設(shè)計。能和Keil 實現(xiàn)聯(lián)用調(diào)試。
Keil與Proteus聯(lián)用有兩種方式仿真單片機系統(tǒng)。一種是將源程序用Keil進行編譯生成單片機CPU可執(zhí)行的后綴為。hex的文件,再將hex文件加載到Proteus中所繪制的硬件電路圖中的單片機中即可實現(xiàn)模擬仿真。二是Keil與Proteus連接調(diào)試。本文介紹第一種方式。
設(shè)計一個完整的單片機應(yīng)用系統(tǒng)的包括硬件與軟件兩部分設(shè)計,硬件電路的設(shè)計可用Proteus進行,軟件設(shè)計時可選用C或匯編進行設(shè)計。程序設(shè)計完利用Keil軟件進行編譯和調(diào)試。下面以"簡易可調(diào)時鐘"為例,介紹采用Keil與Proteus軟件進行單片機應(yīng)用系統(tǒng)模擬仿真的過程。
2.1 設(shè)計要求
設(shè)計一個簡易可調(diào)時鐘;可動態(tài)的顯示時、分、秒,顯示格式為00-00-00;小時和分鐘可調(diào);具有復(fù)位功能。
2.2 硬件電路原理圖設(shè)計
本文設(shè)計的"簡易可調(diào)時鐘(見圖1)"由主控電路、顯示電路、鍵盤電路等模塊組成。AT89C51是主控模塊的核心部分;鍵盤模塊采用獨立按鍵實現(xiàn)調(diào)時和調(diào)分的功能;顯示模塊采用8個共陰LED數(shù)碼管進行時間的動態(tài)顯示。打開ISIS 7 Professional界面,添加元件并連接,繪制圖1電路原理圖。原理圖用到的元件有AT89C51、7SEG-MPX8-CA-BLUE、CRYSTAL、BUTTON、RESPACK-8、CHIPRES10K、GRM0335C1E300JD01D、B45190E3106K209構(gòu)成了AT89C51主控模塊、8位LED數(shù)碼管動態(tài)顯示屏、調(diào)時和調(diào)分按鍵、復(fù)位初始化電路等模塊。
圖1 "簡易可調(diào)時鐘"電路原理圖
AT89C51芯片是電路的核心,有4個(P0~P3)8位并行輸入/輸出端口。P2口輸出數(shù)段選碼,P2.0~P2.7引腳分別接到LED數(shù)碼管段選碼(A~DP)引腳上,P2.x口線為高電平時對應(yīng)的段被點亮,由于P2口驅(qū)動能力較弱,加上100Ω上拉電路增加數(shù)碼管亮度。 P1口輸出位選碼,P1.0~P1.7引腳分別接到LED數(shù)碼管的位選碼(8~1)引腳上,P1.x口線為低電平對應(yīng)位數(shù)碼管被點亮。單片機的和引腳分別經(jīng)調(diào)時按鍵和調(diào)分按鍵后再接地,當掃描到P3.2口或P3.3口為低電平時表明按鍵按下,則執(zhí)行調(diào)時或調(diào)分的功能。
“自采”的僅計算基本直接費,“他采”的還應(yīng)計算相關(guān)費用、利潤及稅金??紤]到這兩種情況下主承包人的成本支出差異,應(yīng)同時制定這兩種情況下的混凝土工程費率,“自采”的比“他采”的要高些。
圖2 "簡易可調(diào)時鐘"仿真電路
2.3 程序編譯
本文采用C語言進行程序設(shè)計,程序中主要包括初始化函數(shù)、T0中斷函數(shù)、T1中斷函數(shù)、鍵掃描函數(shù)等。程序設(shè)計完成后,用Keil u Vision3工具對此仿真系統(tǒng)的程序進行編輯和編譯,生成單片機CPU可執(zhí)行的HEX文件。編譯步驟如下:
新建工程:在程序菜單打開Keil u Vision3,選擇Project菜單下New Project。在彈出的對話框中輸入工程名(jianyishizhong)并選擇工程的保存路徑;工程保存完后再選擇CPU,本文選擇AT89C51芯片。
新建源文件:打開File菜單,點擊New菜單項。點擊File菜單下Save菜單,在彈出的對話框中選擇源文件保存路徑(默認情況下和新建的工程在同一個文件夾下)并輸入文件名(jianyishizhong。 c)。點擊保存,產(chǎn)生jianyishizhong。c空白文件。
添加源文件到工程:點擊左側(cè)工作區(qū)窗口下Target 1左端顯示"+",展開目錄樹。鼠標右鍵單擊Source Group 1,在彈出的快捷菜單中選擇Add File to Group'Source Group 1'。在彈出對話框中選擇要添加的文件(jianyishizhong。c),點擊Add按鈕,即可將文件添加到工程。關(guān)閉添加文件對話窗口。在剛剛建立的jianyishizhong。c文件中編輯輸入程序并保存。
工程選項設(shè)置:鼠標右鍵單擊工作區(qū)窗口下的Target 1,選擇快捷菜單中的Options for Target'Target 1',彈出工程選項設(shè)置對話框。選擇Target標簽,在Xtal(MHz):
文本框內(nèi)輸入單片機時鐘11.0592.選擇Output標簽,勾選Creat HEX復(fù)選框;該HEX文件即是下載到單片機的可執(zhí)行代碼。
編譯:單擊工具欄全部編譯圖標,觀察窗口中提示信息。若程序無措,則編譯產(chǎn)生單片機可執(zhí)行代碼hex文件,本文生成的hex文件為jianyishizhong。hex。
2.4 仿真效果
用Proteus軟件打開圖1電路,將jianyishizhong。 hex文件加載到AT89C51中,點擊Play鍵,運行仿真電路,顯示結(jié)果如圖2所示,可通過觀察運行結(jié)果判斷系統(tǒng)硬件與軟件設(shè)計的正確性。本文運行結(jié)果和設(shè)計要求一致,可動態(tài)的顯示時、分、秒,顯示格式為00-00-00,圖2顯示的時間為17點08分15秒;小時和分鐘可通過調(diào)時按鍵和調(diào)分按鍵進行調(diào)節(jié);按下復(fù)位按鈕,電路立即可實現(xiàn)復(fù)位。
上面以簡易可調(diào)時鐘為例,介紹Keil與Proteus軟件應(yīng)用于單片機課程教學(xué)中。利用Keil與Proteus軟件,按照上述步驟,我們還可以設(shè)計看STC89C52看門狗、DS18B20數(shù)碼溫度計、急救交通信號燈、電子密碼鎖、音樂播放器、萬年歷等單片機應(yīng)用系統(tǒng)的仿真實例,并運用到課程教學(xué)中。借助Keil與Proteus軟件在課堂中進行系統(tǒng)驗證,演示運行的結(jié)果,可加深學(xué)生對課堂知識點的理解,可有效提高課堂效果。由于軟件的低成本性和操作簡單性,在課后,學(xué)生可用這兩種軟件練習(xí)或設(shè)計單片機應(yīng)用系統(tǒng)實驗,學(xué)習(xí)從電路設(shè)計、軟件程序編程到仿真結(jié)果觀察的完整過程,既可鞏固學(xué)生學(xué)到的知識,又可提高學(xué)生創(chuàng)新能力,同時還解決了實驗設(shè)計時間不足及實驗設(shè)備的問題,為優(yōu)化單片機課程教學(xué)開拓了一條新路子。
[1]張德偉。單片機課程教學(xué)模式的探索與實踐[J]。中國科技,2007(6): 268-270.
[2]周潤景,張麗娜?;赑roteus的AVR單片機設(shè)計與仿真[M]。北京:航空航天大學(xué)出版社,2007.
[3]曾燕,賈振國。Proteus仿真技術(shù)在單片機教學(xué)中的應(yīng)用[J]。長春工程學(xué)院學(xué)報:社會科學(xué)版,2011,12(1):132-134.
龍小麗(1989-),女,湖南湘西人,碩士研究生,助教,研究方向:電子與通信工程。
唐東成(1987-),男,湖南邵陽人,碩士研究生,助教,研究方向:復(fù)雜系統(tǒng)分析與控制。
李欣雪(1990-),女,黑龍江大慶人,碩士研究生,助教,研究方向:電子與通信工程。