標題: Proteus V8的特殊調(diào)試與診斷功能的開發(fā) 專業(yè)綜合實踐課程論文 [打印本頁]

作者: jiemoaichirou    時間: 2018-5-22 15:12
標題: Proteus V8的特殊調(diào)試與診斷功能的開發(fā) 專業(yè)綜合實踐課程論文
專業(yè)綜合實踐課程(論文)
設(shè)計題目:Proteus V8 的特殊調(diào)試與診斷功能的開發(fā)

摘要—本文主要以 Proteus8.0 版本的功能及使用為基礎(chǔ),主要介紹工程的創(chuàng)建、編譯 器的配置、基本調(diào)試等一些基本問題,并探討 Proteus8.0 的一些新特點新功能,最后與 Proteus7.0 做出對比得出結(jié)論。

1.簡介
Proteus 軟件是英國 Lab Center Electronics 公司出版的 EDA 工具軟件(該軟件中國 總代理為廣州風標電子技術(shù)有限公司)。它不僅具有其它 EDA 工具軟件的仿真功能,還能仿 真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣 剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工 作者的青睞。
同時,Proteus 還是一個巨大的教學(xué)資源,可以用于模擬電路與數(shù)字電路的教學(xué)實驗、 單片機與嵌入式系統(tǒng)的教學(xué)實驗、微控制器系統(tǒng)的綜合實驗、創(chuàng)新實驗與畢業(yè)設(shè)計等。 Proteus 可以與廣大學(xué)生相結(jié)合,打造成一個口袋實驗室。

在 Proteus 家族里,Proteus8.0 是目前較新的版本(最新的是 8.1 版),Proteus8.0 版 本的出現(xiàn)具有重要的意義,它也與其他版本有著很明顯的不同,再此進行詳細介紹 Proteus8.0 版本的使用過程。

2.使用過程

2.1 創(chuàng)建新工程

假定此時已安裝了 Proteus8.0 版本。

選擇并點開 Proteus 8 Professional,首先需要新建一個工程,由于本教程是與 PCB 繪 制教程相關(guān)聯(lián)的,所以此時的工程是一個帶有原理圖、PCB 和源代碼編譯部分的工程。

點擊 File,如圖,選擇 New Project,將出現(xiàn)新建工程向?qū)Р?分,在此可以設(shè)置文件名(Name)和保存路徑(Path)




點擊 Next,在下一頁的頂部選項卡中,選擇“從選中的模板中創(chuàng)建原理圖”(Create a

Schematic from the selected template),在此可選擇默認(DFAULT)。如果不需要繪制 原理圖,可直接選擇 Do not create a schematic。





繼續(xù)點擊 Next,選擇“從選擇的模板中創(chuàng)建 PCB 設(shè)計”(Create a PCB layout from the
selected template),在此可繼續(xù)選擇默認(DFAULT)。如果不需要進行 PCB 設(shè)計,可直 接選擇 Do not create a PCB layout。


由于本教程需要仿真,所以繼續(xù)點擊 Next,在仿真頁面選擇 Create Firmware Project, 并設(shè)置 Family(系列)-8051,Contoller(控制器)-AT89C51,Compiler(編譯器)-ASEM-51, 也就是在此設(shè)計外部代碼編譯器。如果不需要進行仿真,則可直接選擇 No Firmware Project 即可。


點擊 Next,新工程便創(chuàng)建完畢。此時的新工程包含原理圖設(shè)計部分、PCB 繪制部分和源 代碼部分。

2.2 在 Proteus 中進行匯編代碼的調(diào)試

Proteus8.0 版本自身支持匯編語言,故先以匯編語言為例。 由于前面已經(jīng)設(shè)置過外部代碼編譯器,所以此時工程包含 Source Code(源代碼),如

果前面沒設(shè)置或者不小心刪除后,也可以在此新建,方法為點擊 Source,



選擇 Create Project,再次設(shè)置 Family(系列)-8051,Contoller(控制器)-AT89C51, Compiler(編譯器)-ASEM-51 即可。

Proteus8.0 或以上版本自帶源代碼編輯、編譯器,所以不再需要外部文本編輯器。 具體操作界面如圖所示,在指定位置(Write your code here)進行編碼。




此時,編譯器、原理圖、源代碼都已準備好,點擊 Build,選擇 Build

下的 Build Project 或者 Rebuild Project 編譯固件。 如果代碼錯誤,系統(tǒng)會自動提示哪行代碼出現(xiàn)錯誤,比如下圖:



系統(tǒng)在下方 IDE 的底部面板上顯示錯誤提示,即 main.asm 的匯編程序第 41 行出現(xiàn)錯誤, 錯誤為“illegal statement syntax”,鼠標直接點擊這句錯誤提示,系統(tǒng)將自動跳轉(zhuǎn)到出 錯的代碼處,這對于查錯改錯十分方便

如果編譯成功,系統(tǒng)不顯示錯誤。其編譯的輸出也顯示在下方 IDE 的底部面板上,最終 編譯成功后,能得到一個編譯成功的信號。


系統(tǒng)自動生成名為 Debug.hex 的文件,并自動拷入到前面的原理圖中,點擊按鈕即 可仿真運行。這也是 Proteus8.0 版本與以往版本的不同之處,該版本不再需要用 Keil 編程后 生成.Hex 文件再手動拷入到原理圖中,一切都是自動完成的,節(jié)約了很多時間。


同時,Proteus 8.0 或以上版本支持 C51 語言的編譯和調(diào)試,這需要電腦本身已經(jīng)安裝 Keil 或者 IAR 等可以編譯 C51 語言的軟件。Proteus 自帶匯編語言的編譯器,如果想編譯 C51,則需要找到電腦中安裝的編譯環(huán)境,也可以到網(wǎng)上 Download,具體如圖:





點擊 Config              ,在下拉菜單中選擇 Compilers Configuration,自動
彈出如下界面:


這個對話列出了所有支持的編譯器,并指示是否被安裝和配置。按下對話框底部的檢查 全部按鈕(Check all),Proteus 將掃描你的計算機,檢查安裝好的編譯器。如果找到 Proteus 支持的編譯器,Proteus 將自動進行配置并在 Proteus 中調(diào)用這些編譯器編譯源代碼。

其余的編譯器,Proteus 自動給出下載(Download)或者下載鏈接(Goto Website),讀 者可根據(jù)自身要求選擇下載。值得注意的是,其中有些編譯器的下載是需要收費的。
編譯成功后,如果想觀察代碼的單步運行,則需要進行如下操作:

首先要確定 Proteus 沒有運行仿真,處于停止狀態(tài)。通過“仿真控制面板”暫停按鈕啟 動仿真或暫停。


啟動仿真后,源程序頁面自動變?yōu)橄聢D格式:





現(xiàn)在說明如何設(shè)置斷點,對于上圖,要在 0111 處設(shè)置斷點,只需在需要設(shè)置斷點的代碼 處雙擊鼠標左鍵即可,斷點指示器(一個小紅點)將出現(xiàn)在代碼的左側(cè);如果誤設(shè)了斷點, 只需在這行再次雙擊(或從代碼窗口中點擊鼠標右鍵選擇取消)即可取消,效果如下圖:


如果現(xiàn)在點擊運行程序,程序執(zhí)行到斷點代碼處將自動停止。 到達斷點后,可以通過源代碼窗口右上角或 VSM Studio 調(diào)試菜單中的常用命令單步執(zhí)行

代碼。另外可以使用快捷鍵 F10 和 F11 分別進行單步跳過調(diào)試和單步進入函數(shù)內(nèi)部調(diào)試。
如圖:



此時,還可以觀看該代碼處的寄存器參數(shù)等,具體設(shè)置為:點擊 Debug,在下拉菜單中 選擇所需要觀測的參數(shù)?梢杂^看 8051 CPU Registers、8051 CPUSFR Memory、8051 CPU
Source code 等等。


其中寄存器的狀態(tài)如下(8051 CPU Registers):






2.3 在 Proteus 中進行 C 代碼的調(diào)試

如果用 C51 編程,則代碼的調(diào)試與匯編語言代碼的調(diào)試十分相似,具體如下: 首先,由于本人電腦沒有安裝有關(guān) C51 編譯的軟件,故用 Proteus8.0 版本本身自帶的一

個例子為例。打開 Proteus8.0 之后,點擊 File,選擇 New Project,這時彈出如下對話框
如下圖,選擇 From Development Board(從開發(fā)板),并選擇 PIC16 系列下的 F1 Release
開發(fā)板,點擊 Finish,調(diào)用完畢。




此時的原理圖如下圖:






源程序如下:




當 Proteus 沒有進行仿真,處于停止狀態(tài)時,才可以進行調(diào)試,這一點與匯編語言的調(diào)試
完全一樣。

該案例包含很多源文件,所以需要在下拉菜單里選擇具體的文件來進行調(diào)試,如下圖:





此時選擇 main.c 作為例子,點擊后出現(xiàn)下面的 C 程序:

現(xiàn)在設(shè)置斷點,方法同上,只需在需要放置斷點的代碼處雙擊鼠標左鍵即可,此時會出 現(xiàn)一個紅點(斷點指示器),如果斷點設(shè)置錯誤,則再次雙擊鼠標左鍵,斷點即可取消,假 設(shè)在 0980 處設(shè)置斷點,如下圖所示:

此時進行仿真,結(jié)果運行到斷點處便會停止。 如果需要查看程序執(zhí)行的細節(jié),具體到每一條指令的執(zhí)行過程,則可以在反匯編代碼中

進行代碼的匯編級單步調(diào)試。右鍵單擊所設(shè)斷點的代碼,選擇 Dissassembly(反匯編)或者
按 Ctrl+D,如下:


反匯編后會顯示從當前斷點到下一條指令之間所有的操作,對于上面的 0980 處設(shè)置的斷 點,將顯示 0980 到 09A2 之間的所有單步程序:






值得注意的是,反匯編的應(yīng)用是匯編語言和 C51 語言編程的一大區(qū)別。

2.4 Proteus8.0 與 Keil 聯(lián)接調(diào)試

Keil 是德國 Keil 公司(ARM 公司收購)現(xiàn)已被開發(fā)的 8051 單片機軟件開發(fā)平臺,經(jīng)過 不斷升級,現(xiàn)已經(jīng)成為一個重要的單片機開發(fā)平臺。Keil 界面不復(fù)雜,操作也不困難,很 多優(yōu)秀程序都是在 Keil 的平臺上編寫出來的。Keil 是一個重要的單片機語言開發(fā)軟件平臺, 用戶群極為龐大。

(1)Keil 的μVision3 可進行純粹的軟件仿真(仿真軟件程序,不接硬件電路);也可 以利用硬件仿真器,搭接上單片機硬件系統(tǒng),在仿真器中載入項目程序后進行實時仿真;還 可以使用μVision3 的內(nèi)嵌模塊 Keil Monitor-51,在不需要額外的硬件仿真器的條件下, 搭接單片機硬件系統(tǒng)對項目程序進行實時仿真。

(2)μVision3 調(diào)試器具備所有常規(guī)源代碼級調(diào)試,符號調(diào)試特性以及歷史跟蹤,代 碼覆蓋,復(fù)雜斷點等功能。Keil μVision3 可以編輯、編譯匯編語言、C51 語言,連接定位 目標文件和庫文件,創(chuàng)建.hex 文件,調(diào)試目標程序等。

下面介紹使用 Keil μVision3 來開發(fā)項目、調(diào)試程序并生成*..hex 文件來用于 Proteus

中單片機程序的開發(fā)和仿真。

前面介紹了 Proteus 下完成原理圖設(shè)計文件后,再在 keil μVision3 下編寫 C51 程序, 經(jīng)過調(diào)試、編譯最終生成.hex 文件后,在 Proteus 下把.hex 文件載入虛擬單片機中,然后 進行系統(tǒng)聯(lián)調(diào)。如果要修改程序,需再回到 keilμVision3 下修改,再經(jīng)過調(diào)試、編譯,新 生成.hex 文件,重復(fù)上述過程,直至系統(tǒng)正常運行為止。但是對于較為復(fù)雜的程序,如果 沒有達到預(yù)期效果,這時可能需要 Proteus 與 KeilμVision3 進行聯(lián)合調(diào)試。

聯(lián)合調(diào)試之前需要安裝 vudgi.exe 文件,文件可到 Proteus 的官方網(wǎng)站下載。vudgi.exe

文件安裝后,需對 Proteus 與μVision3 中進行相應(yīng)設(shè)置。

2.4.1 對 Proteus8.0 的設(shè)置

首先打開 Proteus 需要聯(lián)調(diào)的程序文件,但不要運行,然后選中“調(diào)試”菜單中的“使 用遠程調(diào)試監(jiān)控”選項,如下圖所示。使得 KeilμVision3 能與Proteus 進行通信。






2.4.2 對 KeilμVision3 的設(shè)置
完成上述設(shè)置后,在 KeilμVision3 中打開工程文件,然后單擊菜單【Project】→ “Options for Target”選項(或單擊工具欄上“Options forTarget”快捷按鈕),打開
如圖所示的工程,即 KeilμVision3 中的設(shè)置選項對話框

在 Debug 選項卡中選定右邊的“Use”及其中的選項“Proteus VSM Simulator”,如果 Proteus 與 Keil C 安裝在同一臺計算機中,右邊“Setting”中的Host 與 Port 可保持默認 值 127.0.0.1 與 8000 不變,如圖所示。在跨計算機調(diào)試時則需要進行相應(yīng)的修改。




完成上述設(shè)置后,在 Keil μVision3 中全速運行程序時,Proteus 中的單片機系統(tǒng)也

會自動運行,出現(xiàn)的聯(lián)調(diào)界面如圖 4-4 所示。左半部分為 Keil μVision3 的調(diào)試界面,右 半部分是 Proteus ISIS 的界面。如果希望觀察運行過程中某些變量的值或者設(shè)備狀態(tài),需 要在 Keil μVision3 中恰當使用各種 Step In/ Step Over/ Step Out/ Run To Cursor Line 及 Breakpoint 進行跟蹤,來觀察右面的虛擬硬件系統(tǒng)運行的情況?傊,需要把 Keil μVision3 中的各種調(diào)試手段,如單步、跳出、運行到當前行、設(shè)置斷點等恰當?shù)嘏浜蟻磉M 行單片機系統(tǒng)運行的軟硬件聯(lián)調(diào)。

需要說明的是,聯(lián)調(diào)方式不支持需要調(diào)試的程序工程的中文名字,因此應(yīng)將中文名字改 為英文名字,例如,需將 “流水燈.Uv2”工程文件的名字改為英文字符的名字“LSD.Uv2”。

需要注意的是,這種聯(lián)調(diào)方式在有些場合并不適用。例如鍵盤矩陣掃描時,就不能用單 步跟蹤,因為程序運行到某一步驟時,如果單擊按鍵后,再到 KeilC 中繼續(xù)單步跟蹤,這 時按鍵早已釋放了。又如程序中某些函數(shù)模擬了訪問某個芯片的程序,如果在內(nèi)部單步跟蹤, 這樣也會失去芯片時序的仿真模擬,跟蹤也是達不到效果的。

2.5 硬件斷點的設(shè)置
到目前為止,Proteus8.0 的基本使用已經(jīng)敘述完畢,前面所介紹的是基于軟件條件的仿 真中斷,另外也可以使用硬件斷點,以便當硬件條件發(fā)生時檢查代碼。

切換到原理圖部分,在左邊的部分選擇電壓探針圖標,選擇 VOLTAGE。接下來在編輯 窗口單擊,開始進行探針的放置,即移動鼠標到想要放置探針的位置,左鍵單擊即可,如圖:






現(xiàn)在右鍵單擊探針,從彈出的菜單中選擇編輯屬性(Edit Properties),如下圖:



實時斷點類型選擇數(shù)字的(Digital),如果想在低電平進行觸發(fā),輸入 0 作為觸發(fā)值, 即在 Trigger Value(觸發(fā)值)處輸入 0;同時還可以設(shè)置裝備時間(Arm at Time),來跳過斷 點等




2.7 .診斷模式的設(shè)定

在 Proteus 中仿真診斷信息是一個十分有用又容易被人忽略的工具,它提供一個窗口, 允許用戶查看指定外設(shè)上仿真活動的文字性報告。下面介紹一下它的使用。


切換到原理圖界面,選擇 Debug 菜單,打開后找到 Configure

Diagnostics(配置診斷信息),左鍵單擊,彈出如下對話框:


展開 ISIS,選擇需要診斷的部分,并點擊 Full Trace(所有信息),即將診斷信息輸出 等級設(shè)置為所有信息。



點擊 OK 后啟動仿真,我們會在 VSM Studio 底部看見診斷信息





3. 結(jié)論

Proteus 是世界上著名的 EDA 工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外 圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界 上唯一將電路仿真軟件、PCB 設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模 型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年又增加了 Cortex 和 DSP 系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它 也支持 IAR、Keil 和 MATLAB 等多種編譯器。
用 Proteus 軟件進行單片機系統(tǒng)仿真設(shè)計,是虛擬仿真技術(shù)和計算機多媒體技術(shù)相結(jié)合 的綜合運用,有利于培養(yǎng)學(xué)生的電路設(shè)計能力及仿真軟件的操作能力;在單片機課程設(shè)計和 全國大學(xué)生電子設(shè)計競賽中,我們使用 Proteus 開發(fā)環(huán)境對學(xué)生進行培訓(xùn),在不需要硬件 投入的條件下,學(xué)生普遍反映,對單片機的學(xué)習比單純學(xué)習書本知識更容易接受,更容易提 高。實踐證明,在使用 Proteus 進行系統(tǒng)仿真開發(fā)成功之后再進行實際制作,能極大提高 單片機系統(tǒng)設(shè)計效率。因此,Proteus 有較高的推廣利用價值。

在 Proteus 的家族里,Proteus8.0 是目前比較新的版本(最新的是 Proteus8.1 版本), 它與以前其他版本相比,界面變化很大,功能更強,總體結(jié)構(gòu)變化較大,PCB 設(shè)計和 VSM 設(shè) 計功能都有所加強,對于其兼容性,Proteus8.0 所生成的文件在 Proteus7 系列里不能運行, 而 Proteus7 生成的文件可以在Proteus8.0 里運行,說明 Proteus 的更新是向下兼容的。
與 Proteus7.0 相比,8.0 版本可以調(diào)節(jié)字體大小,但是也取消了外部文本編輯器。 Proteus8.0 對于匯編語言的應(yīng)用要求較高,同時也在一定程度上支持C51 語言的使用。值 得注意的是,Proteus8.0 版本更加偏向于匯編語言的應(yīng)用,對匯編語言給予里很大便利。


完整的pdf格式文檔51黑下載地址:
詳細的Proteus8.0教程.pdf (1.49 MB, 下載次數(shù): 5)







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1