摘 要: Proteus是一款功能強大的EDA軟件,,利用其提供的ISIS平臺和VSM平臺可實現(xiàn)單片機的交互仿真功能,,并實現(xiàn)軟件代碼級的調(diào)試,還可借助第三方編譯軟件keil實現(xiàn)高級語言的跟蹤調(diào)試,,安裝Vdmagdi軟件能夠?qū)崿F(xiàn)Keil與Proteus的聯(lián)機調(diào)試,。熟練使用Proteus軟件不僅對單片機課堂教學(xué)和學(xué)生實驗非常有用,而且對單片機的應(yīng)用設(shè)計也有非常大的幫助,。
關(guān)鍵詞: Proteus; 單片機; 仿真
Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件,。它不僅具有其他EDA工具軟件的仿真功能,還能仿真單片機及外圍器件,,因此是目前最好的仿真單片機及外圍器件的工具?,F(xiàn)已受到單片機愛好者、從事單片機教學(xué)的教師,、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞,。Protues軟件不僅可將許多單片機實例功能形象化,還可將許多單片機實例運行過程形象化。前者可在相當(dāng)程度上得到實物演示實驗的效果,,后者則是實物演示實驗難以達到的效果,。隨著科技的發(fā)展,計算機仿真技術(shù)已成為許多設(shè)計部門重要的前期設(shè)計手段,。它具有設(shè)計靈活,、結(jié)果、過程統(tǒng)一的特點,,可縮短設(shè)計時間,,減少耗資,也可降低工程制造的風(fēng)險,。所以在單片機開發(fā)應(yīng)用中,,Proteus也能獲得越來愈廣泛的應(yīng)用。
1 單片機系統(tǒng)的Proteus設(shè)計與仿真的開發(fā)過程
Proteus強大的單片機系統(tǒng)設(shè)計與仿真功能,,使其成為單片機系統(tǒng)應(yīng)用開發(fā)和改進的手段之一,,全部過程都是在計算機上通過Proteus完成的,,其過程一般也可分為Proteus電路設(shè)計、Proteus源程序設(shè)計和生成目標(biāo)代碼文件,、Proteus仿真三步,。單片機系統(tǒng)的Proteus設(shè)計與仿真流程圖如圖1所示。
2 Proteus軟件的源碼調(diào)試功能
Proteus軟件提供了源碼調(diào)試功能,,用戶可以直接在Proteus環(huán)境下進行匯編語言的源代碼跟蹤調(diào)試,,同時還提供了與Keil、IAR等第三方編譯軟件的接口,,可采用C語言等高級語言編程,,進行跟蹤,分析指令的執(zhí)行情況,,還可通過調(diào)試菜單調(diào)出寄存器窗口,、SFR窗口、IDATA窗口,,為用戶編寫應(yīng)用程序帶來方便。
2.1 Proteus下51單片機匯編源碼調(diào)試
Proteus中的VSM(Virtual System Modelling)提供了簡單的文本編輯器SRCEDIT,它是記事本的修改版,。Proteus用它作為源程序的編輯環(huán)境,,可在該編輯器中按單片機語言系統(tǒng)規(guī)則編寫源程序。其中的菜單,、命令按鈕與一般“窗口”的菜單,、按鈕及其功能基本一樣。VSM對于不同系列的微處理器提供了相應(yīng)的編譯器,,即目標(biāo)代碼生成工具,,可根據(jù)單片機型號及語言要求來選取編譯器,51單片機及其兼容單片機的代碼生成工具選用ASM51,。
利用Proteus提供的源程序編輯器編寫一個文件名為小燈亮.ASM源程序,,如圖2所示。
程序編寫后,,即可進行目標(biāo)代碼生成工具設(shè)置,,如果首次使用某一編譯器,則需設(shè)置代碼產(chǎn)生工具,,單擊菜單“Source-Add/Remove Code Generation Tools”,,如圖3所示。其中,,Code Generation Tool(代碼產(chǎn)生工具)設(shè)置為ASEM51,;Make Rules(生成規(guī)則)中,Source Extn(源程序擴展名)設(shè)置為ASM,;Obj Extn(目標(biāo)代碼擴展名)設(shè)置為HEX,;Command Line(命令行)設(shè)置為%1,;Debug Data Extraction(調(diào)試數(shù)據(jù)提取)中,,List File Extn設(shè)置為LST,。然后單擊“Source-Build All”(全編譯、匯編),,編譯結(jié)果在彈出的編譯日志對話框中,,無錯則生成目標(biāo)代碼文件。對ASEM51系列及其兼容單片機而言,,目標(biāo)代碼文件格式為*.HEX,。目標(biāo)代碼文件“小燈亮.HEX”。若有錯,,則可根據(jù)編譯日志提示來調(diào)試源程序,,直至無錯生成目標(biāo)代碼文件為止。
但有時會出現(xiàn)編譯通不過,,如圖4所示,。這時可以考慮將命令行的參數(shù)設(shè)置為%1%2%3,即可完成編譯,。然后雙擊ISIS編輯區(qū)中單片機,,在其中的“Program File”右側(cè)框中輸入目標(biāo)代碼文件(目標(biāo)代碼與DSN文件在同一目錄下,直接輸入代碼文件名即可,,否則要寫出完整的路徑,。或單擊本欄打開按鈕,,選取目標(biāo)文件),,至此完成了程序的加載。此時可以進行仿真調(diào)試了,。
2.2 Proteus下51單片機C51源碼調(diào)試
Proteus中只支持匯編語言源程序的調(diào)試,,如果使用高級語言編寫源程序,可以選用第三方調(diào)試軟件如Keil,,Proteus裝載器支持的51系列單片機調(diào)試文件格式主要有OMF51,這種格式可以在Keil編譯器中設(shè)置,,所以如果使用Proteus VSM的源碼調(diào)試功能,就需要匯編器/編譯器輸出Proteus支持的調(diào)試格式文件,,這樣裝載器就能從這些調(diào)試文件中調(diào)試信息以實現(xiàn)源碼調(diào)試,。這里以“按鍵識別”為例。首先在Keil中建立一個“按鍵識別”的工程,,打開此工程,,左擊選中“Target1”,然后右擊在打開的快捷菜單中選擇“Options for Target Target1”,在新打開的對話框中選擇“Output ”選項卡,如圖5所示,。
將Name of Executable中的文件擴展名設(shè)置成.OMF格式,,這里的點一定不能丟掉,勾選Create Executable :中Debug Informatio Browse Informati 選項,,如圖5所示,。確定后對“按鍵識別”這個工程編譯后即可得到OMF51。
雙擊打開ISIS編輯區(qū)中單片機,, 加載OMF文件如圖6所示,,單擊OK。
3 Keil與Proteus的交互
首先在ISIS平臺上完成單片機系統(tǒng)的電路設(shè)計,,在Keil開發(fā)環(huán)境中用匯編語言或C語言完成程序的編寫,、編譯,最后生成二進制或十六進制文件,,雙擊打開ISIS編輯區(qū)中單片機,,加載生成的二進制或十六進制文件,單擊OK,。單擊ISIS區(qū)的仿真按鈕,,即可實現(xiàn)仿真。如果有錯,,需要分別檢查電路設(shè)計和Keil中的程序編寫是否正確,,然后再進行加載仿真直到正確為止。也可以安裝Vdmagdi軟件,,即可實現(xiàn)Proteus與Keil的聯(lián)調(diào),。具體方法如下,。
3.1 Keil設(shè)置
在Keil軟件上單擊“工程菜單→為目標(biāo)‘目標(biāo)1’選擇設(shè)備”選項或者單擊工具欄的按鈕,,彈出窗口如圖8所示,單擊“調(diào)試”選項卡,,在出現(xiàn)的對話框中,,在右欄上部的下拉菜單里選中“PROTEUS VSM MONITOR-51DRIVER”。并且還要單擊“使用”前面的小圓點表明選中當(dāng)前的設(shè)置,。再單擊“設(shè)置”按鈕,,設(shè)置通信接口,在“Host”后面添上“127.0.0.1”,,如果使用的不是同一臺計算機,,則需要在這里添上另一臺計算機的IP地址(另一臺計算機也應(yīng)安裝Proteus)。在“Port”后面添加“8000”,。單擊“OK”按鈕即可,。最后將工程編譯,進入調(diào)試狀態(tài),并運行,。
3.2 Proteus的設(shè)置
進入Proteus的ISIS,,鼠標(biāo)左鍵單擊菜單“Debug”,選中“Use Romote Debuger Monitor”,,便可實現(xiàn)Keil與Proteus連機調(diào)試,。
本文對Proteus與單片機的交互仿真方法進行了分析和總結(jié),結(jié)果表明充分利用Proteus提供的仿真環(huán)境,,能夠完成一個具有相當(dāng)集成性的單片機系統(tǒng),并可方便,、靈活、高效地進行源代碼的跟蹤調(diào)試,,實現(xiàn)Proteus與單片機的交互仿真,。
參考文獻
[1] 畢萬新,孟曉明,,宋國平.PROTEUS下的51單片機源碼調(diào)試的實現(xiàn)方法[J]. 遼寧師專學(xué)報,
2010,12(1):52-53.
[2] 李學(xué)禮. 在PROTEUS中實現(xiàn)C51源碼級的調(diào)試[EB/OL].[2010-11-04]//www.go-gddq.com/
html/s693/2010-11/513393.htm.
[3] 張文祥,李志軍,,張子紅,等. 單片機系統(tǒng)設(shè)計與開發(fā)教 程[M].北京:電子工業(yè)出版社, 2010.
[4] 張子紅,劉鑫. 基于Proteus的單片機課程教學(xué)改革[J].單片機與嵌入式系統(tǒng)應(yīng)用,,2010(11):15-18.