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