|
|
(一) 一般電路的模擬調(diào)試
這里設(shè)計一個簡單的電路,我們通過這個電路來演示一下怎么進(jìn)行模擬調(diào)試的。電路圖如圖3所示。設(shè)計這個電路圖的時候需要在“Category(器件種類)”里找到“BATTERY(電池)”、“FUSE(保險絲)”、“LAMP(燈泡)”、“POT—LIN(滑動變阻器)”、“SWITCH(開關(guān))”這幾個元器件并添加到對象選擇器里。另外我們還需要一個虛擬儀器-電流表。點擊虛擬儀表按鈕 ,在對象選擇器找到“DC AMMETER(電流表)”,添加到原理圖編輯區(qū)。按照圖3布置元器件,并連接好。我們在進(jìn)行模擬之前還需要設(shè)置各個對象的屬性。選中電源B1,再點擊左鍵,出現(xiàn)了屬性對話框,如圖4所示。在“Component Reference”后面填上電源的名稱;在“Voltage”后面填上電源的電動勢的值,這里我們設(shè)置為12V;在“Internal Resistance”后面填上內(nèi)電阻的值1歐姆。其它的元器件的屬性設(shè)置如下:滑動變阻器的阻值為50歐姆;燈泡的電阻是10歐姆,額定電壓是12V;保險絲的額定電流是1A,內(nèi)電阻是0.1歐姆。
點擊菜單欄的“Debug(調(diào)試)”下的 或者點擊模擬調(diào)試按鈕的運(yùn)行按鈕 ,也可以按下快捷鍵“Ctrl+F12”進(jìn)入模擬調(diào)試狀態(tài)。把鼠標(biāo)指針移到開關(guān)的 這個時候出現(xiàn)了一個“+”號,點擊一下,就合上了開關(guān),如果想打開開關(guān)鼠標(biāo)指針移到 將出現(xiàn)一個“-”號,點擊一下就會打開開關(guān)的。開關(guān)合上以后我們就發(fā)現(xiàn)燈泡已經(jīng)點亮了,電流表也有了示數(shù)。把鼠標(biāo)指針移到滑動變阻器附近的 分別點擊,使電阻變大或者變小,這個時候我們會發(fā)現(xiàn)燈泡的亮暗程度發(fā)生了變化,電流表的示數(shù)也發(fā)生了變化。如果電流超過了保險絲的額定電流,這個時候保險絲就會熔斷的。可惜在調(diào)試狀態(tài)下沒有修復(fù)的命令。我們可以這樣修復(fù)的:按 按鈕停止調(diào)試,然后再進(jìn)入調(diào)試狀態(tài),保險絲就修復(fù)好了。
(二)、單片機(jī)電路的模擬
★ 電路設(shè)計 首先我們設(shè)計一個簡單的單片機(jī)的電路,如圖5所示。電路的核心是單片機(jī)AT89C52,C1、C2和晶振X1構(gòu)成典型的單片機(jī)上電復(fù)位電路;八個發(fā)光二極管負(fù)極接到單片機(jī)的P2口,二極管的正極通過限流電阻接到電源的正極,這樣的話,當(dāng)單片機(jī)是低電平時,點亮發(fā)光二極管,單片機(jī)是高電平的時候,發(fā)光二極管熄滅。四個按鍵一端接到單片機(jī)的P3.2、P3.3、P3.4、P3.5腳,另一端接地,當(dāng)按下按鍵時相應(yīng)的單片機(jī)I/O口就接到了低電平。
★ 電路功能 按下按鍵K1時,八個發(fā)光二極管從LED1到LED8開始輪流發(fā)光,有向下流動的效果。當(dāng)按下按鍵K2時發(fā)光二極管停止發(fā)光。在二極管流動發(fā)光的情況下按下按鍵K3,發(fā)光二極管會向下流動;按下按鍵K4發(fā)光二極管將向上流動。
★ 程序設(shè)計 程序主要有按鍵檢測子程序、按鍵處理子程序、流動發(fā)光子程序等組成。設(shè)計好的程序見本刊網(wǎng)站。
★ 程序的編輯 ISIS有自己編輯器的,不過其功能不敢恭維,我們還是用Ultra Edit吧。點擊菜單欄的“Source”,在下拉菜單點擊“Setup External Text Editor(設(shè)置外部的文本編輯器)”,出現(xiàn)一個對話框如圖6所示。在出現(xiàn)的對話框里點擊“Browse(瀏覽)”按鈕,找到你安裝Ultra Edit的目錄,選中“Uedit32.exe”,點擊打開。其它的可以默認(rèn),最后點擊“OK”,這樣我們就可以在Ultra Edit編輯文件了。
★程序的編譯 ISIS有自帶的編譯器,有ASM的、PIC的、AVR的匯編器等。當(dāng)然我們也可以添加新的編譯器,比如可以加上Keil的C編譯器的,方法如下:點擊菜單欄的“Source”,在下拉菜單點擊“ Define Code Generation Tools(定義代碼編譯工具)”,出現(xiàn)一個對話框,如圖7所示。點擊“NEW” 按鈕,在出現(xiàn)的對話框里找到你安裝Keil目錄下的C51/BIN下的C51.EXE,點擊打開。然后,在Source Extn 后面添寫上“C”;在Obj. Extn后面填上“HEX”;在command
Line后面填上“1%”;其它的默認(rèn)就可以。同樣你也可以把Keil的匯編器添加上,它也在Keil目錄下的C51/BIN文件夾里,是A51.EXE。此時要在Source Extn 后面添寫上“ASM”,因為它編譯的是后綴是ASM的匯編源程序。在Ultra Edit里打開筆者設(shè)計的huayang.asm文件,然后我們在ISIS也添加上這個文件,方法如下:點擊菜單欄的“Source”,在下拉菜單點擊“Add/Remove Source Files(添加或刪除源程序)”,出現(xiàn)一個對話框,如圖8所示。點擊對話框的“NEW”按鈕,在出現(xiàn)的對話框找到文件huayang.asm,點擊打開;在“Code Generation Tools”的下面找到“ASEM51”,然后點擊“OK”按鈕。設(shè)置完畢我們就可以編譯了,點擊菜單欄的“Source”,在下拉菜單點擊“Build All”,過一會,編譯的結(jié)果的對話框(BUILD Log)就出現(xiàn)在我們的面前了,如圖9所示。如果有錯誤,在對話框會告訴我們是那一行出現(xiàn)了問題,可惜的是,點擊出錯的提示,不能跳到出錯地方,但是能出現(xiàn)出錯的行號,我們在Ultra Edit添加上行號了,就知道是什么地方出錯了。
★ 模擬調(diào)試 到現(xiàn)在,我們編譯得到的結(jié)果還和ISIS原理圖中的單片機(jī)沒有關(guān)系呢。選中單片機(jī)AT89C52,左鍵點擊,在出現(xiàn)的對話框里點擊Program File后面的 按鈕,找到剛才編譯得到HEX文件,然后點擊“OK”按鈕。好了,我們終于可以模擬了。點擊模擬調(diào)試按鈕的運(yùn)行按鈕 ,進(jìn)入調(diào)試狀態(tài)。點擊按鍵K1,看到發(fā)光觀依次點亮了嗎?也試試其它的按鍵,看看效果。
我們還可以單步模擬調(diào)試,點擊 ,進(jìn)入單步調(diào)試狀態(tài),這個時候應(yīng)該出現(xiàn)如圖10所示對話框。在這個對話框里,我們可以設(shè)置斷點的。鼠標(biāo)點擊一下程序語句,此時這個語句變?yōu)楹谏c擊右鍵,出現(xiàn)一個菜單,點擊 按鈕,就在相應(yīng)的語句設(shè)置了斷點,當(dāng)然你也可以點擊右上角的 按鈕,也可以設(shè)置斷點的。點擊 按鈕可以取消斷點。
在單步模擬調(diào)試狀態(tài)下,點擊菜單欄的“Debug”,在下拉菜單的最下面我們看到了如圖11的情形。點擊Simulation Log會出現(xiàn)和模擬調(diào)試有關(guān)的信息;點擊8051 CPU FSR Memory會出現(xiàn)特殊功能寄存器(FSR)窗口;點擊8051 CPU Registers出現(xiàn)一般寄存器窗口;8051 CPU Internal
|
|