在Proteus中實(shí)現(xiàn)單片機(jī)交互仿真的方法探討
摘 要: 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í)語(yǔ)言的跟蹤調(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ī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。Protues軟件不僅可將許多單片機(jī)實(shí)例功能形象化,還可將許多單片機(jī)實(shí)例運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。隨著科技的發(fā)展,計(jì)算機(jī)仿真技術(shù)已成為許多設(shè)計(jì)部門(mén)重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活、結(jié)果、過(guò)程統(tǒng)一的特點(diǎn),可縮短設(shè)計(jì)時(shí)間,減少耗資,也可降低工程制造的風(fēng)險(xiǎn)。所以在單片機(jī)開(kāi)發(fā)應(yīng)用中,Proteus也能獲得越來(lái)愈廣泛的應(yīng)用。
1 單片機(jī)系統(tǒng)的Proteus設(shè)計(jì)與仿真的開(kāi)發(fā)過(guò)程
Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使其成為單片機(jī)系統(tǒng)應(yīng)用開(kāi)發(fā)和改進(jìn)的手段之一,全部過(guò)程都是在計(jì)算機(jī)上通過(guò)Proteus完成的,其過(guò)程一般也可分為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)行匯編語(yǔ)言的源代碼跟蹤調(diào)試,同時(shí)還提供了與Keil、IAR等第三方編譯軟件的接口,可采用C語(yǔ)言等高級(jí)語(yǔ)言編程,進(jìn)行跟蹤,分析指令的執(zhí)行情況,還可通過(guò)調(diào)試菜單調(diào)出寄存器窗口、SFR窗口、IDATA窗口,為用戶編寫(xiě)應(yīng)用程序帶來(lái)方便。
2.1 Proteus下51單片機(jī)匯編源碼調(diào)試
Proteus中的VSM(Virtual System Modelling)提供了簡(jiǎn)單的文本編輯器SRCEDIT,它是記事本的修改版。Proteus用它作為源程序的編輯環(huán)境,可在該編輯器中按單片機(jī)語(yǔ)言系統(tǒng)規(guī)則編寫(xiě)源程序。其中的菜單、命令按鈕與一般“窗口”的菜單、按鈕及其功能基本一樣。VSM對(duì)于不同系列的微處理器提供了相應(yīng)的編譯器,即目標(biāo)代碼生成工具,可根據(jù)單片機(jī)型號(hào)及語(yǔ)言要求來(lái)選取編譯器,51單片機(jī)及其兼容單片機(jī)的代碼生成工具選用ASM51。
利用Proteus提供的源程序編輯器編寫(xiě)一個(gè)文件名為小燈亮.ASM源程序,如圖2所示。
程序編寫(xiě)后,即可進(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ù)提取)中,List File Extn設(shè)置為L(zhǎng)ST。然后單擊“Source-Build All”(全編譯、匯編),編譯結(jié)果在彈出的編譯日志對(duì)話框中,無(wú)錯(cuò)則生成目標(biāo)代碼文件。對(duì)ASEM51系列及其兼容單片機(jī)而言,目標(biāo)代碼文件格式為*.HEX。目標(biāo)代碼文件“小燈亮.HEX”。若有錯(cuò),則可根據(jù)編譯日志提示來(lái)調(diào)試源程序,直至無(wú)錯(cuò)生成目標(biāo)代碼文件為止。