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