xiaochunz 2007-10-13 10:40
Keil与Proteus成功联调
下面的一到五步骤,是别人写,忘记来源了,在此引用,先感谢原作者。接下来的内容,是在实际联调中,我又发现一些注意点,不知是否是必然的规律,大家一块探讨,恳请指正!!
首先,你要下载安装这两个软件了。Proteus可以到官方网站([url]http://www.labcenter.co.uk/)[/url]下载试用板(试用版无存盘功能),最新版本是6.5。Keil也可以到它的官方网站([url]http://www.keil.com)/[/url]去下载它的demo板(有2K代码限制),最新的版本是7.20。下载后就可以安装了。
第二步,安装完毕,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\目录下的 VDM51.dll文件复制到 C:\Keil\C51\BIN文件夹下。(目录名都是默认的,你可以根据你实际安装的目录进行复制。)
第三步,用记事本(其它的编辑软件也可以,如Ultra Edit)打开Keil 根目录下的 TOOLS.INI 文件,在[C51] 栏目下加入 TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ) ,其中“TDRV3” 中的 “3”要根据实际情况写,不要和原来的重复。(我的这个文件中已经有了从TDRV1到TDRV4, 所以我用的是TDRV5)
第四步,keil的设置。为了让读者更好的了解这个过程,笔者以Proteus自带的例子来说明。把"C:\Program Files\Labcenter Electronics\Proteus 6 Professional\SAMPLES"的"8051 LCD Driver”文件夹复制到新建的Proteus文件夹下。运行keil程序,在"8051 LCD Driver"文件夹下建立一个新的名为8051 LCD Driver工程。单片机的型号选择AT89C52就可以,把LCDDEMO 文件加到"Source Group 1"组里。点击工具栏的"option for target"按钮,在出现的对话框里点击"Debug",在右栏上部的下拉菜单里选中" Proteus VSM Monitor-51 Driver",还要点击一下Use前面的小圆点。
再点击"Setting"设置通信接口,在Host后面添上"127.0.0.1",如果你是用的不是同一台电脑,在这里添上另一台电脑的IP地址(另一台电脑安装Proteus)。 在Port后面添上"8000"。点击"OK"按钮即可。最后把工程编译一下。
第五步,Proteus的设置。运行Proteus的ISIS,鼠标左键点击菜单"DEBUG",选中"use romote debuger monitor"。下面我们用鼠标左键点击菜单"File",再点击"Load Design",导入"8051 LCD Driver"文件夹下的LCDDEMO.design文件。
本人在参照以上调试时,有发现的几点注意:
1. 一定要把keil的工程和Proteus的文件放到同一个目录下(这里所说的Keil的工程指工程的目录,即Proteus的工程Design文件(后缀名。DSN)要和包含了Keil工程文件的那个文件夹在同一层目录下)。(经过操作发现:Keil的工程目录文件夹一定要命名为keil(可能与路径设置有关,目前还不清楚,且Keil工程名与Proteus工程名相同),否则proteus报错:Unable to open HEX file 'Keil\DS1302.hex'. keil报错: target dll has been cancelled debugger aborted!)
2. 6.9以上版本需要添加与Keil联调补丁Vdmagdi.exe,其作用就是添加在程序目录keil/c51/bin目录下添加Vdm51.dll,(注意:与其他版本不同,6.9以上版本Proteus 6 Professional\MODELS\目录下没有 VDM51.dll)并且修改keil目录下tools配置文件,添加两行文本:TDRV8=BIN\VDM51.DLL ("Proteus VSM Simulator")
BOOK2=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver"),经过实际操作证明,手动操作也可成功实现联调功能,其中第二行非必需,所以不一定要安装补丁Vdmagdi.exe,至于Proteus 6 Professional\BIN目录下Prospice.dll的作用,有网友说与授权有关,确有可能。默认安装的版本是2006.6.17,本人用2006.6.26版本代替后,联调才成功,但是用更新的2006.8.18替换时,联调又会失败。
3. 必须生成烧写文件
4. proteus的debug菜单下选定"use romote debuger monitor
[color=Red][b]注明:用proteus6.9 SP4和Keil uVision3版本联调成功的[/b][/color]
[[i] 本帖最后由 xiaochunz 于 2007-10-26 14:20 编辑 [/i]]
xiaochunz 2007-10-17 08:55
好不容易总结的东西,打了半天字,这么多人看,没人顶,伤心! 自己顶,让更多人分享!
forpeople 2007-10-23 11:49
[size=12px]谢谢,楼主辛苦了~~[/size]
[size=12px] [/size]
[size=12px]我也试过,但不熟练[/size]
bluesky4016 2007-10-23 19:06
谢谢楼主
正在研究这个呢
xiaochunz 2007-10-26 14:23
[color=Red]又传了几个联调实例,有兴趣的可以一试,挺有意思的!!![/color]
[color=Red]http://eetop.com.cn/bbs/thread-81692-1-1.html[/color]
wahaha12222 2007-10-26 21:37
文字挺累啊.!!!!!!!!!!!
liuxs971102 2007-11-8 13:27
d顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶!!谢谢搂主
forpeople 2007-11-19 11:35
很好用的 ,我 试过了 谢谢
mok152 2007-11-24 15:27
谢谢楼主
我的是KEIL8.05和PROTEUS7.1
怎么办? 也一样吗?
xiaochunz 2007-12-8 16:08
应该是大同小异的,关键是要进行实际操作,才会发现一些细节问题。
bryant06 2007-12-12 18:32
谢谢,以前用过.现在也想用这个调试一些东西
lgh269 2007-12-14 17:32
新版本的KEIL及PROTEUS调试也差不多这样,
PROTEUS论坛很多相关讲解
oohope 2007-12-16 14:33
好啊,写的还不错的哦
我也来看看了:lol :lol
YUN1999 2007-12-17 16:18
up~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xiao1117 2007-12-26 08:57
顶楼主的经验之谈