找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4104|回复: 20
收起左侧

SHOW:MOV P0,A 显示 UNDEFINED SYMBOL 请问各位大佬怎么解决?

[复制链接]
ID:754356 发表于 2020-5-17 22:21 | 显示全部楼层 |阅读模式
;;;;;通过查表程序控制P0口的发光二极管周期性变换花样闪烁发光

   MAIN:CLR A         ;初始化
        MOV DPTR,#SHEET ;取表首地址
        MOV R0,A        ;初始化
   LOOP:MOV A,R0        ;准备查表
        MOVC A,@A+DPTR        ;查表
        CJNE A,#01H,SHOW        ;判断查表结束没有
        AJMP MAIN                ;若查表结束重新开始

→  SHOW:MOV P0,A                ;输出到P0口
        LCALL DELAY                ;调用延时子程序
        INC R0                ;准备下次查表
        AJMP LOOP                ;继续查表
   DELAY:MOV R7,#150                ;延时子程序
   D1:   MOV R6,#50
   D2:  MOV R5,#50
        DJNZ R5,$
        DJNZ R6,D2
        DJNZ R7,D1
        RET
   SHEET:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH  ;单灯流水2遍
         DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
         DB 0FAH,0F5H,0EBH,0D7H,0AFH,5FH,0BEH,7DH  ;双灯流水2遍
         DB 0FAH,0F5H,0EBH,0D7H,0AFH,5FH,0BEH,7DH
         DB 01H  ;表结束标准       
    END


急,在线等
111.png 222.png


回复

使用道具 举报

ID:99987 发表于 2020-5-20 10:10 | 显示全部楼层
1zjxx 发表于 2020-5-19 22:37
好的!那么您知道,keil4和keil5怎么弄,才可以和proteus联合拟真吗
我在网上找来找去,vdmagdi插 ...

(所用的软件为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中查看调试的结果。
回复

使用道具 举报

ID:480510 发表于 2020-5-18 08:54 | 显示全部楼层
高手都用汇编语言。出错英文意思没有定义符号,好像汇编没有P0的定义吧。汇编丢很久,如果不对,望见谅!!
回复

使用道具 举报

ID:99987 发表于 2020-5-18 12:46 | 显示全部楼层
取表定义错误。MOV DPTR,#SHEET 改为 MOV DPTR,#SHOW
回复

使用道具 举报

ID:754356 发表于 2020-5-19 07:01 | 显示全部楼层
ByanouQ 发表于 2020-5-18 08:54
高手都用汇编语言。出错英文意思没有定义符号,好像汇编没有P0的定义吧。汇编丢很久,如果不对,望见谅!!

感谢回复!
回复

使用道具 举报

ID:754356 发表于 2020-5-19 07:02 | 显示全部楼层
madell 发表于 2020-5-18 12:46
取表定义错误。MOV DPTR,#SHEET 改为 MOV DPTR,#SHOW

好的!感谢大佬!
回复

使用道具 举报

ID:754356 发表于 2020-5-19 07:06 | 显示全部楼层
madell 发表于 2020-5-18 12:46
取表定义错误。MOV DPTR,#SHEET 改为 MOV DPTR,#SHOW

试了一下还是一样的报错,,,
A51(11): error A45: UNDEFINED SYMBOL
不管怎么说还是很感谢您的回答了
回复

使用道具 举报

ID:754356 发表于 2020-5-19 07:08 | 显示全部楼层
ByanouQ 发表于 2020-5-18 08:54
高手都用汇编语言。出错英文意思没有定义符号,好像汇编没有P0的定义吧。汇编丢很久,如果不对,望见谅!!

我不是高手,只是个学单片机的学生罢了
回复

使用道具 举报

ID:401564 发表于 2020-5-19 09:03 | 显示全部楼层
重新选择一下单片机型号,如果还是不行的话,可能是你安装的不是C51版本的KEIL 51hei截图20200519082744.jpg 51hei截图20200519082802.jpg
回复

使用道具 举报

ID:754356 发表于 2020-5-19 11:17 | 显示全部楼层
Y_G_G 发表于 2020-5-19 09:03
重新选择一下单片机型号,如果还是不行的话,可能是你安装的不是C51版本的KEIL

我选的是AT89C51
回复

使用道具 举报

ID:695961 发表于 2020-5-19 11:49 | 显示全部楼层
高手都用汇编。
回复

使用道具 举报

ID:712493 发表于 2020-5-19 14:06 来自手机 | 显示全部楼层
不知会少包含标准的.h文件
回复

使用道具 举报

ID:677393 发表于 2020-5-19 16:30 | 显示全部楼层
最前面一行加上ORG 0
回复

使用道具 举报

ID:99987 发表于 2020-5-19 17:19 | 显示全部楼层
程序没有问题,编译器问题,重新安装KEIL,我用KEIL4编译没有问题。
回复

使用道具 举报

ID:94031 发表于 2020-5-19 20:48 | 显示全部楼层
P0直接用寄存器地址 80h 替换
回复

使用道具 举报

ID:754356 发表于 2020-5-19 22:15 | 显示全部楼层
datianmo 发表于 2020-5-19 16:30
最前面一行加上ORG 0

试了一下,还是报错了,而且报错的内容不变,,,
总之还是感谢您的回复了
回复

使用道具 举报

ID:754356 发表于 2020-5-19 22:34 | 显示全部楼层
xuyaqi 发表于 2020-5-19 20:48
P0直接用寄存器地址 80h 替换

感谢大佬!
我把P0换成80h ,报错变成了 NOT AN OBJECT FILE
我把P0换成#80h ,报错变成了 EXPRESSION TYPE DOES NOT MATCH INSTRUCTION
报错内容变了,说明问题就出在这个P0这里了!
回复

使用道具 举报

ID:754356 发表于 2020-5-19 22:37 | 显示全部楼层
madell 发表于 2020-5-19 17:19
程序没有问题,编译器问题,重新安装KEIL,我用KEIL4编译没有问题。

好的!那么您知道,keil4和keil5怎么弄,才可以和proteus联合拟真吗
我在网上找来找去,vdmagdi插件都是只支持keil2和keil3的,没有能支持keil3以上的
回复

使用道具 举报

ID:401564 发表于 2020-5-20 09:02 | 显示全部楼层
你这个是P0端口没有定义,要么是工程没有设定好,要么是工程没有导入ASM文件,你的代码在我的KEIL4上是可以运行的,并没有报错 51hei截图20200520090108.jpg
回复

使用道具 举报

ID:99987 发表于 2020-5-20 09:55 | 显示全部楼层
看看截图
未命名.JPG
回复

使用道具 举报

ID:754356 发表于 2020-5-21 14:03 | 显示全部楼层
madell 发表于 2020-5-20 10:10
(所用的软件为proteus7.8以及keil4)
所需要的资料:(VDM51.DLL+keil+proteus)
keil与proteus联调方 ...

非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表