關(guān)注 Proteus有一段時(shí)間了,今天終于自己動(dòng)手仿真了一次。剛開(kāi)始用還不太習(xí)慣這個(gè)東東。比如一般類(lèi)似軟件都是左鍵選取,右鍵屬性,而Proteus卻相反,其大致操作:右鍵選取; 左擊所選為其屬性;右擊所選為刪除。另外左擊所選時(shí),根據(jù)位置的不同,可選擇不同的屬性,比如左擊元件體,打開(kāi)元件的屬性,擊元件下方的< text>則是為對(duì)應(yīng)的屬性……。
每個(gè)元件下面的這個(gè)<text>感覺(jué)應(yīng)該是放注釋的,由于看著它不爽,總想將其去掉,開(kāi)始采用的辦法是讓它為空格,即右擊選中元件后,左擊 <text>,在彈出對(duì)話(huà)框的Text一欄中后面加上一個(gè)空格。這樣元件顯示時(shí)就看不到文字。后來(lái)發(fā)現(xiàn)原來(lái)這個(gè)<text>具有隱藏屬性,在菜單Template中有個(gè)set design defaults,其中有個(gè)Show hidden text? 將其去掉就不會(huì)再顯示<text>的內(nèi)容了。
還有個(gè)問(wèn)題,不知道所用元件在哪個(gè)庫(kù)里。初學(xué)沒(méi)辦法,只好在網(wǎng)上下載了一些別人的例子,察看其中元件的屬性,記下其名字,再到自己的Design中在 Keywords里輸入元件名查找,雖然有些麻煩,不過(guò)還挺有效。我想以后用熟了,哪個(gè)元件在什么庫(kù)里應(yīng)該就比較清楚了。
以前看的多數(shù)的Proteus的資料都是講Proteus和Keil聯(lián)合調(diào)試的,所以一直有個(gè)錯(cuò)覺(jué),就是用Proteus仿真單片機(jī)必須要用Keil。經(jīng)過(guò)今天的實(shí)戰(zhàn)才明白原來(lái)不是這樣,只要在MCU的屬性中的"Program File"里選中用Keil或是其他什么軟件生成的HEX文件(即要寫(xiě)入真正的板子上MCU的程序)即可,這樣就相當(dāng)于在電路里放了一塊寫(xiě)好程序的 MCU。連好外圍器件后就可以仿真了。
另外還發(fā)現(xiàn),MCU的時(shí)鐘電路(即晶振部分)也是可以不接的,同樣可以在MCU的屬性里設(shè)置,如在Clock Frequency 里設(shè)置為12MHz就可以了。對(duì)Proteus默認(rèn)的顏色感覺(jué)不爽, 按理說(shuō)應(yīng)該可以自己設(shè)置一些顏色參數(shù)。經(jīng)過(guò)一番摸索,發(fā)現(xiàn)元件的顏色,連線(xiàn)的顏色,背景顏色等都可以在Template菜單下對(duì)應(yīng)項(xiàng)中設(shè)置。
仿真過(guò)程中還遇到了一個(gè)問(wèn)題,我開(kāi)始選用的發(fā)光二極管叫做LED,怎么運(yùn)行它都不發(fā)光,但電平顯示正常,又用電壓表,電流表測(cè)了一下其值也是正常的。沒(méi)辦法,又看了一下例子,發(fā)現(xiàn)人家用的LED名字叫做LED-RED, 回到我的Design中以L(fǎng)ED-為Keywords搜一下庫(kù),看下結(jié)果明白了,那個(gè)LED應(yīng)該就是連電路時(shí)用的,仿真時(shí)不發(fā)光,若要其仿真時(shí)發(fā)光必須用有顏色屬性的LED,我的實(shí)驗(yàn)中用到了LED-RED和LED-GREEN(紅和綠)。
用Proteus搭建的電路圖如下:
所用匯編程序如下:
org 0000h
mov a,#0feh
loop: mov p0,a
lcall delay
rl a
ajmp loop
delay: mov r7,#100 ;djnz為二周期指令,機(jī)器周期為振蕩周期的12倍.所以延時(shí)時(shí)間為:
temp1: mov r6,#02h ;100×2×255×2×12×(1/12) =100ms,
temp2: mov r5,#0ffh
djnz r5,$
djnz r6,temp2
djnz r7,temp1
ret
end