利用Proteus虛擬開發(fā)技術(shù)進行Arduino單片機系統(tǒng)開發(fā)
1.前言
Arduino是一款便捷靈活、方便上手的開源電子原型平臺,具有接口豐富、編程環(huán)境簡便、自由度大與可拓展性強等優(yōu)點.它基于AVR平臺,對AVR庫進行了二次編譯封裝,將復雜的單片機底層代碼封裝成簡單實用的函數(shù),使使用者不用關(guān)心單片機編程繁瑣的細節(jié),如寄存器、地址指針等基本不用管,從而大大降低了單片機系統(tǒng)開發(fā)難度,特別適合老師、學生和一些業(yè)余愛好者使用。
由于Arduino使用者一般都是那些對電路知識、電子技術(shù)及單片機技術(shù)等了解不深入的初學者,如何在Arduino開發(fā)過程中快速有效的提高他們的單片機系統(tǒng)開發(fā)能力及電子電路設(shè)計能力是一個需要迫切解決的問題。
Proteus的引入較好的解決了存在的問題。
Proteus是一款電路分析與實物仿真軟件,它除了能進行基本電子電路仿真外,還能直接在單片機虛擬系統(tǒng)上對MCU編程。Proteus虛擬開發(fā)技術(shù)的應(yīng)用,形成了一種全新的Arduino系統(tǒng)開發(fā)理念,其系統(tǒng)開發(fā)流程為:電路設(shè)計與仿真-電路修改與完善-繪制PCB與生成PCB三維效果圖-硬件組裝與調(diào)試,打破了傳統(tǒng)的系統(tǒng)設(shè)計模式,使Arduino使用者將系統(tǒng)設(shè)計缺陷暴露在設(shè)計初期,克服了因設(shè)計中不斷修改焊接電路帶來的弊端,此外PCB的三維效果圖使元件符號與實際封裝進行形象的對接,給初學者帶來強烈的感官認識,從而加深他們對單片機系統(tǒng)設(shè)計的感悟。
2.Arduino虛擬系統(tǒng)設(shè)計
下面以四個按鍵分別控制四個不同顏色發(fā)光二極管的狀態(tài)為例子,介紹應(yīng)用Proteus進行Arduino虛擬系統(tǒng)設(shè)計的方法。
2.1 Proteus仿真電路繪制
在Proteus ISIS中繪制原理圖主要分如下三步:
(1)新建設(shè)計:在Proteus ISIS開發(fā)環(huán)境中,點擊“文件-新建設(shè)計”,在打開的對話框中選中其中一個設(shè)計模板,本文選中LandscapeA4模板,確定后即打開一個Proteus工作區(qū),保存該設(shè)計。
(2)元器件選取及放置:首先選取元件,點擊窗口左側(cè)的按鈕,在彈出的PICk Devices界面左上角的文本欄輸入要查找的元器件名稱,如ATMEGA328P,選中搜索到的元件,重復操作,把系統(tǒng)所需的所有元器件添加到元器件列表區(qū)中;其次放置元件,依次選中元器件列表區(qū)的元器件,單擊鼠標左鍵將該器件放置到繪圖區(qū),并進行參數(shù)設(shè)置。
(3)布局與布線:對所有元器件進行合理布局后,點擊按鈕進行連線;連線時,當鼠標指針靠近一個對象的引腳時,鼠標可自動捕獲該節(jié)點,并且出現(xiàn)一個以該節(jié)點為中心的紅色正方形,單擊鼠標左鍵進行連線,單擊鼠標右鍵取消操作。
根據(jù)以上步驟,應(yīng)用Proteus ISIS繪制的硬件原理圖如圖1所示。
2.2 Arduino程序設(shè)計與。hex文件獲取
Arduino是以單片機ATMEGA328P為核心的控制板,在進行Proteus仿真時,只需將Arduino控制板的接口與ATMEGA328P的端口進行一一對應(yīng)即可,其中,Arduino端口與ATMEGA328P單片機的引腳對應(yīng)關(guān)系如圖2所示。
根據(jù)圖2所示Arduino端口與單片機ATMEGA328P引腳的對應(yīng)關(guān)系,應(yīng)用Arduino軟件開發(fā)環(huán)境對圖1所示的硬件電路進行程序設(shè)計,其中按鍵K1控制發(fā)光二極管LED1點亮及熄滅的程序代碼如下所示,同樣地,可通過修改Arduino端口來實現(xiàn)按鍵K2~K4分別控制發(fā)光二極管LED2~LED4狀態(tài)的功能。
由于Arduino軟件在編譯、鏈接、下載之后。hex文件會自動刪除,而沒有。hex文件就無法實現(xiàn)Proteus仿真,通過實踐,通過進行以下設(shè)置可獲取Arduino編譯后的。hex文件。
(1)新建一個文件夾用于存放。hex文件:
在某邏輯盤,如D盤,建立一個文件夾,文件名可任意,如為arduinohex,則該文件夾路徑為:d:arduinohex.
(2)Arduino編程環(huán)境設(shè)置:點擊Arduino軟件界面菜單欄的“File->preferences”菜單,在彈出對話框中,首先選中“compilation”
和“upload”兩個參數(shù)項;其次雙擊“C:Documents and Settings…preferences.txt”
這一項,找到“preferences.txt”文件的位置并打開該文件,同時關(guān)掉Arduino編程環(huán)境所有窗口;最后在“preferences.txt”文檔中加入“build.path=d:arduinohex”這行文字,并保存文檔。
完成以上設(shè)置后,通過在Arduino進行編譯,即可在d:arduinohex這個文件夾中找到當前程序的。hex文件。
2.3 基于Proteus的arduino仿真實現(xiàn)
在完成Proteus仿真電路設(shè)計及Arduino的。hex文件獲取后,通過在ATMEGA328P上加載。hex文件即可實現(xiàn)arduino虛擬系統(tǒng)的仿真[4].
在圖1中,雙擊ATMEGA328P芯片,在彈出的對話框中,點擊“Program File”參數(shù)項的“文件夾”按鈕,在打開對話框中到d:arduinohex文件夾找到當前程序的。 h e x文件。同時將“CLKDIV8(Divide cLOCk by 8)”參數(shù)項修改為“Unprogrammed”、“CKSEL Fuses”
參數(shù)項修改為“(1111)Ext.Crystal 8.0-MHz”、“Advanced Properties”的“ClockFrequency”參數(shù)項設(shè)為“16Mhz”.
.hex文件加載成功及其他參數(shù)設(shè)置完成后,在Proteus中運行程序,其中,分別按下K1、K4按鍵,所對應(yīng)的LED1、LED4亮,其他兩個LED滅,仿真效果圖如圖3所示。
2.4 PCB繪制及三維仿真實現(xiàn)
在繪制PCB之前,要先檢查Proteus ISIS中的每個元器件是否已經(jīng)存在封裝,如果沒有指定的封裝,則需自行查找、添加封裝。在確保每個元件已添加好封裝后,通過在ProteusISIS中導出網(wǎng)絡(luò)表到ARES,從而進入到ProteusARES軟件環(huán)境進行PCB設(shè)計,其中,圖1對應(yīng)的PCB圖如圖4所示。
為了使Arduino使用者更直觀形象的了解電路原理圖中各個元器件的符號與實物對應(yīng)的關(guān)系,給他們帶來感官的認識,從而加深對所用元件的理解與應(yīng)用,如圖4所示的PCB圖對應(yīng)的3D效果圖如圖5所示,其中,Proteus給出的PCB三維預覽圖可360度旋轉(zhuǎn),使設(shè)計者能從各個角度預覽PCB的實物效果圖。
3.結(jié)論
利用Proteus虛擬開發(fā)技術(shù)進行Arduino單片機系統(tǒng)開發(fā),使Arduino使用者在制作外圍接口板之前能利用Proteus實現(xiàn)電路仿真、電路調(diào)試與完善、PCB三維效果預覽等功能,從而減少了他們在系統(tǒng)開發(fā)初期因頻繁修改硬件電路而帶來電路焊接工藝較差、性能不穩(wěn)、甚至無法實現(xiàn)預期功能等的弊端,使他們快速、牢固地掌握單片機系統(tǒng)開發(fā)的整個流程,同時對該開發(fā)流程有直觀形象的認識,從而有效調(diào)動他們學習Arduino的積極性與主動性,對提高他們的自主學習能力與科研創(chuàng)新能力起到有力的促進作用。