[技术支持] Keil用汇编给HC89S003F4写程序时遇到问题

[复制链接]
568|8
 楼主 | 2019-8-7 16:14 | 显示全部楼层 |阅读模式
类似这种情况,就会报错,提示FUNC未定义

可以这样解决。

但是。。。

是什么情况呢?

使用特权

评论回复
 楼主 | 2019-8-7 16:15 | 显示全部楼层
本帖最后由 Resbi 于 2019-8-7 16:19 编辑

完整程序:
  1.         ;Goto MAIN
  2.                 JMP         MAIN

  3.         ;Delay
  4. DELAY:        MOV                A,        R4
  5.                 MOV                R0,        A
  6. DELAY2:        MOV                R1,        #1
  7. LOOP2:        MOV         A,        R1
  8.                 SUBB        A,        #1
  9.                 MOV                R1,        A
  10.                 CJNE        A,        #0,        LOOP2
  11. LOOP1:        MOV         A,        R0
  12.                 SUBB        A,        #1
  13.                 MOV                R0,        A
  14.                 CJNE        A,        #0,        DELAY2
  15.                 RET

  16.         ;Reduce
  17. RED:        MOV                A,        R5
  18.                 SUBB        A,        #1
  19.                 RET
  20.         ;Increse
  21. INE:        MOV                A,        R5
  22.                 ADD                A,        #1
  23.                 RET
  24.         ;ReduceOrIncrese
  25. ROI:        MOV                A,        R6
  26.                 JMP                T1
  27. TRED:        ACALL        RED
  28.                 JMP                T2
  29. TINE:        ACALL        INE
  30.                 JMP                T2
  31. T1:                CJNE        A,        #0,        TRED
  32.                 JMP                TINE
  33. T2:                MOV                R5,        A
  34.                 RET

  35.         ;MAIN
  36. MAIN:        MOV                R6,        #1                                ;RED/INC flag(0=INC, 1=RED)
  37.                 MOV                R5,        #255
  38.                 MOV                DPTR,        #0xFF00                ;P0M0 is here
  39.                 MOV                A,                #10                        ;set output mode
  40.                 MOVX        @DPTR,        A
  41. MLOOP:        MOV                P0,        #00                                ;P00 = 1
  42.                 MOV                A,        R5
  43.                 MOV                R4,        A                                ;Delay R5*C
  44.                 ACALL         DELAY
  45.                 MOV                P0,        #01                                ;P00 = 0
  46.                 MOV                A,        #255
  47.                 SUBB        A,        R5
  48.                 MOV                R4,        A                                ;Delay (255-R5)*C
  49.                 ACALL         DELAY
  50.                 ACALL        ROI
  51.                 JMP         MLOOP
  52.                 END
复制代码
代码网页显示出来会乱。。抱歉

BlinkOnP00.zip

517 Bytes, 下载次数: 3

代码

使用特权

评论回复
 楼主 | 2019-8-7 17:08 | 显示全部楼层
这个码还没写完的,少了一个东西

使用特权

评论回复
| 2019-8-7 17:25 | 显示全部楼层
end

使用特权

评论回复
| 2019-8-7 17:36 | 显示全部楼层
改下名字
捕获.PNG

使用特权

评论回复
 楼主 | 2019-8-7 17:46 | 显示全部楼层

尴尬,我的锅。。谢谢,解决了
但是为什么会出现第一个问题呢?相同的代码在另一个编译器里面是没有问题的,

使用特权

评论回复
| 2019-8-7 17:55 | 显示全部楼层
提示定义过这个名字了,应该是系统定义的

使用特权

评论回复
| 2019-8-8 13:47 | 显示全部楼层
第一个问题是指FUNC未定义吗?楼上已经说了,END关键字的原因,END关键字后面的代码汇编器不会解析编译。不同的编译器可能对END的处理方式不一样。

使用特权

评论回复
| 2019-10-3 15:26 | 显示全部楼层
谢谢分享!

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表