汇编语言重复定义错误
功能是定时器T1工作方式1定时1秒,让接在P1.0的发光二极管实现1秒亮灭交替,同时用定时器T0工作方式2定时0.05秒,让接在P1.7的发光二极管实现0.1秒亮灭交替。...
功能是定时器T1工作方式1定时1秒,让接在P1.0的发光二极管实现1秒亮灭交替,同时用定时器T0工作方式2定时0.05秒,让接在P1.7的发光二极管实现0.1秒亮灭交替。
PS:此程序PT1重复定义,如果还有其它错误求大神多多指正。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP PT0
ORG 001BH
LJMP PT1
ORG 0050H
MAIN:
MOV SP,#50H
MOV TMOD,#12H
MOV A,#7EH
MOV P1,A
MOV R2,#00H
MOV R3,#00H
SETB EA
SETB ET1
SETB ET0
SETB TR1
SETB TR0
SETB P1.0
SETB P1.7
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#CBH,NEXT1
CPL P1.7
MOV R3,#00H
NEXT1:
MOV TL0,06H
MOV TH0,06H
RETI
HERE:SJMP HERE
ORG 0200H
PT1:
MOV TL1,#0B0H
MOV TH1,#3CH
INC R2
CJNE R2,#14H,NEXT
CPL P1.0
MOV R2,#00H
NEXT:
MOV TL1,0B0H
MOV TH1,63H
RETI
PT0:
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#190H,NEXT1
CPL P1.7
MOV R3,#00H
NEXT1:
MOV TL0,06H
MOV TH0,06H
RETI
END 展开
PS:此程序PT1重复定义,如果还有其它错误求大神多多指正。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP PT0
ORG 001BH
LJMP PT1
ORG 0050H
MAIN:
MOV SP,#50H
MOV TMOD,#12H
MOV A,#7EH
MOV P1,A
MOV R2,#00H
MOV R3,#00H
SETB EA
SETB ET1
SETB ET0
SETB TR1
SETB TR0
SETB P1.0
SETB P1.7
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#CBH,NEXT1
CPL P1.7
MOV R3,#00H
NEXT1:
MOV TL0,06H
MOV TH0,06H
RETI
HERE:SJMP HERE
ORG 0200H
PT1:
MOV TL1,#0B0H
MOV TH1,#3CH
INC R2
CJNE R2,#14H,NEXT
CPL P1.0
MOV R2,#00H
NEXT:
MOV TL1,0B0H
MOV TH1,63H
RETI
PT0:
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#190H,NEXT1
CPL P1.7
MOV R3,#00H
NEXT1:
MOV TL0,06H
MOV TH0,06H
RETI
END 展开
展开全部
经过修改,编译通过了。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP PNT0 ;PT0不能 ,是系统保留字
ORG 001BH
LJMP PNT1 ;PT1不能 ,是系统保留字
ORG 0050H
MAIN:
MOV SP,#50H
MOV TMOD,#12H
MOV A,#7EH
MOV P1,A
MOV R2,#00H
MOV R3,#00H
SETB EA
SETB ET1
SETB ET0
SETB TR1
SETB TR0
SETB P1.0
SETB P1.7
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#0CBH,NEXT1;#CBH前要加0
CPL P1.7
MOV R3,#00H
NEXT1:
MOV TL0,06H
MOV TH0,06H
;RETI //主程序不能用RETI
HERE:SJMP HERE
;ORG 0200H //这不用再定义起始地址
PNT1:
MOV TL1,#0B0H
MOV TH1,#3CH
INC R2
CJNE R2,#14H,NEXT
CPL P1.0
MOV R2,#00H
NEXT:
MOV TL1,0B0H
MOV TH1,63H
RETI
PNT0:
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#190,NEXT2;190多了H,
CPL P1.7
MOV R3,#00H
NEXT2: ;NEXT1用过了
MOV TL0,06H
MOV TH0,06H
RETI
END
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP PNT0 ;PT0不能 ,是系统保留字
ORG 001BH
LJMP PNT1 ;PT1不能 ,是系统保留字
ORG 0050H
MAIN:
MOV SP,#50H
MOV TMOD,#12H
MOV A,#7EH
MOV P1,A
MOV R2,#00H
MOV R3,#00H
SETB EA
SETB ET1
SETB ET0
SETB TR1
SETB TR0
SETB P1.0
SETB P1.7
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#0CBH,NEXT1;#CBH前要加0
CPL P1.7
MOV R3,#00H
NEXT1:
MOV TL0,06H
MOV TH0,06H
;RETI //主程序不能用RETI
HERE:SJMP HERE
;ORG 0200H //这不用再定义起始地址
PNT1:
MOV TL1,#0B0H
MOV TH1,#3CH
INC R2
CJNE R2,#14H,NEXT
CPL P1.0
MOV R2,#00H
NEXT:
MOV TL1,0B0H
MOV TH1,63H
RETI
PNT0:
MOV TL0,06H
MOV TH0,06H
INC R3
CJNE R3,#190,NEXT2;190多了H,
CPL P1.7
MOV R3,#00H
NEXT2: ;NEXT1用过了
MOV TL0,06H
MOV TH0,06H
RETI
END
追问
想问最后R3寄存器我存的是400次,换成16进制就是190,不加H不会变成10进制吗?
追答
R3存放的最大数是255,400次是不行的,要用两个寄存器,需要16位数了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询