打印
[通用8051核FLASH系列]

Keil用汇编给HC89S003F4写程序时遇到问题

[复制链接]
1356|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Resbi|  楼主 | 2019-8-7 16:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-25 10:35 编辑

类似这种情况,就会报错,提示FUNC未定义

可以这样解决。

但是。。。

是什么情况呢?

使用特权

评论回复
沙发
Resbi|  楼主 | 2019-8-7 16:15 | 只看该作者
本帖最后由 Resbi 于 2019-8-7 16:19 编辑

完整程序:
        ;Goto MAIN
                JMP         MAIN

        ;Delay
DELAY:        MOV                A,        R4
                MOV                R0,        A
DELAY2:        MOV                R1,        #1
LOOP2:        MOV         A,        R1
                SUBB        A,        #1
                MOV                R1,        A
                CJNE        A,        #0,        LOOP2
LOOP1:        MOV         A,        R0
                SUBB        A,        #1
                MOV                R0,        A
                CJNE        A,        #0,        DELAY2
                RET

        ;Reduce
RED:        MOV                A,        R5
                SUBB        A,        #1
                RET
        ;Increse
INE:        MOV                A,        R5
                ADD                A,        #1
                RET
        ;ReduceOrIncrese
ROI:        MOV                A,        R6
                JMP                T1
TRED:        ACALL        RED
                JMP                T2
TINE:        ACALL        INE
                JMP                T2
T1:                CJNE        A,        #0,        TRED
                JMP                TINE
T2:                MOV                R5,        A
                RET

        ;MAIN
MAIN:        MOV                R6,        #1                                ;RED/INC flag(0=INC, 1=RED)
                MOV                R5,        #255
                MOV                DPTR,        #0xFF00                ;P0M0 is here
                MOV                A,                #10                        ;set output mode
                MOVX        @DPTR,        A
MLOOP:        MOV                P0,        #00                                ;P00 = 1
                MOV                A,        R5
                MOV                R4,        A                                ;Delay R5*C
                ACALL         DELAY
                MOV                P0,        #01                                ;P00 = 0
                MOV                A,        #255
                SUBB        A,        R5
                MOV                R4,        A                                ;Delay (255-R5)*C
                ACALL         DELAY
                ACALL        ROI
                JMP         MLOOP
                END
代码网页显示出来会乱。。抱歉

BlinkOnP00.zip

517 Bytes

代码

使用特权

评论回复
板凳
Resbi|  楼主 | 2019-8-7 17:08 | 只看该作者
这个码还没写完的,少了一个东西

使用特权

评论回复
地板
mcu5i51| | 2019-8-7 17:25 | 只看该作者
end

使用特权

评论回复
5
mcu5i51| | 2019-8-7 17:36 | 只看该作者
改下名字

捕获.PNG (40.87 KB )

捕获.PNG

使用特权

评论回复
6
Resbi|  楼主 | 2019-8-7 17:46 | 只看该作者

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

使用特权

评论回复
7
mcu5i51| | 2019-8-7 17:55 | 只看该作者
提示定义过这个名字了,应该是系统定义的

使用特权

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

使用特权

评论回复
9
zlmin| | 2019-10-3 15:26 | 只看该作者
谢谢分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝