找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请问Keil编译汇编语言的时候 很多行都显示符号未定义是怎么回事?

[复制链接]
跳转到指定楼层
楼主
ID:949330 发表于 2021-7-5 12:34 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:934353 发表于 2021-7-5 14:47 | 只看该作者
不能发张图片吗,这样问。。。
回复

使用道具 举报

板凳
ID:161164 发表于 2021-7-5 16:13 | 只看该作者
因为真的未定义
回复

使用道具 举报

地板
ID:155507 发表于 2021-7-5 16:55 | 只看该作者
题主你好,你这样的提问。我估计没几个人会回答你的。
无图、无程序,怎么帮你? 好歹给点信息嘛! 那怎麽判斷到底問題出在哪裏呢

找提示的第一个错误,后面的是累记的,一般第一个错误改正后就没错误了
回复

使用道具 举报

5#
ID:949744 发表于 2021-7-6 10:23 | 只看该作者
你在程序开头就要把会使用到的变量声明,定义它的数据类型,未定义就是因为你没声明就直接使用了,计算机无法把它带入运算
回复

使用道具 举报

6#
ID:949330 发表于 2021-7-6 10:36 来自手机 | 只看该作者
不好意思,第一次提问忘了放图片了,这个我问了老师,老师问我LP1是啥,我不知道,他就说要定义LP1,怎么定义啊,我真的是单片机小白,怪我没听课

IMG20210705124134.jpg (599.25 KB, 下载次数: 31)

IMG20210705124134.jpg
回复

使用道具 举报

7#
ID:949330 发表于 2021-7-6 10:42 来自手机 | 只看该作者
聪明勇敢 发表于 2021-7-6 10:23
你在程序开头就要把会使用到的变量声明,定义它的数据类型,未定义就是因为你没声明就直接使用了,计算机无 ...

是这么个情况 谢谢啦
回复

使用道具 举报

8#
ID:949330 发表于 2021-7-6 10:42 来自手机 | 只看该作者
angmall 发表于 2021-7-5 16:55
题主你好,你这样的提问。我估计没几个人会回答你的。
无图、无程序,怎么帮你? 好歹给点信息嘛! 那怎麽 ...

对对对,是这样 谢谢啦 我这就去改
回复

使用道具 举报

9#
ID:949330 发表于 2021-7-6 10:43 来自手机 | 只看该作者
lkc8210 发表于 2021-7-5 16:13
因为真的未定义

是真的
回复

使用道具 举报

10#
ID:155507 发表于 2021-7-6 12:53 | 只看该作者
独小兽 发表于 2021-7-6 10:36
不好意思,第一次提问忘了放图片了,这个我问了老师,老师问我LP1是啥,我不知道,他就说要定义LP1,怎么定 ...

要定义LP1,就是这个样  LP1: 定义啊

我给你来个程序试试

  1. ;打开任意串口调试软件
  2. ;打开对应的串口,可以在设备管理器中看到
  3. ;设置波特率为9600,8个数据位,1个停止位,无奇偶校验
  4. ;在发送栏输入任意数字或者字符串,点击发送,接收区能接收到相同的信息
  5. ;发送格式与接收格式必须相同,如都是字符或者都是十六进制格式
  6.         ORG 0000H
  7.         AJMP MAIN
  8.         ORG 0023H
  9.         AJMP RECEIVE          ;跳转到接收中断入口
  10.         ORG 0030H

  11. MAIN:   MOV TMOD,#20H         ;T1工作方式2
  12.         MOV TH1,#0FDH         ;波特率9600
  13.         MOV SCON,#50H         ;传口工作方式1,允许中断接受
  14.         SETB EA               ;打开总中断
  15.         SETB ES               ;打开串口中断
  16.         SETB TR1              ;打开定时器1
  17.         AJMP $


  18. RECEIVE:
  19.         CLR RI
  20.         MOV A,SBUF            ;串口接收数据
  21.         MOV R0,A
  22.         MOV SBUF,A            ;将接收的数据再传送给计算机
  23.         JNB TI,$
  24.         CLR TI
  25.         MOV A,R0

  26.         ;送LED显示
  27.         MOV P1,A
  28.         RETI


  29. TAB:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H    ;共阳字码表

  30.         END
复制代码

回复

使用道具 举报

11#
ID:88256 发表于 2021-7-6 13:54 | 只看该作者
独小兽 发表于 2021-7-6 10:36
不好意思,第一次提问忘了放图片了,这个我问了老师,老师问我LP1是啥,我不知道,他就说要定义LP1,怎么定 ...

你这个程序是哪里来的?KEIL的软件要设置显示行号,这样出问题看提示哪一行就好找了,网友们帮你也好说明哪个地方出问题。
MOV R2,#OFH报错,那个#号后面应该为0而不是O,类似的问题自己找;
你要求程序跳转到LP1处,可是你没有指定LP1在哪个地方,软件肯定报错;
程序不完整,其它报错的自己对行号查看;
需要用 ORG 0030H 指定START的起始地址,跳过所有的中断入口。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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