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

📄 zoujin.asm

📁 工业仪器仪表汇编软件
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        cpl a
        anl a,#80h
        orl a,r5
        mov r5,a
        mov r6,44h
        mov r7,45h
        lcall gadd1
        MOV 40H,R2
        MOV 41H,R3
        MOV 42H,R4
        ljmp kend
kenl6:  nop
        ret
;                       将查看数据编号的车号等送入缓区 .
kenl7:  nop
;                               找到存储数据的位置 .
        mov dptr,ds1225
        mov a,#02h
        add a,dph
        mov dph,a
        mov a,46h
        clr c
        subb a,#1
        mov r2,a
        jnz kenl71
        ljmp kenl76
kenl71: nop
        push dph
        push dpl
        inc dptr
        inc dptr
        movx a,@dptr
        mov r3,a
        pop dpl
        pop dph
        mov a,r3
        cjne a,#33h,kenl72
        mov r4,#118             ; 客车轴径118个字符 .
        sjmp kenl75
kenl72: nop
        cjne a,#32h,kenl73
        mov r4,#70              ; 防尘板座70个字符 .
        sjmp kenl75
kenl73: nop
        mov r4,#94              ; 货车轴径94个字符 .
kenl75: nop
        mov a,r4
        add a,dpl
        mov dpl,a
        mov a,dph
        addc a,#0
        mov dph,a
        djnz r2,kenl71
kenl76: nop
        mov a,#4
        add a,dpl
        mov dpl,a
        mov a,dph
        addc a,#0
        mov dph,a
        push dph
        push dpl
        mov dptr,ds1225
        mov a,#80h
        add a,dpl
        mov r0,a
        mov p2,dph
        pop dpl
        pop dph
        mov r2,#15
kenl77: nop
        movx a,@dptr
        movx @r0,a
        inc dptr
        inc r0
        djnz r2,kenl77
        inc r0
        mov r2,#27
kenl78: nop
        movx a,@dptr
        movx @r0,a
        inc dptr
        inc r0
        djnz r2,kenl78
        mov dptr,ds1225
        mov a,#0c8h
        add a,dpl
        mov dpl,a
        mov a,#1
        movx @dptr,a
        mov dptr,ds1225
        mov a,#0cah
        add a,dpl
        mov dpl,a
        mov a,#1
        movx @dptr,a
;
        lcall smove
;                               转换 "轴型" .
        mov dptr,ds1225
        mov p2,dph
        mov a,#20h
        add a,dpl
        mov r0,a
        mov r1,a
        mov r3,#2
        mov dptr,#zhou2
        lcall comsam
        jz ken781
        mov a,r1
        mov r0,a
        mov r3,#3
        mov dptr,#zhou3
        lcall comsam
        jz ken781
        mov a,r1
        mov r0,a
        mov r3,#4
        mov dptr,#zhou4
        lcall comsam
        jz ken781
        mov a,r1
        mov r0,a
        mov r3,#5
        mov dptr,#zhou5
        lcall comsam
        jz ken781
        mov a,r1
        mov r0,a
        mov r3,#6
        mov dptr,#zhou6
        lcall comsam
        jz ken781
        mov r3,#1
ken781: nop
        mov dptr,ds1225
        mov a,#0c9h
        add a,dpl
        mov dpl,a
        mov a,r3
        movx @dptr,a
;                               转换"新旧" .
        mov dptr,ds1225
        mov a,#25h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        clr 18h
        cjne a,#4fh,2           ; O -- 旧 .
        setb 18h
;                               转换"左右" .
        mov dptr,ds1225
        mov a,#27h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        clr 19h
        cjne a,#52h,2           ; R -- 右 .
        setb 19h
;                               转换"人名" .
        mov dptr,ds1225
        mov a,#29h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        clr c
        subb a,#30h
        mov r3,a
        mov dptr,ds1225
        mov a,#0cbh
        add a,dpl
        mov dpl,a
        mov a,r3
        movx @dptr,a
        clr 0bh
        ljmp kend
;
kenl8:  nop
        lcall smove             ; 恢复显示缓区 .
        ljmp kend
;                               设置计数系数 .
kenl9:  nop
        jb 15h,kenl92
        setb 15h
        jnb 00h,kenl91
        mov dptr,ds1225
        mov a,#18h
        add a,dpl
        mov dpl,a
        lcall strwtd
        mov dptr,ds1225
        mov a,#0e0h
        add a,dpl
        mov dpl,a
        mov a,r2
        movx @dptr,a
        inc dptr
        mov a,r3
        movx @dptr,a
        inc dptr
        mov a,r4
        movx @dptr,a
        mov dptr,ds1225
        mov a,#18h
        add a,dpl
        mov dpl,a
        lcall strdtw
        clr 00h
kenl91: nop
        ret
kenl92: nop
        jnb 00h,kenl93
        mov dptr,ds1225
        mov a,#28h
        add a,dpl
        mov dpl,a
        lcall strwtd
        mov dptr,ds1225
        mov a,#0e3h
        add a,dpl
        mov dpl,a
        mov a,r2
        movx @dptr,a
        inc dptr
        mov a,r3
        movx @dptr,a
        inc dptr
        mov a,r4
        movx @dptr,a
        clr 00h
kenl93: nop
        clr 15h
        clr 14h
        clr 00h
        ret
;
KEND:   MOV A,20H
        ANL A,#00000000B
        MOV 20H,A
        CLR 08H
        CLR 06H
        ret
;
; "截面" 键 .
;
KEYJM:  NOP
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        mov a,20h
        anl a,#00011100b
        jz 1
        ret
        jnb 09h,1
        ret
        mov dptr,ds1225
        mov a,#0f3h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        cjne a,#13,kjml1
        mov r1,#4
        sjmp kjml4
kjml1:  nop
        cjne a,#12,kjml2
        mov r1,#2
        sjmp kjml4
kjml2:  nop
        mov r1,#3
kjml4:  nop
        mov dptr,ds1225
        mov a,#0cah
        add a,dpl
        mov dpl,a
        mov a,#1
        movx @dptr,a
        mov dptr,ds1225
        mov a,#0c8h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        inc a
        movx @dptr,a
        clr c
        subb a,r1
        jnc kjml5
        ret
kjml5:  nop
        mov a,#1
        movx @dptr,a
        ret
;
; "车号" 键 .
;
KEYCH:  nop
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        MOV A,20H
        ANL A,#11111011B
        JZ Kchl1
        RET
Kchl1:  nop
        JNB 02H,Kchl2
        LCALL SMOVE             ; 恢复显示缓区 .
        ljmp kend
Kchl2:  nop
        SETB 02H
        clr 06h
        clr 08h
        MOV B,#00H
        MOV R2,#14
        LCALL SCGCL
        RET
;
; "轴号" 键 .
;
KEYAH:  NOP
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        MOV A,20H
        ANL A,#11110111B
        JZ Kahl1
        RET
Kahl1:  nop
        JNB 03H,Kahl2
        LCALL SMOVE             ; 恢复显示缓区 .
        ljmp kend
Kahl2:  nop
        SETB 03H
        clr 06h
        clr 08h
        MOV B,#10H
        MOV R2,#10
        LCALL SCGCL
        RET
;
; "厂号" 键 .
;
KEYPH:  nop
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        MOV A,20H
        ANL A,#11101111B
        JZ Kphl1
        RET
Kphl1:  nop
        JNB 04H,Kphl2
        LCALL SMOVE             ; 恢复显示缓区 .
        ljmp kend
Kphl2:  nop
        SETB 04H
        clr 06h
        clr 08h
        MOV B,#1bH
        MOV R2,#4
        LCALL SCGCL
        RET
;
; ( "左/右" "左箭头" ) 两种功能键 .
;
KEYLR:  nop
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        mov a,20h
        ANL A,#00011100B
        jz KLRL2
;                               "左箭头" 功能键 .
        jb 06h,1
        ret
        dec 46h
        mov a,46h
        jz 1
        ret
        mov 46h,#20h
        ret
KLRL2:  nop
        CPL 19H
        RET
;
;  ( "字母" "查看数据" ) 两种功能键 .
;
KEYAZ:  NOP
        jnb 14h,1
        ret
        jnb 0bh,3
        ljmp kazl2
        jnb 09h,1
        ret
        mov a,20h
        ANL A,#00011100B
        jz kazl2
kazl1:  nop
        jb 06h,kazl13
;                               送A--Z字符到显示的下半区 .
        mov dptr,ds1225
        mov p2,dph
        mov a,#20h
        add a,dpl
        mov r0,a
        mov dptr,#letter
        mov r2,#20h
kazl11: nop
        clr a
        movc a,@a+dptr
        movx @r0,a
        inc r0
        inc dptr
        djnz r2,kazl11
        mov a,#20h
        mov r2,#6
kazl12: nop
        movx @dptr,a
        inc dptr
        djnz r2,kazl12
        setb 06h
        setb 08h
        mov 46h,#1
        ret
kazl13: nop
        lcall resb2             ; 恢复显示缓区下半部分 .
        clr 06h
        mov 46h,#0
        RET
;                       查看数据功能 .
kazl2:  nop
        jnb 00h,1
        ret
        cpl 0bh
        jb 0bh,kazl3
;                       结束查看数据功能 .
        lcall smove
        ret
kazl3:  nop
        mov dptr,ds1225
        mov a,#0f0h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov 3fh,a
        jnz kazl31
        clr 0bh
        ret
kazl31: nop
        mov 48h,#1
        mov dptr,ds1225
        mov a,#0f0h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov 46h,a
        lcall check
        ret
;          A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P
letter: db 41h,42h,43h,44h,45h,46h,47h,48h,49h,4ah,4bh,4ch,4dh,4eh,4fh,50h
;          Q   R   S   T   U   V   W   X   Y   Z       "   (   )   -   :
        db 51h,52h,53h,54h,55h,56h,57h,58h,59h,5ah,20h,22h,28h,29h,2dh,3ah
;
; ( "编程" "右箭头" ) 两种功能键 .
;
KEYPRG: NOP
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        mov a,20h
        ANL A,#00011100B
        jz Kpgl2
;                               "右箭头" 功能键 .
kpgl1:  nop
        jb 06h,1
        ret
        mov a,46h
        clr c
        subb a,#20h
        jc kpgl11
        mov 46h,#0
kpgl11: nop
        inc 46h
        RET
;                               编程功能键 .
KpgL2:  nop
        cpl 09h
        jb 09h,kpgl22
        clr 0ah                 ; 退出编程状态 .
        LCALL SMOVE             ; 恢复显示缓区 .
        mov a,#1
        lcall dispp             ; 显示编程提示 .
        ret
;                               进入编程状态 .
kpgl22: nop
        jnb 00h,1
        ret
        mov dptr,ds1225
        mov p2,dph
        mov r0,dpl
        mov dptr,#prgram
        mov a,#20h
        mov r2,#40h
kpgl23: nop
        CLR A
        MOVC A,@A+DPTR
        MOVX @R0,A
        INC DPTR
        INC R0
        DJNZ R2,kpgl23
        mov dptr,ds1225
        mov a,#18h
        add a,dpl
        mov dpl,a
        mov a,#31h
        movx @dptr,a
        mov a,#1
        lcall dispp             ; 显示编程提示 .
        mov a,#31h
        lcall trapg             ; 转换编程值 .
        clr 0ah
        ret
prgram: db 20h,20h,50h,72h,6fh,67h,72h,61h,6dh,6dh,69h,6eh,67h,20h,20h,20h
        db 20h,20h,20h,20h,4eh,4fh,2eh,3ah,20h,20h,20h,20h,20h,20h,20h,20h
        db 20h,20h,56h,61h,6ch,75h,65h,3ah,20h,20h,20h,20h,20h,20h,20h,20h
        db 20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h
;
; "人名" 键 .
;
KEYNM:  nop
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        mov a,20h
        ANL A,#00011100B
        jz 1
        ret
        mov dptr,ds1225
        mov a,#0cbh
        add a,dpl
        mov dpl,a
        movx a,@dptr
        inc a
        mov r0,a
        clr c
        subb a,#10
        jc krml1
        mov r0,#0
krml1:  nop
        mov a,r0
        movx @dptr,a
        ret
;
; "新/旧" "  键 .
;
KEYNO:  NOP
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        mov a,20h
        ANL A,#00011100B
        jz 1
        ret
        CPL 18H
        RET
;
; ( "轴型" "下箭头" )  两种功能键 .
;
KEYAX:  NOP
        jnb 14h,1
        ret
        jb 0bh,3
        ljmp kaxl2
;                               查看数据 "下箭头" 功能 .
kaxl1:  nop
        mov a,48h
        cjne a,#1,kaxl11
        inc 48h
        sjmp kaxl15
kaxl11: nop
        mov a,46h
        clr c
        subb a,3fh
        jc 1
        ret
        inc 46h
        mov 48h,#1
kaxl15: nop
        lcall check             ; 查看数据时, 显示数据 .
        ret

⌨️ 快捷键说明

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