……
JMP MAIN
END ------------------看这里!
ORG 0070H
……
------------------------
你程序的中间,有个END,后面的程序,就无效了。
另外,有些冒号,写成中文的了,这就找不到了。
======================
好了,下面的没有语法错误了:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:LCALL JISHU;T0计数
MOV R6,#26H
MOV R7,#0FDH;除数为9981,十六进制为26FD
MOV R2,#0H
MOV R3,#0H;被除数为R2R3R4R5
LCALL NDIV1;调用除法子程序,商存于R4R5中,余数R2R3中
MOV A,R5
CLR C
SUBB A,#1H
JNC UF;若商大于0,单位为uF
MOV A,R2
CLR C
SUBB A,#3H
JNC NEXT1;若余数大于1000,单位为uF
JMP NF
NEXT1:MOV A,R3
CLR C
SUBB A,#0E8H
JNC UF
LJMP NF
UF:CLR P0.0
CLR P0.6
MOV A,R5
ADD A,0
DA A
MOV P2,A
CLR P0.7
SETB P0.6
LCALL QUXS
MOV A,R5
ADD A,0
DA A
MOV P2,A
CLR P0.6
JMP MAIN
NF: CLR P0.1
CLR P0.6
MOV R4,#03H
MOV R5,#0E8H
LCALL NMUL1
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#26H
MOV R7,#0FDH
LCALL NDIV1
MOV A,R5
ADD A,0
DA A
MOV P2,A
CLR P0.7
SETB P0.6
LCALL QUXS
MOV A,R5
ADD A,0
DA A
MOV P2,A
CLR P0.6
JMP MAIN
;END
;ORG 0070H
JISHU: MOV TMOD ,#09H;计时子程序
MOV TL0,#00H
MOV TH0,#00H
JB P3.2,$
SETB TR0
JNB P3.2,$
CLR TR0
MOV A,TL0
MOV R4,A
MOV A,TH0
MOV R5,A
RET
;END
;ORG 0090H
NDIV1:;除法子程序
MOV B,#16
CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C;保存移出的最高位
CLR C
SUBB A,R7
MOV R1,A
MOV A,R2
SUBB A,R6
JB F0,NDVM1
JC NDVD1
NDVM1:MOV R2,A
MOV A,R1
MOV R3,A
INC R5
NDVD1:DJNZ B,NDIV1
CLR F0
RET
; END
;ORG 00B0H
NMUL1:;乘法子程序
MOV A,R3
MOV B,R7
MUL AB
XCH A,R7
MOV R5,B
MOV B,R2
MUL AB
ADD A,R5
MOV R4,A
CLR A
ADDC A,B
MOV A,R6
MOV B,R3
MUL AB
ADD A,R4
XCH A,R6
XCH A,B
ADDC A,R5
MOV R5,A
MOV F0,C
MOV A,R2
MUL AB
ADD A,R5
MOV R5,A
CLR A
MOV ACC.0,C
MOV C,F0
ADDC A,B
MOV R4,A
RET
;ORG 00D0H
QUXS:;取小数子程序
MOV R6,#03H
MOV R7,#0E8H
LCALL NMUL1
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R6,#26H
MOV R7,#0FDH
LCALL NDIV1
RET
END
这句:MAIN:LCALL JISHI;T0计数
主程序里调用的是JISHI,
但这句:JISHU: MOV TMOD ,#09H;计时子程序
子程序里写的是JISHU。