《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 在Proteus中實(shí)現(xiàn)單片機(jī)交互仿真的方法探討
在Proteus中實(shí)現(xiàn)單片機(jī)交互仿真的方法探討
來源:微型機(jī)與應(yīng)用2012年第2期
張子紅, 張洪全 , 李 雯
(黑龍江科技學(xué)院, 黑龍江 哈爾濱150027)
摘要: Proteus是一款功能強(qiáng)大的EDA軟件,利用其提供的ISIS平臺(tái)和VSM平臺(tái)可實(shí)現(xiàn)單片機(jī)的交互仿真功能,并實(shí)現(xiàn)軟件代碼級(jí)的調(diào)試,還可借助第三方編譯軟件keil實(shí)現(xiàn)高級(jí)語言的跟蹤調(diào)試,安裝Vdmagdi軟件能夠?qū)崿F(xiàn)Keil與Proteus的聯(lián)機(jī)調(diào)試。熟練使用Proteus軟件不僅對(duì)單片機(jī)課堂教學(xué)和學(xué)生實(shí)驗(yàn)非常有用,而且對(duì)單片機(jī)的應(yīng)用設(shè)計(jì)也有非常大的幫助。
Abstract:
Key words :

摘  要: Proteus是一款功能強(qiáng)大的EDA軟件,利用其提供的ISIS平臺(tái)和VSM平臺(tái)可實(shí)現(xiàn)單片機(jī)的交互仿真功能,并實(shí)現(xiàn)軟件代碼級(jí)的調(diào)試,還可借助第三方編譯軟件keil實(shí)現(xiàn)高級(jí)語言的跟蹤調(diào)試,安裝Vdmagdi軟件能夠?qū)崿F(xiàn)Keil與Proteus的聯(lián)機(jī)調(diào)試。熟練使用Proteus軟件不僅對(duì)單片機(jī)課堂教學(xué)和學(xué)生實(shí)驗(yàn)非常有用,而且對(duì)單片機(jī)的應(yīng)用設(shè)計(jì)也有非常大的幫助。
關(guān)鍵詞: Proteus; 單片機(jī); 仿真

    Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件。它不僅具有其他EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件,因此是目前最好的仿真單片機(jī)及外圍器件的工具?,F(xiàn)已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Protues軟件不僅可將許多單片機(jī)實(shí)例功能形象化,還可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。隨著科技的發(fā)展,計(jì)算機(jī)仿真技術(shù)已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活、結(jié)果、過程統(tǒng)一的特點(diǎn),可縮短設(shè)計(jì)時(shí)間,減少耗資,也可降低工程制造的風(fēng)險(xiǎn)。所以在單片機(jī)開發(fā)應(yīng)用中,Proteus也能獲得越來愈廣泛的應(yīng)用。
1 單片機(jī)系統(tǒng)的Proteus設(shè)計(jì)與仿真的開發(fā)過程
    Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使其成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改進(jìn)的手段之一,全部過程都是在計(jì)算機(jī)上通過Proteus完成的,其過程一般也可分為Proteus電路設(shè)計(jì)、Proteus源程序設(shè)計(jì)和生成目標(biāo)代碼文件、Proteus仿真三步。單片機(jī)系統(tǒng)的Proteus設(shè)計(jì)與仿真流程圖如圖1所示。

2 Proteus軟件的源碼調(diào)試功能
    Proteus軟件提供了源碼調(diào)試功能,用戶可以直接在Proteus環(huán)境下進(jìn)行匯編語言的源代碼跟蹤調(diào)試,同時(shí)還提供了與Keil、IAR等第三方編譯軟件的接口,可采用C語言等高級(jí)語言編程,進(jìn)行跟蹤,分析指令的執(zhí)行情況,還可通過調(diào)試菜單調(diào)出寄存器窗口、SFR窗口、IDATA窗口,為用戶編寫應(yīng)用程序帶來方便。
2.1 Proteus下51單片機(jī)匯編源碼調(diào)試
    Proteus中的VSM(Virtual System Modelling)提供了簡(jiǎn)單的文本編輯器SRCEDIT,它是記事本的修改版。Proteus用它作為源程序的編輯環(huán)境,可在該編輯器中按單片機(jī)語言系統(tǒng)規(guī)則編寫源程序。其中的菜單、命令按鈕與一般“窗口”的菜單、按鈕及其功能基本一樣。VSM對(duì)于不同系列的微處理器提供了相應(yīng)的編譯器,即目標(biāo)代碼生成工具,可根據(jù)單片機(jī)型號(hào)及語言要求來選取編譯器,51單片機(jī)及其兼容單片機(jī)的代碼生成工具選用ASM51。
    利用Proteus提供的源程序編輯器編寫一個(gè)文件名為小燈亮.ASM源程序,如圖2所示。

    程序編寫后,即可進(jìn)行目標(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(源程序擴(kuò)展名)設(shè)置為ASM;Obj Extn(目標(biāo)代碼擴(kuò)展名)設(shè)置為HEX;Command Line(命令行)設(shè)置為%1;Debug Data Extraction(調(diào)試數(shù)據(jù)提?。┲校琇ist File Extn設(shè)置為L(zhǎng)ST。然后單擊“Source-Build All”(全編譯、匯編),編譯結(jié)果在彈出的編譯日志對(duì)話框中,無錯(cuò)則生成目標(biāo)代碼文件。對(duì)ASEM51系列及其兼容單片機(jī)而言,目標(biāo)代碼文件格式為*.HEX。目標(biāo)代碼文件“小燈亮.HEX”。若有錯(cuò),則可根據(jù)編譯日志提示來調(diào)試源程序,直至無錯(cuò)生成目標(biāo)代碼文件為止。

 

 

    但有時(shí)會(huì)出現(xiàn)編譯通不過,如圖4所示。這時(shí)可以考慮將命令行的參數(shù)設(shè)置為%1%2%3,即可完成編譯。然后雙擊ISIS編輯區(qū)中單片機(jī),在其中的“Program File”右側(cè)框中輸入目標(biāo)代碼文件(目標(biāo)代碼與DSN文件在同一目錄下,直接輸入代碼文件名即可,否則要寫出完整的路徑?;騿螕舯緳诖蜷_按鈕,選取目標(biāo)文件),至此完成了程序的加載。此時(shí)可以進(jìn)行仿真調(diào)試了。

2.2 Proteus下51單片機(jī)C51源碼調(diào)試
    Proteus中只支持匯編語言源程序的調(diào)試,如果使用高級(jí)語言編寫源程序,可以選用第三方調(diào)試軟件如Keil,Proteus裝載器支持的51系列單片機(jī)調(diào)試文件格式主要有OMF51,這種格式可以在Keil編譯器中設(shè)置,所以如果使用Proteus VSM的源碼調(diào)試功能,就需要匯編器/編譯器輸出Proteus支持的調(diào)試格式文件,這樣裝載器就能從這些調(diào)試文件中調(diào)試信息以實(shí)現(xiàn)源碼調(diào)試。這里以“按鍵識(shí)別”為例。首先在Keil中建立一個(gè)“按鍵識(shí)別”的工程,打開此工程,左擊選中“Target1”,然后右擊在打開的快捷菜單中選擇“Options for Target Target1”,在新打開的對(duì)話框中選擇“Output ”選項(xiàng)卡,如圖5所示。

    將Name of Executable中的文件擴(kuò)展名設(shè)置成.OMF格式,這里的點(diǎn)一定不能丟掉,勾選Create Executable :中Debug Informatio Browse Informati 選項(xiàng),如圖5所示。確定后對(duì)“按鍵識(shí)別”這個(gè)工程編譯后即可得到OMF51。
    雙擊打開ISIS編輯區(qū)中單片機(jī), 加載OMF文件如圖6所示,單擊OK。

3 Keil與Proteus的交互
    首先在ISIS平臺(tái)上完成單片機(jī)系統(tǒng)的電路設(shè)計(jì),在Keil開發(fā)環(huán)境中用匯編語言或C語言完成程序的編寫、編譯,最后生成二進(jìn)制或十六進(jìn)制文件,雙擊打開ISIS編輯區(qū)中單片機(jī),加載生成的二進(jìn)制或十六進(jìn)制文件,單擊OK。單擊ISIS區(qū)的仿真按鈕,即可實(shí)現(xiàn)仿真。如果有錯(cuò),需要分別檢查電路設(shè)計(jì)和Keil中的程序編寫是否正確,然后再進(jìn)行加載仿真直到正確為止。也可以安裝Vdmagdi軟件,即可實(shí)現(xiàn)Proteus與Keil的聯(lián)調(diào)。具體方法如下。
3.1 Keil設(shè)置
    在Keil軟件上單擊“工程菜單→為目標(biāo)‘目標(biāo)1’選擇設(shè)備”選項(xiàng)或者單擊工具欄的按鈕,彈出窗口如圖8所示,單擊“調(diào)試”選項(xiàng)卡,在出現(xiàn)的對(duì)話框中,在右欄上部的下拉菜單里選中“PROTEUS VSM MONITOR-51DRIVER”。并且還要單擊“使用”前面的小圓點(diǎn)表明選中當(dāng)前的設(shè)置。再單擊“設(shè)置”按鈕,設(shè)置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一臺(tái)計(jì)算機(jī),則需要在這里添上另一臺(tái)計(jì)算機(jī)的IP地址(另一臺(tái)計(jì)算機(jī)也應(yīng)安裝Proteus)。在“Port”后面添加“8000”。單擊“OK”按鈕即可。最后將工程編譯,進(jìn)入調(diào)試狀態(tài),并運(yùn)行。

3.2 Proteus的設(shè)置  
    進(jìn)入Proteus的ISIS,鼠標(biāo)左鍵單擊菜單“Debug”,選中“Use Romote Debuger Monitor”,便可實(shí)現(xiàn)Keil與Proteus連機(jī)調(diào)試。
    本文對(duì)Proteus與單片機(jī)的交互仿真方法進(jìn)行了分析和總結(jié),結(jié)果表明充分利用Proteus提供的仿真環(huán)境,能夠完成一個(gè)具有相當(dāng)集成性的單片機(jī)系統(tǒng),并可方便、靈活、高效地進(jìn)行源代碼的跟蹤調(diào)試,實(shí)現(xiàn)Proteus與單片機(jī)的交互仿真。
參考文獻(xiàn)
[1] 畢萬新,孟曉明,宋國(guó)平.PROTEUS下的51單片機(jī)源碼調(diào)試的實(shí)現(xiàn)方法[J]. 遼寧師專學(xué)報(bào),
2010,12(1):52-53.
[2] 李學(xué)禮. 在PROTEUS中實(shí)現(xiàn)C51源碼級(jí)的調(diào)試[EB/OL].[2010-11-04]//www.go-gddq.com/
html/s693/2010-11/513393.htm.
[3] 張文祥,李志軍,張子紅,等. 單片機(jī)系統(tǒng)設(shè)計(jì)與開發(fā)教 程[M].北京:電子工業(yè)出版社, 2010.
[4] 張子紅,劉鑫. 基于Proteus的單片機(jī)課程教學(xué)改革[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(11):15-18.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。