Proteus V8 的特殊調試與診斷功能的開發
摘要—本文主要以 Proteus8.0 版本的功能及使用為基礎,主要介紹工程的創建、編譯 器的配置、基本調試等一些基本問題,并探討 Proteus8.0 的一些新特點新功能,最后與 Proteus7.0 做出對比得出結論。
關鍵詞—Proteus8.0 ,Proteus7.0;
1.簡介 Proteus 軟件是英國 Lab Center Electronics 公司出版的 EDA 工具軟件(該軟件中國 總代理為廣州風標電子技術有限公司)。它不僅具有其它 EDA 工具軟件的仿真功能,還能仿 真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具。雖然目前國內推廣 剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工 作者的青睞。 同時,Proteus 還是一個巨大的教學資源,可以用于模擬電路與數字電路的教學實驗、 單片機與嵌入式系統的教學實驗、微控制器系統的綜合實驗、創新實驗與畢業設計等。 Proteus 可以與廣大學生相結合,打造成一個口袋實驗室。
在 Proteus 家族里,Proteus8.0 是目前較新的版本(最新的是 8.1 版),Proteus8.0 版 本的出現具有重要的意義,它也與其他版本有著很明顯的不同,再此進行詳細介紹 Proteus8.0 版本的使用過程。
2.使用過程
2.1 創建新工程
假定此時已安裝了 Proteus8.0 版本。
選擇并點開 Proteus 8 Professional,首先需要新建一個工程,由于本教程是與 PCB 繪 制教程相關聯的,所以此時的工程是一個帶有原理圖、PCB 和源代碼編譯部分的工程。
點擊 File,如圖 ,選擇 New Project,將出現新建工程向導部 分,在此可以設置文件名(Name)和保存路徑(Path)
點擊 Next,在下一頁的頂部選項卡中,選擇“從選中的模板中創建原理圖”(Create a
Schematic from the selected template),在此可選擇默認(DFAULT)。如果不需要繪制 原理圖,可直接選擇 Do not create a schematic。
繼續點擊 Next,選擇“從選擇的模板中創建 PCB 設計”(Create a PCB layout from the selected template),在此可繼續選擇默認(DFAULT)。如果不需要進行 PCB 設計,可直 接選擇 Do not create a PCB layout。
由于本教程需要仿真,所以繼續點擊 Next,在仿真頁面選擇 Create Firmware Project, 并設置 Family(系列)-8051,Contoller(控制器)-AT89C51,Compiler(編譯器)-ASEM-51, 也就是在此設計外部代碼編譯器。如果不需要進行仿真,則可直接選擇 No Firmware Project 即可。
點擊 Next,新工程便創建完畢。此時的新工程包含原理圖設計部分、PCB 繪制部分和源 代碼部分。
2.2 在 Proteus 中進行匯編代碼的調試
Proteus8.0 版本自身支持匯編語言,故先以匯編語言為例。 由于前面已經設置過外部代碼編譯器,所以此時工程包含 Source Code(源代碼),如 果前面沒設置或者不小心刪除后,也可以在此新建,方法為點擊 Source ,
選擇 Create Project,再次設置 Family(系列)-8051,Contoller(控制器)-AT89C51, Compiler(編譯器)-ASEM-51 即可。 Proteus8.0 或以上版本自帶源代碼編輯、編譯器,所以不再需要外部文本編輯器。 具體操作界面如圖所示,在指定位置(Write your code here)進行編碼。
此時,編譯器、原理圖、源代碼都已準備好,點擊 Build ,選擇 Build 下的 Build Project 或者 Rebuild Project 編譯固件。 如果代碼錯誤,系統會自動提示哪行代碼出現錯誤,比如下圖:
系統在下方 IDE 的底部面板上顯示錯誤提示,即 main.asm 的匯編程序第 41 行出現錯誤, 錯誤為“illegal statement syntax”,鼠標直接點擊這句錯誤提示,系統將自動跳轉到出 錯的代碼處,這對于查錯改錯十分方便
如果編譯成功,系統不顯示錯誤。其編譯的輸出也顯示在下方 IDE 的底部面板上,最終 編譯成功后,能得到一個編譯成功的信號。
系統自動生成名為 Debug.hex 的文件,并自動拷入到前面的原理圖中,點擊按鈕 即 可仿真運行。這也是 Proteus8.0 版本與以往版本的不同之處,該版本不再需要用 Keil 編程后 生成.Hex 文件再手動拷入到原理圖中,一切都是自動完成的,節約了很多時間。
同時,Proteus 8.0 或以上版本支持 C51 語言的編譯和調試,這需要電腦本身已經安裝 Keil 或者 IAR 等可以編譯 C51 語言的軟件。Proteus 自帶匯編語言的編譯器,如果想編譯 C51,則需要找到電腦中安裝的編譯環境,也可以到網上 Download,具體如圖:
 點擊 Config ,在下拉菜單中選擇 Compilers Configuration,自動 彈出如下界面:
這個對話列出了所有支持的編譯器,并指示是否被安裝和配置。按下對話框底部的檢查 全部按鈕(Check all),Proteus 將掃描你的計算機,檢查安裝好的編譯器。如果找到 Proteus 支持的編譯器,Proteus 將自動進行配置并在 Proteus 中調用這些編譯器編譯源代碼。
其余的編譯器,Proteus 自動給出下載(Download)或者下載鏈接(Goto Website),讀 者可根據自身要求選擇下載。值得注意的是,其中有些編譯器的下載是需要收費的。 編譯成功后,如果想觀察代碼的單步運行,則需要進行如下操作:
首先要確定 Proteus 沒有運行仿真,處于停止狀態。通過“仿真控制面板”暫停按鈕啟 動仿真或暫停。
啟動仿真后,源程序頁面自動變為下圖格式:
現在說明如何設置斷點,對于上圖,要在 0111 處設置斷點,只需在需要設置斷點的代碼 處雙擊鼠標左鍵即可,斷點指示器(一個小紅點)將出現在代碼的左側;如果誤設了斷點, 只需在這行再次雙擊(或從代碼窗口中點擊鼠標右鍵選擇取消)即可取消,效果如下圖:
如果現在點擊運行程序,程序執行到斷點代碼處將自動停止。 到達斷點后,可以通過源代碼窗口右上角或 VSM Studio 調試菜單中的常用命令單步執行 代碼。另外可以使用快捷鍵 F10 和 F11 分別進行單步跳過調試和單步進入函數內部調試。 如圖:
此時,還可以觀看該代碼處的寄存器參數等,具體設置為:點擊 Debug,在下拉菜單中 選擇所需要觀測的參數。可以觀看 8051 CPU Registers、8051 CPUSFR Memory、8051 CPU Source code 等等。
其中寄存器的狀態如下(8051 CPU Registers):
2.3 在 Proteus 中進行 C 代碼的調試
如果用 C51 編程,則代碼的調試與匯編語言代碼的調試十分相似,具體如下: 首先,由于本人電腦沒有安裝有關 C51 編譯的軟件,故用 Proteus8.0 版本本身自帶的一 個例子為例。打開 Proteus8.0 之后,點擊 File,選擇 New Project,這時彈出如下對話框 如下圖,選擇 From Development Board(從開發板),并選擇 PIC16 系列下的 F1 Release 開發板,點擊 Finish,調用完畢。
此時的原理圖如下圖:
源程序如下:
當 Proteus 沒有進行仿真,處于停止狀態時,才可以進行調試,這一點與匯編語言的調試 完全一樣。
該案例包含很多源文件,所以需要在下拉菜單里選擇具體的文件來進行調試,如下圖:
此時選擇 main.c 作為例子,點擊后出現下面的 C 程序:
現在設置斷點,方法同上,只需在需要放置斷點的代碼處雙擊鼠標左鍵即可,此時會出 現一個紅點(斷點指示器),如果斷點設置錯誤,則再次雙擊鼠標左鍵,斷點即可取消,假 設在 0980 處設置斷點,如下圖所示:
此時進行仿真,結果運行到斷點處便會停止。 如果需要查看程序執行的細節,具體到每一條指令的執行過程,則可以在反匯編代碼中 進行代碼的匯編級單步調試。右鍵單擊所設斷點的代碼,選擇 Dissassembly(反匯編)或者 按 Ctrl+D,如下:
反匯編后會顯示從當前斷點到下一條指令之間所有的操作,對于上面的 0980 處設置的斷 點,將顯示 0980 到 09A2 之間的所有單步程序:
值得注意的是,反匯編的應用是匯編語言和 C51 語言編程的一大區別。
2.4 Proteus8.0 與 Keil 聯接調試
Keil 是德國 Keil 公司(ARM 公司收購)現已被開發的 8051 單片機軟件開發平臺,經過 不斷升級,現已經成為一個重要的單片機開發平臺。Keil 界面不復雜,操作也不困難,很 多優秀程序都是在 Keil 的平臺上編寫出來的。Keil 是一個重要的單片機語言開發軟件平臺, 用戶群極為龐大。 (1)Keil 的μVision3 可進行純粹的軟件仿真(仿真軟件程序,不接硬件電路);也可 以利用硬件仿真器,搭接上單片機硬件系統,在仿真器中載入項目程序后進行實時仿真;還 可以使用μVision3 的內嵌模塊 Keil Monitor-51,在不需要額外的硬件仿真器的條件下, 搭接單片機硬件系統對項目程序進行實時仿真。 (2)μVision3 調試器具備所有常規源代碼級調試,符號調試特性以及歷史跟蹤,代 碼覆蓋,復雜斷點等功能。Keil μVision3 可以編輯、編譯匯編語言、C51 語言,連接定位 目標文件和庫文件,創建.hex 文件,調試目標程序等。 下面介紹使用 Keil μVision3 來開發項目、調試程序并生成*..hex 文件來用于 Proteus
中單片機程序的開發和仿真。
前面介紹了 Proteus 下完成原理圖設計文件后,再在 keil μVision3 下編寫 C51 程序, 經過調試、編譯最終生成.hex 文件后,在 Proteus 下把.hex 文件載入虛擬單片機中,然后 進行系統聯調。如果要修改程序,需再回到 keilμVision3 下修改,再經過調試、編譯,新 生成.hex 文件,重復上述過程,直至系統正常運行為止。但是對于較為復雜的程序,如果 沒有達到預期效果,這時可能需要 Proteus 與 KeilμVision3 進行聯合調試。 聯合調試之前需要安裝 vudgi.exe 文件,文件可到 Proteus 的官方網站下載。vudgi.exe
文件安裝后,需對 Proteus 與μVision3 中進行相應設置。
2.4.1 對 Proteus8.0 的設置
首先打開 Proteus 需要聯調的程序文件,但不要運行,然后選中“調試”菜單中的“使 用遠程調試監控”選項,如下圖所示。使得 KeilμVision3 能與Proteus 進行通信。
2.4.2 對 KeilμVision3 的設置 完成上述設置后,在 KeilμVision3 中打開工程文件,然后單擊菜單【Project】→ “Options for Target”選項(或單擊工具欄上“Options forTarget”快捷按鈕),打開 如圖所示的工程,即 KeilμVision3 中的設置選項對話框
在 Debug 選項卡中選定右邊的“Use”及其中的選項“Proteus VSM Simulator”,如果 Proteus 與 Keil C 安裝在同一臺計算機中,右邊“Setting”中的Host 與 Port 可保持默認 值 127.0.0.1 與 8000 不變,如圖所示。在跨計算機調試時則需要進行相應的修改。
完成上述設置后,在 Keil μVision3 中全速運行程序時,Proteus 中的單片機系統也
會自動運行,出現的聯調界面如圖 4-4 所示。左半部分為 Keil μVision3 的調試界面,右 半部分是 Proteus ISIS 的界面。如果希望觀察運行過程中某些變量的值或者設備狀態,需 要在 Keil μVision3 中恰當使用各種 Step In/ Step Over/ Step Out/ Run To Cursor Line 及 Breakpoint 進行跟蹤,來觀察右面的虛擬硬件系統運行的情況。總之,需要把 Keil μVision3 中的各種調試手段,如單步、跳出、運行到當前行、設置斷點等恰當地配合來進 行單片機系統運行的軟硬件聯調。 需要說明的是,聯調方式不支持需要調試的程序工程的中文名字,因此應將中文名字改 為英文名字,例如,需將 “流水燈.Uv2”工程文件的名字改為英文字符的名字“LSD.Uv2”。 需要注意的是,這種聯調方式在有些場合并不適用。例如鍵盤矩陣掃描時,就不能用單 步跟蹤,因為程序運行到某一步驟時,如果單擊按鍵后,再到 KeilC 中繼續單步跟蹤,這 時按鍵早已釋放了。又如程序中某些函數模擬了訪問某個芯片的程序,如果在內部單步跟蹤, 這樣也會失去芯片時序的仿真模擬,跟蹤也是達不到效果的。 2.5 硬件斷點的設置 到目前為止,Proteus8.0 的基本使用已經敘述完畢,前面所介紹的是基于軟件條件的仿 真中斷,另外也可以使用硬件斷點,以便當硬件條件發生時檢查代碼。
切換到原理圖部分,在左邊的部分選擇電壓探針圖標 ,選擇 VOLTAGE。接下來在編輯 窗口單擊,開始進行探針的放置,即移動鼠標到想要放置探針的位置,左鍵單擊即可,如圖:
現在右鍵單擊探針,從彈出的菜單中選擇編輯屬性(Edit Properties),如下圖:
實時斷點類型選擇數字的(Digital),如果想在低電平進行觸發,輸入 0 作為觸發值, 即在 Trigger Value(觸發值)處輸入 0;同時還可以設置裝備時間(Arm at Time),來跳過斷 點等
2.7 .診斷模式的設定
在 Proteus 中仿真診斷信息是一個十分有用又容易被人忽略的工具,它提供一個窗口, 允許用戶查看指定外設上仿真活動的文字性報告。下面介紹一下它的使用。
切換到原理圖界面,選擇 Debug 菜單 ,打開后找到 Configure
Diagnostics(配置診斷信息),左鍵單擊,彈出如下對話框:
展開 ISIS,選擇需要診斷的部分,并點擊 Full Trace(所有信息),即將診斷信息輸出 等級設置為所有信息。
點擊 OK 后啟動仿真,我們會在 VSM Studio 底部看見診斷信息
3. 結論
Proteus 是世界上著名的 EDA 工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外 圍電路協同仿真,一鍵切換到 PCB 設計,真正實現了從概念到產品的完整設計。是目前世界 上唯一將電路仿真軟件、PCB 設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模 型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年又增加了 Cortex 和 DSP 系列處理器,并持續增加其他系列處理器模型。在編譯方面,它 也支持 IAR、Keil 和 MATLAB 等多種編譯器。 用 Proteus 軟件進行單片機系統仿真設計,是虛擬仿真技術和計算機多媒體技術相結合 的綜合運用,有利于培養學生的電路設計能力及仿真軟件的操作能力;在單片機課程設計和 全國大學生電子設計競賽中,我們使用 Proteus 開發環境對學生進行培訓,在不需要硬件 投入的條件下,學生普遍反映,對單片機的學習比單純學習書本知識更容易接受,更容易提 高。實踐證明,在使用 Proteus 進行系統仿真開發成功之后再進行實際制作,能極大提高 單片機系統設計效率。因此,Proteus 有較高的推廣利用價值。
在 Proteus 的家族里,Proteus8.0 是目前比較新的版本(最新的是 Proteus8.1 版本), 它與以前其他版本相比,界面變化很大,功能更強,總體結構變化較大,PCB 設計和 VSM 設 計功能都有所加強,對于其兼容性,Proteus8.0 所生成的文件在 Proteus7 系列里不能運行, 而 Proteus7 生成的文件可以在Proteus8.0 里運行,說明 Proteus 的更新是向下兼容的。 與 Proteus7.0 相比,8.0 版本可以調節字體大小,但是也取消了外部文本編輯器。 Proteus8.0 對于匯編語言的應用要求較高,同時也在一定程度上支持C51 語言的使用。值 得注意的是,Proteus8.0 版本更加偏向于匯編語言的應用,對匯編語言給予里很大便利。
完整的pdf格式文檔51黑下載地址:
詳細的Proteus8.0教程.pdf
(1.49 MB, 下載次數: 146)
2018-12-5 11:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|