编译的时候老是不通过

[复制链接]
1347|13
 楼主| 小小猫咪 发表于 2013-10-14 09:50 | 显示全部楼层 |阅读模式
程序是《8051单片机彻底研究-基础篇》上的,不过编译的时候老是不通过,软件换了好几个了,还是有错误,我是菜鸟,希望大家指点一下
             ORG 0000H
             MOV  R0,#00H
$         DJNZ R0,$
START MOV SP,#50H
LOOP   MOV P3,#00H
             CALL DELAY
             MOV P3,#FFH
             CALL DELAY
             SJMP LOOP
;
DELAY MOV R0,#00H
         $1 MOV R1,#00H
         $2 DJNZ R1,$2
             DJNZ R0,$1
RET
zyf部长 发表于 2013-10-14 09:50 | 显示全部楼层
把你编译器报错的部分粘上来看看呢。
kangzj 发表于 2013-10-14 09:52 | 显示全部楼层
MOV  R0,#00H
$         DJNZ R0,$

这是哪国神圣写的程序哟??
morrisk 发表于 2013-10-14 09:52 | 显示全部楼层
是不是编译器没有设置好吗?
 楼主| 小小猫咪 发表于 2013-10-14 09:53 | 显示全部楼层

不好意思又看了看书上 这行($    DJNZ R0,$)前面没有$
这本书据说是一个台湾人写的,好多人推荐,我就买了,不过书上的程序编译的时候总是出错,书上自带了一个dos版本的编译器,不过不能用,郁闷!
houcs 发表于 2013-10-14 09:54 | 显示全部楼层
DELAY:
         MOV R0,#00H
DELAY_LOOP_1:
         MOV R1,#00H
DELAY_LOOP_2:
         DJNZ R1,DELAY_LOOP_2
         DJNZ R0,DELAY_LOOP_1
       RETURN

标号没有定义,初学单片机,不要学人家偷懒。

此人水平有问题,DJNZ R0,$这行没有任何实际意义。
 楼主| 小小猫咪 发表于 2013-10-14 09:55 | 显示全部楼层

谢谢不过还有一处错误,图上的第七行怎么也是没有定义呢
liuzaiy 发表于 2013-10-14 09:55 | 显示全部楼层
你把所有的标号问题都改了?放上来瞧瞧呢。
yinxiangh 发表于 2013-10-14 09:56 | 显示全部楼层
将MOV P3,#FFH改为MOV P3,#0FFH即可
pangb 发表于 2013-10-14 09:56 | 显示全部楼层
你想要程序实现什么样的功能?
从你的程序看好象是想把接在P3口8个LED闪烁起来!可从你的程序看,除非你用的汇编环境不是常用的KEIL,要不这样的语句、语法和书写格式怎能编译通过呢!唉!!!!!!!!!
 楼主| 小小猫咪 发表于 2013-10-14 09:57 | 显示全部楼层
ORG 0000H
             MOV  R0,#00H
             DJNZ R0,$
START:     MOV SP,#50H
LOOP:      MOV P3,#00H
                  LCALL DELAY
                  MOV P3,#0FFH
                  LCALL DELAY
                  SJMP LOOP
;
DELAY:     MOV R0,#00H
D1:        MOV R1,#00H
D2:           DJNZ R1,D2
                  DJNZ R0,D1
                  RET
          END
这是修改后的程序,用keil,伟福都通过了,发现keil对汇编语言书写格式要求挺严格的,我初学,多谢各位指点
chenjunt 发表于 2013-10-14 09:58 | 显示全部楼层
KEIL应该算“好说话”的了,写汇编,啥东东都严格
chenjunt 发表于 2013-10-14 09:59 | 显示全部楼层
这可不是C,是1:1的机器码生成呀。
 楼主| 小小猫咪 发表于 2013-10-14 09:59 | 显示全部楼层
呵呵,结贴了哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

313

主题

3014

帖子

6

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