1zjxx 发表于 2020-5-19 22:37 (所用的软件为proteus7.8以及keil4) 所需要的资料:(VDM51.DLL+keil+proteus) keil与proteus联调方法如下: (1)假若Keil C51与Proteus均已正确安装在D:\Program Files的目录里,把D:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS\VDM51.dll复制到D:\Program Files\keilC\C51\BIN目录中,如果没有“VDM51.dll”文件,那么去下载一个把proteus安装目录下 (2)修改keil安装目录下 Tools.ini文件,在C51字段加入TDRV8=BIN\VDM51.DLL (“Proteus VSM Monitor-51 Driver”),并保存。注意:不一定要用TDRV8,根据原来字段选用一个不重复的数值,如“TDRV9”也可以。 (3)打开proteus,画出相应电路原理图。在proteus的Debug菜单中选中“use remote debug monitor”。 (4)在proteus中选择Debug,“Start/Restart Debugging”,如果在KEIL的Output Window的窗口中出现“VDM51 target initialized.”说明Proteus连接成功了;在keil中进行debug,如进行单步、断点等;同时在proteus中查看调试的结果。 |
madell 发表于 2020-5-20 10:10 非常感谢! |
你这个是P0端口没有定义,要么是工程没有设定好,要么是工程没有导入ASM文件,你的代码在我的KEIL4上是可以运行的,并没有报错
|
madell 发表于 2020-5-19 17:19 好的!那么您知道,keil4和keil5怎么弄,才可以和proteus联合拟真吗 我在网上找来找去,vdmagdi插件都是只支持keil2和keil3的,没有能支持keil3以上的![]() |
xuyaqi 发表于 2020-5-19 20:48 感谢大佬! 我把P0换成80h ,报错变成了 NOT AN OBJECT FILE 我把P0换成#80h ,报错变成了 EXPRESSION TYPE DOES NOT MATCH INSTRUCTION 报错内容变了,说明问题就出在这个P0这里了! |
datianmo 发表于 2020-5-19 16:30 试了一下,还是报错了,而且报错的内容不变,,, 总之还是感谢您的回复了 ![]() |
| P0直接用寄存器地址 80h 替换 |
| 程序没有问题,编译器问题,重新安装KEIL,我用KEIL4编译没有问题。 |
| 最前面一行加上ORG 0 |
| 不知会少包含标准的.h文件 |
| 高手都用汇编。 |
Y_G_G 发表于 2020-5-19 09:03 我选的是AT89C51 |
重新选择一下单片机型号,如果还是不行的话,可能是你安装的不是C51版本的KEIL
|
ByanouQ 发表于 2020-5-18 08:54 我不是高手,只是个学单片机的学生罢了 ![]() |
madell 发表于 2020-5-18 12:46 试了一下还是一样的报错,,, A51(11): error A45: UNDEFINED SYMBOL 不管怎么说还是很感谢您的回答了 ![]() |
madell 发表于 2020-5-18 12:46 好的!感谢大佬! |
ByanouQ 发表于 2020-5-18 08:54 感谢回复! |
| 取表定义错误。MOV DPTR,#SHEET 改为 MOV DPTR,#SHOW |
| 高手都用汇编语言。出错英文意思没有定义符号,好像汇编没有P0的定义吧。汇编丢很久,如果不对,望见谅!! |