记录一下Proteus仿真的一些设置和使用,以方便自己以后复习和大家交流!如有错误,希望大家指正。

1、Proteus软件的安装,这里就不作说明了。

(上图为安装完打开的软甲)

2、Keil与Proteus安装连接操作

第一步,Keil 与Proteus连接,连接开始必须在Proteus安装目录下 VDM51.dll文件复制到Keil安装目录的Keil\C51\BIN 目录中,但新版本中没有,

!!!所以必须下载安装补丁vdmagdi.exe,则在Keil安装目录的Keil\C51\BIN 目录中有文件:VDM51.dll。

第二步、修改keil安装目录下 Tools.ini文件

用记事本(其它的编辑软件也可以,如Ultra Edit)打开Keil 根目录下的 TOOLS.INI 文件,在[C51] 栏目下加入

TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ) ,其中“TDRV3” 中的 “3”要根据实际情况写,不要和原来的重复。

第三步、打开proteus,画出相应电路。

在proteus的debug(调试)菜单中选中(使用远程调试监控)use remote debug monitor 。

在keil中编写MCU的程序。 进入KEIL的project(工程)菜单(为目标target1设置选项)option for target '工程名'。在debug(调试)选项中右栏上部的下拉菜选中 Proteus VSM Monitor-51 Driver。

【例】一个实际例子:

1、在Proteus上画下面的图

画完之后建立一个文件夹保存(最好是英文路径),同时在proteus的debug(调试)菜单中选中(使用远程调试监控)use remote debug monitor 。

2、写代码,文件保存在上面的文件夹中,在Keil中写以下的代码并编译

/* 	名称:闪烁的LED
说明:LED按设定的时间间隔闪烁
*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}

设置生产HEX文件,并设置下面的(上文有提到的)

3、现在就在可以用Keil调试的

所以要双击AT89C51芯片,

在Program file(即第四个空行)点击右边的小文件夹图标,找到路径中的hex文件

重新在Keil中仿真,

此时是没有出现黄色的错误的。OK

4、下面是Proteus的自己仿真,点击下面的开始

05-11 20:37