关注 Proteus有一段时间了,今天终于自己动手仿真了一次。刚开始用还不太习惯这个东东。比如一般类似软件都是左键选取,右键属性,而Proteus却相反,其大致操作:右键选取; 左击所选为其属性;右击所选为删除。另外左击所选时,根据位置的不同,可选择不同的属性,比如左击元件体,打开元件的属性,击元件下方的< text>则是为对应的属性……。
每个元件下面的这个<text>感觉应该是放注释的,由于看着它不爽,总想将其去掉,开始采用的办法是让它为空格,即右击选中元件后,左击 <text>,在弹出对话框的Text一栏中后面加上一个空格。这样元件显示时就看不到文字。后来发现原来这个<text>具有隐藏属性,在菜单Template中有个set design defaults,其中有个Show hidden text? 将其去掉就不会再显示<text>的内容了。
还有个问题,不知道所用元件在哪个库里。初学没办法,只好在网上下载了一些别人的例子,察看其中元件的属性,记下其名字,再到自己的Design中在 Keywords里输入元件名查找,虽然有些麻烦,不过还挺有效。我想以后用熟了,哪个元件在什么库里应该就比较清楚了。
以前看的多数的Proteus的资料都是讲Proteus和Keil联合调试的,所以一直有个错觉,就是用Proteus仿真单片机必须要用Keil。经过今天的实战才明白原来不是这样,只要在MCU的属性中的"Program File"里选中用Keil或是其他什么软件生成的HEX文件(即要写入真正的板子上MCU的程序)即可,这样就相当于在电路里放了一块写好程序的 MCU。连好外围器件后就可以仿真了。
另外还发现,MCU的时钟电路(即晶振部分)也是可以不接的,同样可以在MCU的属性里设置,如在Clock Frequency 里设置为12MHz就可以了。对Proteus默认的颜色感觉不爽, 按理说应该可以自己设置一些颜色参数。经过一番摸索,发现元件的颜色,连线的颜色,背景颜色等都可以在Template菜单下对应项中设置。
仿真过程中还遇到了一个问题,我开始选用的发光二极管叫做LED,怎么运行它都不发光,但电平显示正常,又用电压表,电流表测了一下其值也是正常的。没办法,又看了一下例子,发现人家用的LED名字叫做LED-RED, 回到我的Design中以LED-为Keywords搜一下库,看下结果明白了,那个LED应该就是连电路时用的,仿真时不发光,若要其仿真时发光必须用有颜色属性的LED,我的实验中用到了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为二周期指令,机器周期为振荡周期的12倍.所以延时时间为:
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
用Keil编译,将生成的HEX文件载入电路中的MCU,仿真结果如下(红为高电平,蓝为低电平):