⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zoujin.asm

📁 工业仪器仪表汇编软件
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;                               "轴型"  功能 .
kaxl2:  nop
        mov a,20h
        anl a,#00011100b
        jz 1
        ret
        jnb 09h,1
        ret
        mov dptr,ds1225
        mov a,#0c9h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        inc a
        mov r0,a
        clr c
        subb a,#7
        jc kaxl21
        mov r0,#1
kaxl21: nop
        mov a,r0
        movx @dptr,a
        ret
;
; "发送" 键 .
;
KEYSD:  NOP                     ; send key .
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        MOV A,20H
        ANL A,#00011111B
        JZ 3
        ljmp ksdl1
        cpl 13h
        JB 13H,1
        RET
        CLR ET0         ; no allow T0 interupt .
        CLR ET1         ; no allow T1 interupt .
        CLR EX0         ; allow EX0 interupt .
        CLR EX1         ; no allow EX1 interupt , refference mark .
        SETB EA         ; turn on interupt .
        clr 13h
        LCALL SD232
        RET
ksdl1:  nop
        LCALL SMOVE             ; 恢复显示缓区 .
        ret
;
;
count:  nop
        jnb p3.4,coul1
        ret
coul1:  nop
        mov dptr,ad7109h
        movx a,@dptr
        mov 44h,a
        mov dptr,ad7109l
        movx a,@dptr
        mov 45h,a
        mov 43h,#0
        mov a,44h
        mov r0,a
        anl a,#0fh
        mov 44h,a
;
;       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,tral22
        mov dptr,#zhou1
        sjmp tral28
tral22: nop
        cjne a,#2,tral23
        mov dptr,#zhou2
        sjmp tral28
tral23: nop
        cjne a,#3,tral24
        mov dptr,#zhou3
        sjmp tral28
tral24: nop
        cjne a,#4,tral25
        mov dptr,#zhou4
        sjmp tral28
tral25: nop
        cjne a,#5,tral26
        mov dptr,#zhou5
        sjmp tral28
tral26: nop
        mov dptr,#zhou6
tral28: nop
        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
;                       显示第四行 .
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,1
        ret
        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
        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 .
;
;
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
        CJNE A,#20H,2
        MOV A,#30H
        CLR C
        SUBB A,#30H
        LCALL MUL10
        INC DPTR
        DJNZ R1,TRWL11
        MOV DPTR,ds1225
        mov a,#39h
        add a,dpl
        mov dpl,a
        MOVX A,@DPTR
        CJNE A,#2DH,TRWL13
        MOV A,R2
        ORL A,#80H
        MOV R2,A
TRWL13: RET
;
TRDTW1: MOV A,R2
        ANL A,#80H
        JZ TRDL11
        MOV A,#2DH
        SJMP 2
TRDL11: MOV A,#20H
        MOV DPTR,ds1225
        mov a,#39h
        add a,dpl
        mov dpl,a
        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,#6
TRDL12: LCALL DIV10
        ORL A,#30H
        MOVX @DPTR,A
        DEC DPL
        DJNZ R1,TRDL12
        MOV DPTR,ds1225
        mov a,#3ah
        add a,dpl
        mov dpl,a
        MOV R2,#5
TRDL13: MOVX A,@DPTR
        CJNE A,#30H,TRDL14
        MOV A,#20H
        MOVX @DPTR,A
        INC DPTR
        DJNZ R2,TRDL13
TRDL14: RET
;
MUL10:  MOV R5,A                ; R2 R3 R4 * 10 + A ==> R2 R3 R4 .
        CLR C

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -