标题: 在看论坛的视频教程,为什么我编译出错 [打印本页]

作者: 打杂的    时间: 2018-3-19 20:11
标题: 在看论坛的视频教程,为什么我编译出错
ORG     0000H
AJMP    MAIN
ORG     000BH
AJMP    SETR0
MAIN:   MOV  A,#0FFH
                MOV  P1,A
                MOV  TMOD,#01H
                MOV  TH0, #0FCH
                MOV  TL0, #018H
                MOV  R0,  #7
                SETB EA
                SETB TR0
                SETB ET0
                SJMP $
SETR0:        MOV  TH0,#0FCH
                MOV  TL0,#018H   ;定时器重新赋值
                DJNZ R0,NEXT     ;如果R0-1不等于0,跳到NEXT
                MOV  A,P1       ;P1赋给A
                CPL  A        ;A进行取反
                MOV  P1,A  ;再把A赋给P1
                JZ A,  XH   ;判断A是否为0,否则跳转到XH,这里编译出错
                MOV  R0,#7
                SJMP  NEXT
XH:                MOV  R0,#3
NEXT:        RETI
                END


Rebuild target 'Target 1'
assembling 400us.asm...
400us.asm(21): error A38: NUMBER OF OPERANDS DOES NOT MATCH INSTRUCTION
Target not created.
Build Time Elapsed:  00:00:02
这个是我照着程序来弄的,只是我的程序选用12M晶振,IO口换成了P1口,就编程出错了,请大家帮我看看为什么?


作者: zhangxiaozi    时间: 2018-3-19 20:49
               JZ A,  XH   ;判断A是否为0,否则跳转到XH,这里编译出错,应该是   JZ  XH   ;判断A是否为0,否则跳转到XH,这里编译出错
作者: zhangxiaozi    时间: 2018-3-19 20:53
jz line
jnz line
都是判断累加器的值是零不是零跳转,指令中不用写累加器的符合A
作者: 打杂的    时间: 2018-3-19 20:57
zhangxiaozi 发表于 2018-3-19 20:53
jz line
jnz line
都是判断累加器的值是零不是零跳转,指令中不用写累加器的符合A

我把那个A去掉灯也不行,后面我问了我公司工程师说可能时间不够,我把时间该为10ms就看到灯闪了
作者: zhangxiaozi    时间: 2018-3-19 23:55
这是两个概念,我讲的是指令用错了,编译通不过,你指令改完后,至于看不到灯闪那是时间问题,太快了人眼看不到的,从程序上谁也不知道你要接灯的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1