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

📄 zoujin.asm

📁 工业仪器仪表汇编软件
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        RET
K09L52: MOV R4,A
        MOV A,4FH
        JNZ 1
        RET
        MOV A,#40H
        CLR C
        SUBB A,4FH
        MOV B,A
        MOV A,R4
        LCALL SCGRAM
        DEC 4FH
        RET
;                               设置计数系数 .
k09l6:  nop
        push a
        mov dptr,ds1225
        jb 15h,k09l61
        mov a,#18h
        sjmp k09l62
k09l61: nop
        mov a,#28h
k09l62: nop
        mov r1,a
        add a,dpl
        mov dpl,a
        jb 00h,k09l63
        setb 00h
        push dph
        push dpl
        mov b,r1
        mov r2,#5
        lcall scgcl
        pop dpl
        pop dph
k09l63: nop
        mov a,r1
        add a,#1
        mov b,a
        mov r2,#4
        pop a
        lcall lmove
        ret
;
; ( "."  "上箭头"  "保存测量值" )  三个功能键值 .
;
KEYPT:  nop
        jnb 14h,1
        ret
        mov a,20h
        anl a,#00011100b
        jz 1
        ret
        jnb 09h,1
        ret
        jb 0bh,3
        ljmp kptl2
;                               查看数据 "上箭头" 功能 .
kptl1:  nop
        mov a,46h
        cjne a,#1,kptl11
        mov a,48h
        cjne a,#1,kptl11
        ret                     ; 数据起始位置 .
kptl11: nop
        mov a,48h
        cjne a,#1,kptl12
        ljmp kptl13
kptl12: nop
        dec 48h
        ljmp kptl16
kptl13: nop
        dec 46h
        mov 48h,#1
kptl16: nop
        lcall check             ; 查看数据时, 显示数据 .
        ret
;
kptl2:  nop
        jb 00h,3
        ljmp kptl3
;                               "."  功能 .
        JNB 01H,1
        RET
        SETB 01H
        MOV A,#2EH
        MOV B,#3CH
        LCALL SCGRAM
        MOV A,#3
        MOV 4FH,A
        RET
;                               "保存测量值" 功能 .
kptl3:  nop
;                               计算当前截面在缓区的位置 .
;                               截面 * 24 + 第几点 * 8 = 位置 .
        mov dptr,ds1225
        mov a,#0c8h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        clr c
        subb a,#1
        mov b,#24
        mul ab
        mov r4,a
        mov dptr,ds1225
        mov a,#0cah
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov b,#8
        clr c
        subb a,#1
        mul ab
        add a,r4
        mov r4,a
        mov dptr,ds1225
        mov a,#01h
        add a,dph
        mov p2,a
        mov a,r4
        add a,dpl
        mov r0,a
        mov dptr,ds1225
        mov a,#39h
        add a,dpl
        mov dpl,a
        mov r2,#7
kptl31: nop
        movx a,@dptr
        movx @r0,a
        inc dptr
        inc r0
        djnz r2,kptl31
        mov dptr,ds1225
        mov a,#0cah
        add a,dpl
        mov dpl,a
        movx a,@dptr
        add a,#1
        movx @dptr,a
        clr c
        subb a,#4
        jnc 1
        ret
        mov a,#1
        movx @dptr,a
        ret
;
; ( "+/-"  "存贮一组测量值" )  两种功能键值 .
;
KEYID:  nop
        jnb 14h,1
        ret
        mov a,20h
        anl a,#00011100b
        jz 1
        ret
        jnb 09h,1
        ret
        jnb 0bh,1
        ret
        jb 00h,3
        ljmp kidl2
;                               "+/-" 功能 .
        MOV B,#38H
        LCALL RCGRAM
        CJNE A,#2DH,KIDL11
        MOV A,#2BH              ; +  sign .
        SJMP KIDL12
KIDL11: MOV A,#2DH              ; -  sign .
KIDL12: MOV B,#38H
        LCALL SCGRAM
        RET
;                               "存贮一组测量值" 功能 .
kidl2:  nop
;                               找到存储数据的位置 .
        mov dptr,ds1225
        mov a,#0f0h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov r2,a
        mov dptr,ds1225
        mov a,#02h
        add a,dph
        mov dph,a
        mov a,r2
        jnz kidl21
        ljmp kidl3
kidl21: 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,kidl22
        mov r4,#118             ; 客车轴径118个字符 .
        sjmp kidl25
kidl22: nop
        cjne a,#32h,kidl23
        mov r4,#70              ; 防尘板座70个字符 .
        sjmp kidl25
kidl23: nop
        mov r4,#94              ; 货车轴径94个字符 .
kidl25: nop
        mov a,r4
        add a,dpl
        mov dpl,a
        mov a,dph
        addc a,#0
        mov dph,a
        djnz r2,kidl21
kidl3:  nop
;                               判别缓区是否满 ?
        mov a,dpl
        clr c
        subb a,#0a0h
        mov a,dph
        subb a,#1fh
        jc kidl30
        setb 0eh
        ret
kidl30: nop
        mov a,#42h              ; B .
        movx @dptr,a
        inc dptr
        mov a,#31h
        movx @dptr,a
        inc dptr
        push dph
        push dpl
        mov dptr,ds1225
        mov a,#0f3h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov r4,a
        cjne a,#13,kidl31
        mov r3,#33h
        mov r5,#71
        sjmp kidl33
kidl31: nop
        cjne a,#12,kidl32
        mov r3,#32h
        mov r5,#23
        sjmp kidl33
kidl32: nop
        mov r3,#31h
        mov r5,#47
kidl33: nop
        pop dpl
        pop dph
        mov a,r3
        movx @dptr,a
        inc dptr
        mov a,#20h
        movx @dptr,a
        inc dptr
;
kidl4:  nop
        push dph
        push dpl
        mov dptr,ds1225
        mov p2,dph
        mov r0,dpl
        pop dpl
        pop dph
        mov r2,#15
kidl41: nop
        movx a,@r0
        movx @dptr,a
        inc dptr
        inc r0
        djnz r2,kidl41
        inc r0
        mov r2,#27
kidl42: nop
        movx a,@r0
        movx @dptr,a
        inc dptr
        inc r0
        djnz r2,kidl42
;
kidl5:  nop
        push dph
        push dpl
        mov dptr,ds1225
        mov a,#01h
        add a,dph
        mov p2,a
        mov r0,dpl
        pop dpl
        pop dph
        mov a,r5
        mov r2,a
kidl51: nop
        movx a,@r0
        movx @dptr,a
        inc dptr
        inc r0
        djnz r2,kidl51
        mov a,#3bh              ; ";" .
        movx @dptr,a
        inc dptr
        mov a,#25h              ; "%" .
        movx @dptr,a
;
kidl6:  nop
        mov dptr,ds1225
        mov a,#0f0h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        inc a
        movx @dptr,a
        lcall clrbuf
        ret
;
;   "认可" 键  .
;
keyent: nop
        jnb 14h,3
        ljmp kenl9              ; 设置计数系数 .
        jnb 0bh,3
        ljmp kenl7
        jnb 02h,kenl2
;                       输入车号 .
kenl1:  nop
        jb 08h,3
        ljmp kenl8
        jnb 06h,kenl12
        lcall takeaz            ; 字符输入 .
        MOV B,#1
        MOV R2,#13
        LCALL LMOVE
        lcall resb2             ; 恢复显示缓区下半部分 .
        clr 06h
        RET
kenl12: nop
        mov dptr,ds1225
        mov p2,dph
        mov r0,dpl
        mov a,#80h
        add a,dpl
        mov r1,a
        MOV R2,#14
KENL11: MOVX A,@R0
        MOVX @R1,A
        INC R0
        INC R1
        DJNZ R2,KENL11
        LJMP KEND
;                       输入轴号 .
KENL2:  nop
        jnb 03h,kenl3
        jb 08h,3
        ljmp kenl8
        jnb 06h,kenl22
        lcall takeaz            ; 字符输入 .
        MOV B,#11h
        MOV R2,#9
        LCALL LMOVE
        lcall resb2             ; 恢复显示缓区下半部分 .
        clr 06h
        RET
kenl22: nop
        mov dptr,ds1225
        mov p2,dph
        mov a,#10h
        add a,dpl
        mov dpl,a
        mov r0,dpl
        mov a,#80h
        add a,dpl
        mov r1,a
        MOV R2,#10
KENL21: MOVX A,@R0
        MOVX @R1,A
        INC R0
        INC R1
        DJNZ R2,KENL21
        LJMP KEND
;                       输入厂代号 .
KENL3:  nop
        jnb 04h,kenl4
        jb 08h,3
        ljmp kenl8
        jnb 06h,kenl32
        lcall takeaz            ; 字符输入 .
        MOV B,#1ch
        MOV R2,#3
        LCALL LMOVE
        lcall resb2             ; 恢复显示缓区下半部分 .
        clr 06h
        RET
kenl32: nop
        mov dptr,ds1225
        mov p2,dph
        mov a,#1bh
        add a,dpl
        mov dpl,a
        mov r0,dpl
        mov a,#80h
        add a,dpl
        mov r1,a
        MOV R2,#4
KENL31: MOVX A,@R0
        MOVX @R1,A
        INC R0
        INC R1
        DJNZ R2,KENL31
        LJMP KEND
;                               编程输入 .
kenl4:  nop
        jb 09h,3
        ljmp kenl5
        mov dptr,ds1225
        mov a,#18h              ; 取编程点号 .
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov r0,a
        mov dptr,ds1225
        mov a,#28h
        add a,dpl
        mov dpl,a
        mov a,r0
        cjne a,#31h,kenl42
;                               检测数据编程 (1 号编程点) .
kenl41: nop
        clr 0eh
        movx a,@dptr
        mov r1,a
        cjne a,#20h,2
        mov r1,#30h
        mov a,r1
        clr c
        subb a,#30h
        mov b,#10
        mul ab
        mov r3,a
        inc dptr
        movx a,@dptr
        mov r1,a
        cjne a,#20h,2
        mov r1,#30h
        mov a,r1
        clr c
        subb a,#30h
        add a,r3
        mov b,#10
        mul ab
        mov r3,a
        inc dptr
        movx a,@dptr
        mov r1,a
        cjne a,#20h,2
        mov r1,#30h
        mov a,r1
        clr c
        subb a,#30h
        add a,r3
        mov r3,a
        mov dptr,ds1225
        mov a,#0f0h
        add a,dpl
        mov dpl,a
        mov a,r3
        movx @dptr,a
        mov a,#2
        lcall dispp             ; 显示编程提示 .
        ljmp kenl49
;                               数字键的锁定 (2 号编程点) .
kenl42: nop
        cjne a,#32h,kenl43
        inc dptr
        inc dptr
        movx a,@dptr
        mov r3,#1
        cjne a,#30h,2
        mov r3,#0
        mov dptr,ds1225
        mov a,#0f1h
        add a,dpl
        mov dpl,a
        mov a,r3
        movx @dptr,a
        mov a,#3
        lcall dispp             ; 显示编程提示 .
        ljmp kenl49
;                               RS232 串行口波特率 (3 号编程点) .
kenl43: nop
        cjne a,#33h,kenl44
        inc dptr
        inc dptr
        movx a,@dptr
        clr c
        subb a,#30h
        mov r3,a
        mov dptr,ds1225
        mov a,#0f2h
        add a,dpl
        mov dpl,a
        mov a,r3
        movx @dptr,a
        mov a,#4
        lcall dispp             ; 显示编程提示 .
        ljmp kenl49
;                               设定分机号 (4 号编程点) .
kenl44: nop
        cjne a,#34h,kenl45
        inc dptr
        movx a,@dptr
        mov r1,a
        cjne a,#20h,2
        mov r1,#30h
        mov a,r1
        clr c
        subb a,#30h
        mov b,#10
        mul ab
        mov r3,a
        inc dptr
        movx a,@dptr
        mov r1,a
        cjne a,#20h,2
        mov r1,#30h
        mov a,r1
        clr c
        subb a,#30h
        add a,r3
        mov r3,a
        cjne a,#13,ken441
        mov r4,#0
        sjmp ken445
ken441: nop
        cjne a,#12,ken442
        mov r4,#2
        sjmp ken445
ken442: nop
        mov r4,#1
        mov r3,#11
ken445: nop
        mov dptr,ds1225
        mov a,#0f3h
        add a,dpl
        mov dpl,a
        mov a,r3
        movx @dptr,a
        inc dptr
        mov a,r4
        movx @dptr,a
        mov a,#5
        lcall dispp             ; 显示编程提示 .
        ljmp kenl49
;                               设定检测类型 (5 号编程点) .
kenl45: nop
        mov dptr,ds1225
        mov a,#0f3h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov r3,a
        cjne a,#13,ken451
        mov r4,#0
        sjmp ken455
ken451: nop
        cjne a,#12,ken452
        mov r4,#2
        sjmp ken455
ken452: nop
        mov r4,#1
ken455: nop
        inc dptr
        mov a,r4
        movx @dptr,a
        mov r0,#30h
        mov a,#1
        lcall dispp             ; 显示编程提示 .
kenl49: nop
        inc r0
        mov a,r0
        lcall trapg             ; 转换编程值 .
        clr 0ah
        ret
;                               数据输入 .
kenl5:  nop
        jb 00h,3
        ljmp kenl6
        LCALL TRWTD
;                               判别锁定 ?
        mov dptr,ds1225
        mov a,#0f1h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        jz kenl51
        ljmp kend
kenl51: nop
        mov a,43h
        anl a,#7fh
        mov r5,a
        mov a,43h

⌨️ 快捷键说明

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