📄 zj1.asm
字号:
;
; mov 44h,#27h
; mov 45h,#10h
;
mov a,r0
anl a,#00100000b
jnz 3
ljmp coul2
mov 43h,#80h
sjmp coul2
ret
mov a,45h
cpl a
mov 45h,a
mov a,44h
cpl a
mov 44h,a
mov a,45h
add a,#1
mov 45h,a
mov a,44h
addc a,#0
mov 44h,a
coul2: nop
mov dptr,ds1225
mov a,#0e3h
add a,dpl
mov dpl,a
movx a,@dptr
mov r2,a
inc dptr
movx a,@dptr
mov r3,a
inc dptr
movx a,@dptr
mov r4,a
orl a,r3
orl a,r2
jnz 1
ret
mov dptr,ds1225
mov a,#0e0h
add a,dpl
mov dpl,a
movx a,@dptr
mov r2,a
inc dptr
movx a,@dptr
mov r3,a
inc dptr
movx a,@dptr
mov r4,a
mov r0,44h
mov r1,45h
lcall mul16b
mov dptr,ds1225
mov a,#0e4h
add a,dpl
mov dpl,a
movx a,@dptr
mov r6,a
inc dptr
movx a,@dptr
mov r7,a
lcall div16b
mov 44h,r4
mov 45h,r5
ret
;
; 将数据转换成显示代码
;
MTRAN: nop
; 保存 20H -- 27H 到DS1225 00C0H -- 00C7H .
mov dptr,ds1225
mov a,#0c0h
add a,dpl
mov dpl,a
mov r2,#8
mov r0,#20h
tral1: nop
mov a,@r0
movx @dptr,a
inc r0
inc dptr
djnz r2,tral1
;
jnb 13h,1
ret
jnb 09h,1
ret
jnb 0bh,1
ret
jnb 06h,1
ret
; 转换 "轴型" .
tral2: nop
jnb 1ah,tral21
clr 1ah
LCALL SMOVE ; 恢复显示缓区 .
tral21: nop
mov dptr,ds1225
mov p2,dph
mov a,#20h
add a,dpl
mov r0,a
mov dptr,ds1225
mov a,#0c9h
add a,dpl
mov dpl,a
movx a,@dptr
cjne a,#1,tral01
mov dptr,#zhou7 ; RC0 .
sjmp tral28
tral01: nop
cjne a,#2,tral02
mov dptr,#zhou8 ; RD0 .
sjmp tral28
tral02: nop
cjne a,#3,tral22
mov dptr,#zhou1 ; RD2 .
sjmp tral28
tral22: nop
cjne a,#4,tral23
mov dptr,#zhou2 ; RC3 .
sjmp tral28
tral23: nop
cjne a,#5,tral24
mov dptr,#zhou3 ; RC4 .
sjmp tral28
tral24: nop
cjne a,#6,tral25
mov dptr,#zhou4 ; RD3 .
sjmp tral28
tral25: nop
cjne a,#7,tral26
mov dptr,#zhou5 ; RD4 .
sjmp tral28
tral26: nop
mov dptr,#zhou6 ; RD13
tral28: nop
mov a,#20h
movx @r0,a
inc r0
mov r2,#4
tral29: nop
clr a
movc a,@a+dptr
movx @r0,a
inc dptr
inc r0
djnz r2,tral29
mov a,#20h
movx @r0,a
inc r0
; 显示新/旧 .
tral3: nop
mov r1,#4eh ; "N" 字符(新) .
jnb 18h,tral31
mov r1,#4fh ; "O" 字符(旧) .
tral31: nop
mov a,r1
movx @r0,a
inc r0
mov a,#20h
movx @r0,a
inc r0
; 显示左/右 (L: 左, R: 右) .
tral32: nop
mov r1,#4ch ; "L" 字符 .
jnb 19h,tral34
mov r1,#52h ; "R" 字符 .
tral34: nop
mov a,r1
movx @r0,a
inc r0
mov a,#20h
movx @r0,a
inc r0
; 显示人名(工号) .
;tral35: nop
; mov dptr,ds1225
; mov a,#0cbh
; add a,dpl
; mov dpl,a
; movx a,@dptr
;tral36: nop
; clr c
; subb a,#10
; jnc tral36
; add a,#10
; movx @dptr,a
; add a,#30h
; movx @r0,a
; inc r0
; mov a,#20h
; movx @r0,a
; inc r0
; 显示截面及检测点 .
tral4: nop
mov dptr,ds1225
mov a,#0c8h
add a,dpl
mov dpl,a
movx a,@dptr
add a,#30h
movx @r0,a
inc r0
mov a,#2dh
movx @r0,a
inc r0
mov dptr,ds1225
mov a,#0cah
add a,dpl
mov dpl,a
movx a,@dptr
add a,#30h
movx @r0,a
inc r0
mov a,#20h
movx @r0,a
inc r0
; 显示锁定位 (S: 锁, K: 开) .
tral41: nop
mov dptr,ds1225
mov a,#0f1h
add a,dpl
mov dpl,a
movx a,@dptr
mov r1,#53h ; "S" 字符 .
cjne a,#0,tral42
mov r1,#4bh ; "K" 字符 .
tral42: nop
mov a,r1
movx @r0,a
inc r0
mov a,#20h
movx @r0,a
; 显示第四行 .
tral5: nop
mov dptr,ds1225
mov p2,dph
mov a,#30h
add a,dpl
mov r0,a
mov r2,#8
mov a,#20h
tral55: nop
movx @r0,a
inc r0
djnz r2,tral55
; 显示数据 .
tral6: nop
jnb 0eh,tral61
mov dptr,ds1225
mov a,#30h
add a,dpl
mov dpl,a
mov a,#46h
movx @dptr,a
inc dptr
mov a,#55h
movx @dptr,a
inc dptr
mov a,#4ch
movx @dptr,a
inc dptr
mov a,#4ch
movx @dptr,a
ljmp tral62
tral61: nop
mov dptr,ds1225
mov a,#0f0h
add a,dpl
mov dpl,a
movx a,@dptr
mov r1,a
mov dptr,ds1225
mov a,#30h
add a,dpl
mov dpl,a
mov a,r1
mov b,#100
div ab
add a,#30h
movx @dptr,a
inc dptr
mov a,b
mov b,#10
div ab
add a,#30h
movx @dptr,a
inc dptr
mov a,b
add a,#30h
movx @dptr,a
tral62: nop
jnb 00h,3
ljmp tral7
mov r2,40h
mov r3,41h
mov r4,42h
mov r5,43h
mov r6,44h
mov r7,45h
lcall gadd1 ; R2 R3 R4 + R5 R6 R7 ==> R2 R3 R4 .
lcall trdtw
; 显示反方向测量状态 .
tral7: nop
jb 20h,tral73
mov dptr,ds1225
mov r2,#16
mov a,#20h
tral71: nop
movx @dptr,a
inc dptr
djnz r2,tral71
ljmp tral78
tral73: nop
mov dptr,ds1225
mov p2,dph
mov r0,dpl
mov dptr,#f_xian
mov r2,#16
tral74: nop
clr a
movc a,@a+dptr
movx @r0,a
inc r0
inc dptr
djnz r2,tral74
mov dptr,ds1225
mov a,3dh
mov b,#100
div ab
add a,#30h
movx @dptr,a
inc dptr
mov a,b
mov b,#10
div ab
add a,#30h
movx @dptr,a
inc dptr
mov a,b
add a,#30h
movx @dptr,a
tral78: nop
ret
;
mov dptr,ds1225
mov a,30h
mov b,#10
div ab
add a,#30h
movx @dptr,a
inc dptr
mov a,b
add a,#30h
movx @dptr,a
inc dptr
mov a,#20h
movx @dptr,a
inc dptr
mov a,2fh
mov b,#10
div ab
add a,#30h
movx @dptr,a
inc dptr
mov a,b
add a,#30h
movx @dptr,a
inc dptr
mov a,#20h
movx @dptr,a
ret
;
;
warn: nop
mov a,p3
anl a,#00100000b
jz warn1
ret
warn1: nop
MOV DPTR,ds1225
mov p2,dph
mov r0,dpl
mov DPTR,#DISP1
MOV R2,#40h
warn2: nop
CLR A
MOVC A,@A+DPTR
MOVX @R0,A
INC DPTR
INC R0
DJNZ R2,warn2
warn3: lcall mdisp
sjmp warn3
ret
;
;
zhou1: db 20h,52h,44h,32h ; RD2 .
zhou2: db 20h,52h,43h,33h ; RC3 .
zhou3: db 20h,52h,43h,34h ; RC4 .
zhou4: db 20h,52h,44h,33h ; RD3 .
zhou5: db 20h,52h,44h,34h ; RD4 .
zhou6: db 52h,44h,31h,33h ; RD13 .
zhou7: db 20h,52h,43h,30h ; RC0 .
zhou8: db 20h,52h,44h,30h ; RD0 .
f_xian: db 20h,20h,20h,20h,20h,20h,46h,58h,20h,54h,65h,73h,74h,69h,6eh,67h
; F X T e s t i n g
;
;
SCGRAM: MOV DPTR,ds1225
PUSH A
MOV A,B
ADD A,DPL
MOV DPL,A
POP A
MOVX @DPTR,A
RET
RCGRAM: MOV DPTR,ds1225
MOV A,B
ADD A,DPL
MOV DPL,A
MOVX A,@DPTR
RET
;
LMOVE: MOV R4,A
LMOVL: LCALL RCGRAM
DEC B
LCALL SCGRAM
INC B
INC B
DJNZ R2,LMOVL
MOV A,R4
DEC B
LCALL SCGRAM
RET
;
; 恢复显示缓区 .
SMOVE: nop
MOV DPTR,ds1225
mov p2,dph
mov r0,dpl
MOV A,#80H
add a,dpl
mov dpl,a
MOV R2,#40H
MOL4: MOVX A,@dptr
MOVX @R0,A
INC R0
INC dptr
DJNZ R2,MOL4
RET
;
; 恢复显示缓区下半部分 .
resb2: nop
MOV DPTR,ds1225
mov p2,dph
mov a,#20h
add a,dpl
mov r0,a
MOV A,#0a0h
add a,dpl
mov dpl,a
MOV R2,#20H
res2l: MOVX A,@dptr
MOVX @R0,A
INC R0
INC dptr
DJNZ R2,res2l
ret
; clear data input .
SCGCL: nop
MOV DPTR,ds1225
MOV A,B
ADD A,DPL
MOV DPL,A
MOV A,#20H
SCCL1: MOVX @DPTR,A
INC DPTR
DJNZ R2,SCCL1
RET
;
M_BUSY: PUSH DPH
PUSH DPL
PUSH PSW
PUSH A
; mov r5,#5
; mov r6,#100
;lop0: nop
; djnz r6,blop0
; djnz r5,blop0
BLOP1: MOV DPTR,ed1604c
MOVX A,@DPTR
JB ACC.7,BLOP1
POP A
POP PSW
POP DPL
POP DPH
RET
;
TRWTD: MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV DPTR,ds1225
mov a,#39h
add a,dpl
mov dpl,a
MOV R1,#3
TRWL1: MOVX A,@DPTR
CJNE A,#20H,2
MOV A,#30H
CLR C
SUBB A,#30H
LCALL MUL10
INC DPTR
DJNZ R1,TRWL1
INC DPTR
MOV R1,#3
TRWL2: MOVX A,@DPTR
CJNE A,#20H,2
MOV A,#30H
CLR C
SUBB A,#30H
LCALL MUL10
INC DPTR
DJNZ R1,TRWL2
MOV DPTR,ds1225
mov a,#38h
add a,dpl
mov dpl,a
MOVX A,@DPTR
CJNE A,#2DH,TRWL3
MOV A,R2
ORL A,#80H
MOV R2,A
TRWL3: RET
;
TRDTW: MOV A,R2
ANL A,#80H
JZ TRDL1
MOV A,#2DH
SJMP 2
TRDL1: MOV A,#20H
mov r0,a
MOV DPTR,ds1225
mov a,#38h
add a,dpl
mov dpl,a
mov a,r0
MOVX @DPTR,A
MOV A,R2
ANL A,#7FH
MOV R2,A
MOV DPTR,ds1225
mov a,#3fh
add a,dpl
mov dpl,a
MOV R1,#3
TRDL2: LCALL DIV10
ORL A,#30H
MOVX @DPTR,A
DEC DPL
DJNZ R1,TRDL2
MOV A,#2EH
MOVX @DPTR,A
DEC DPL
MOV R1,#3
TRDL3: LCALL DIV10
ORL A,#30H
MOVX @DPTR,A
DEC DPL
DJNZ R1,TRDL3
MOV DPTR,ds1225
mov a,#39h
add a,dpl
mov dpl,a
MOV R2,#2
TRDL4: MOVX A,@DPTR
CJNE A,#30H,TRDL5
MOV A,#20H
MOVX @DPTR,A
INC DPTR
DJNZ R2,TRDL4
TRDL5: RET
;
TRWTD1: MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV DPTR,ds1225
mov a,#3ah
add a,dpl
mov dpl,a
MOV R1,#6
TRWL11: MOVX A,@DPTR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -