|
一引言
從事單片機(jī)產(chǎn)品設(shè)計(jì)、開(kāi)發(fā)等工作的人員,經(jīng)常要對(duì)自己所編寫的程序和設(shè)計(jì)的外圍電路進(jìn)行仿真和調(diào)試。以往的單片機(jī)設(shè)計(jì)仿真,常常是制作一塊安裝實(shí)際元器件的模擬試驗(yàn)板,借助于單片機(jī)仿真軟件以及相應(yīng)的仿真器對(duì)目標(biāo)試驗(yàn)板進(jìn)行試驗(yàn)和調(diào)試。然而UMPS集成開(kāi)發(fā)環(huán)境(IDE)的出現(xiàn),成功地解決了上述問(wèn)題,使得單片機(jī)的設(shè)計(jì)和開(kāi)發(fā)完全轉(zhuǎn)化到了軟件系統(tǒng)上來(lái),從而大大縮短了產(chǎn)品的設(shè)計(jì)周期,提高了效率
二UMPS功能及特點(diǎn)簡(jiǎn)介
UMPS是Universal Microprocessor Program Simulator(通用微處理器程序仿真器)的縮寫,它是法國(guó)Virtual Micro Design公司開(kāi)發(fā)的一個(gè)單片機(jī)仿真集成開(kāi)發(fā)環(huán)境。和大多數(shù)仿真軟件一樣,UMPS具備編輯、編譯、匯編、反匯編等功能,同樣也有全速執(zhí)行、跟蹤、單步、暫停、設(shè)置斷點(diǎn)等調(diào)試功能,而且它還能夠在線下載編程。UMPS支持很多公司不同型號(hào)的單片機(jī)。如Microchip、Intel、Atmel、Motorola、SGS Thomson等等。
UMPS最強(qiáng)大的特點(diǎn)是,它擁有虛擬元器件和虛擬儀器儀表的可視化“資源”。正是因?yàn)閁MPS具有這些獨(dú)特的可視化“資源”,從而使得單片機(jī)外圍電路的元器件和仿真用的測(cè)試儀器均可從屏幕上直接選取,這些可視化的元器件 “資源”同實(shí)際外形極為相似(例如放光二極管、七段數(shù)碼管、鍵盤、按鈕、錄音機(jī)、集成塊等等),見(jiàn)圖1,用戶特別容易學(xué)習(xí)和使用。不但UMPS的虛擬元器件同實(shí)際工作狀況相似,而且它的虛擬儀器也和實(shí)際的操作、觀測(cè)相似,例如利用虛擬數(shù)字邏輯分析儀可實(shí)時(shí)觀測(cè)電路的邏輯狀態(tài)(見(jiàn)圖2),利用虛擬ADC和DAC示波器可實(shí)時(shí)觀測(cè)電壓狀態(tài)等。

圖1

圖2
三應(yīng)用舉例
為方便理解和應(yīng)用,現(xiàn)以“用PIC16C54單片機(jī)實(shí)現(xiàn)矩陣鍵盤輸入”這一常用模塊的電路和軟件設(shè)計(jì)來(lái)簡(jiǎn)要說(shuō)明該軟件的仿真應(yīng)用。
第一步、首先在該軟件主菜單下加載要選用的CPU,這里使用PIC16C54單片機(jī)。首先啟動(dòng)UMPS軟件,依次點(diǎn)擊菜單“configure Load CPU”,便出現(xiàn)圖3所示對(duì)話框。進(jìn)行單片機(jī)的選型。

圖3
第二步、畫電路圖,具體的畫法如下:
首先打開(kāi)菜單confogure,執(zhí)行命令resource,就打開(kāi)了虛擬儀器和元器件的編輯窗口,在resource窗口下單擊菜單“add”就可以就可以打開(kāi)虛擬儀器和元器件對(duì)話框,如圖4所示。該對(duì)話框左邊是虛擬儀器和元器件名稱,右邊是虛擬儀器和元器件的實(shí)物預(yù)覽,在左邊框中選擇好元器件后點(diǎn)OK按鈕,便可以將元器件加入到原理圖設(shè)計(jì)區(qū),重復(fù)上述步驟,便可以完成整個(gè)原理圖的繪制。對(duì)于本例繪制完的原理圖如圖5所示。

圖4

圖5
接下來(lái)還要注意的是光把元器件放上不行,還要進(jìn)行電氣連接:
對(duì)于本例,在電路設(shè)計(jì)區(qū)加上按鈕開(kāi)關(guān)后,用鼠標(biāo)雙擊,按鈕開(kāi)關(guān)之后彈出一個(gè)按鈕設(shè)置對(duì)話框,如圖6所示。

圖6
在該對(duì)話框中可以設(shè)置該開(kāi)關(guān)的電氣屬性,比如說(shuō),輸入“0”有效還是輸入“1”有效,開(kāi)關(guān)作用時(shí)間、是否加模擬實(shí)際開(kāi)關(guān)所產(chǎn)生的噪音,以及開(kāi)關(guān)的形式是“按鈕”形式還是“形瑪”形式?梢(jiàn)單單就一個(gè)開(kāi)關(guān)其功能就這么強(qiáng)大。按圖5放置好電路圖中的16個(gè)按鈕后現(xiàn)在就圖5中的第一個(gè)“SWC”按鈕開(kāi)關(guān)簡(jiǎn)單講解一下如何實(shí)現(xiàn)按鈕開(kāi)關(guān)如何實(shí)現(xiàn)跟單片機(jī)的電氣連接。其它元器件跟單片機(jī)的連接類似。讀者可根據(jù)這個(gè)進(jìn)行其它元件的連接。首先,鼠標(biāo)左鍵單擊“SWC”按鈕,然后單擊鼠標(biāo)右鍵,彈出圖7所示的“Resource Connection :Key_4”對(duì)話框:

圖7
此對(duì)話框用來(lái)進(jìn)行按鈕跟單片機(jī)管腳的設(shè)置。對(duì)話框中左邊一欄是所選單片機(jī)所具有的所有資源,我們這里要對(duì)單片機(jī)管腳進(jìn)行連接。所以只需要配置單片機(jī)的一般“I/O”,這里我們選擇“PORTB”端口與按鈕SWC(注意標(biāo)識(shí)為Key_4)進(jìn)行連接。從圖中我們可以看出PIC16C54單片機(jī)的“PORTB”端口共有8位,分別是b0-b7,而在“pin list”一欄里列出了該按鈕的端口—“out、in和out2”,這里 out2沒(méi)有用(這一點(diǎn)讀者可以從圖6的按鈕設(shè)置對(duì)話框中左上方的圖中發(fā)現(xiàn)該開(kāi)關(guān)的端口只有“out和in”)。接下來(lái)就是進(jìn)行連接,選中b0-b78位中的一位,然后再選中“pin list”一欄里的out或in,點(diǎn)擊下面的“Connect”圖標(biāo),這樣單片機(jī)的管腳便和按鈕開(kāi)關(guān)的管腳連接在了一起,同時(shí)連接在一起了的管腳形象的顯示在右邊“Connection list”一欄里,同理,可以完成其它管腳的連接,全部連接完畢后的圖如圖8所示:

圖8
第三步、進(jìn)行對(duì)單片機(jī)控制的軟件源程序的編寫。程序編寫完成后,要對(duì)源程序進(jìn)行編譯,直至沒(méi)有語(yǔ)法錯(cuò)誤。在編譯的過(guò)程中可以綜合利用各種變異工具,從而有效地檢查出程序錯(cuò)誤。下面是已經(jīng)編譯通過(guò)的“用PIC16C54單片機(jī)實(shí)現(xiàn)矩陣鍵盤輸入”的源程序:
keypad equ PortB
row1 equ 4
row2 equ 5
row3 equ 6
row4 equ 7
cols equ 8
key equ 9
index equ 10;以上是各個(gè)變量的定義
org 01FFh;程序入口
goto start
org 0
start:
movlw 11110000b ;鍵盤掃描:行輸出,列輸入
TRIS B
movlw 0
movwf PortA
keys call scankeys
movlw 16
subwf Key,W
btfsc STATUS,Z
goto delay
movf Key,W
movwf PORTA
delay nop
nop
decfsz index
goto delay
goto keys
scankeys clrf key
clrf keypad
movlw 4
movwf cols ;4 x 4 keypad
bsf STATUS,0 ;Put a 1 into carry
scan rlf keypad
bcf STATUS,0 ;Follow the 1 with zeros
btfsc KeyPad,row1
goto press
incf key
btfsc KeyPad,row2
goto press
incf key
btfsc KeyPad,row3
goto press
incf key
btfsc KeyPad,row4
goto press
incf key
decfsz cols
goto scan ;Try all 4 columns.
retlw 0
press retlw 0 ;Return with value in key.
上述幾步完成后的軟件界面如圖9所示。

圖9
以上準(zhǔn)備工作都做好以后,最后一步也就是最關(guān)鍵的就是進(jìn)行實(shí)際仿真調(diào)試了,運(yùn)行軟件面板上的全速運(yùn)行(也可以借助于跟蹤、單步、暫停、設(shè)置斷點(diǎn)等調(diào)試功能來(lái)實(shí)現(xiàn)最后的仿真運(yùn)行)顯示介面非常直觀同時(shí)在編輯窗口中還可以自己設(shè)置狀態(tài)變量,使得程序在運(yùn)行時(shí)將運(yùn)行結(jié)果直觀的顯示在界面上。運(yùn)行界面如上面圖9所示。
如果相應(yīng)的單片機(jī)下載電纜線,還可實(shí)現(xiàn)程序的下載,從而使程序可脫離環(huán)境運(yùn)行,無(wú)須其它軟件支持。
四結(jié)束語(yǔ)
在單片機(jī)的設(shè)計(jì)開(kāi)發(fā)中,不可能完全實(shí)現(xiàn)硬件的實(shí)際仿真,所以在特殊條件下進(jìn)行軟件仿真仿真便能跟好的體現(xiàn)出其優(yōu)點(diǎn):迅速、節(jié)約。當(dāng)然由于單片機(jī)設(shè)計(jì)需要很好考慮周圍電路環(huán)境,軟件仿真只是在一定程度上輔助硬件進(jìn)行。若能二者結(jié)合,將會(huì)產(chǎn)生最完美的效果。
作者聯(lián)系方式:西安市第二炮兵工程學(xué)院研究生二隊(duì)
姓名:牛余朋 |