找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5428|回复: 20
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
;;;;;通过查表程序控制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


急,在线等



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 20#
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的定义吧。汇编丢很久,如果不对,望见谅!!

感谢回复!
回复

使用道具 举报

5#
ID:754356 发表于 2020-5-19 07:02 | 只看该作者
madell 发表于 2020-5-18 12:46
取表定义错误。MOV DPTR,#SHEET 改为 MOV DPTR,#SHOW

好的!感谢大佬!
回复

使用道具 举报

6#
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
不管怎么说还是很感谢您的回答了
回复

使用道具 举报

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

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

使用道具 举报

8#
ID:401564 发表于 2020-5-19 09:03 | 只看该作者
重新选择一下单片机型号,如果还是不行的话,可能是你安装的不是C51版本的KEIL
回复

使用道具 举报

9#
ID:754356 发表于 2020-5-19 11:17 | 只看该作者
Y_G_G 发表于 2020-5-19 09:03
重新选择一下单片机型号,如果还是不行的话,可能是你安装的不是C51版本的KEIL

我选的是AT89C51
回复

使用道具 举报

10#
ID:695961 发表于 2020-5-19 11:49 | 只看该作者
高手都用汇编。
回复

使用道具 举报

11#
ID:712493 发表于 2020-5-19 14:06 来自触屏版 | 只看该作者
不知会少包含标准的.h文件
回复

使用道具 举报

12#
ID:677393 发表于 2020-5-19 16:30 | 只看该作者
最前面一行加上ORG 0
回复

使用道具 举报

13#
ID:99987 发表于 2020-5-19 17:19 | 只看该作者
程序没有问题,编译器问题,重新安装KEIL,我用KEIL4编译没有问题。
回复

使用道具 举报

14#
ID:94031 发表于 2020-5-19 20:48 | 只看该作者
P0直接用寄存器地址 80h 替换
回复

使用道具 举报

15#
ID:754356 发表于 2020-5-19 22:15 | 只看该作者
datianmo 发表于 2020-5-19 16:30
最前面一行加上ORG 0

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

使用道具 举报

16#
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这里了!
回复

使用道具 举报

17#
ID:754356 发表于 2020-5-19 22:37 | 只看该作者
madell 发表于 2020-5-19 17:19
程序没有问题,编译器问题,重新安装KEIL,我用KEIL4编译没有问题。

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

使用道具 举报

18#
ID:401564 发表于 2020-5-20 09:02 | 只看该作者
你这个是P0端口没有定义,要么是工程没有设定好,要么是工程没有导入ASM文件,你的代码在我的KEIL4上是可以运行的,并没有报错
回复

使用道具 举报

19#
ID:99987 发表于 2020-5-20 09:55 | 只看该作者
看看截图

未命名.JPG (176.47 KB, 下载次数: 58)

未命名.JPG
回复

使用道具 举报

21#
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 单片机教程网

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