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

📄 zj1.asm

📁 仪器类
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        add a,dph
        mov dph,a
        mov a,46h
        mov 3dh,a               ; 将查看数据位置 ==> 反向测量位置计数器 .
        lcall seach
kenl76: nop
        lcall bmove
        mov dptr,ds1225
        mov a,#0cah
        add a,dpl
        mov dpl,a
        mov a,#1
        movx @dptr,a
;
;       lcall smove
        clr 0bh
        ljmp kend
;
kenl8:  nop
        lcall smove             ; 恢复显示缓区 .
        ljmp kend
;                               设置计数系数 .
kenl9:  nop
        jnb 09h,3
        ljmp kenl4
        jb 15h,kenl92
        setb 15h
        jnb 00h,kenl91
        mov dptr,ds1225
        mov a,#18h
        add a,dpl
        mov dpl,a
        mov r1,#5
        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
        mov r1,#5
        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
;                               编程输入 .
kenl4:  nop
        mov dptr,ds1225
        mov a,#28h
        add a,dpl
        mov dpl,a
;                               RS232 串行口波特率 (3 号编程点) .
kenl43: nop
        jb 1bh,3
        ljmp 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
        ljmp kenl49
;                               设定分机号 (4 号编程点) .
kenl44: nop
        jb 1ch,3
        ljmp 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
        ljmp kenl49
;                               设定检测类型 (5 号编程点) .
kenl45: nop
        jb 1dh,3
        ljmp kenl49
        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
kenl49: nop
        ljmp kenl93
;
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,#00011000b
        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
        cpl 20h
        jb 20h,1
        ret
        mov dptr,ds1225
        mov a,#0f0h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        jnz kchl2
        clr 20h
        ret
kchl2:  nop
        mov 3dh,a
        lcall seach
        lcall bmove
        ret
;
; "轴号" 键 .
;
KEYAH:  NOP
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        jnb 09h,1
        ret
        MOV A,20H
        ANL A,#11110011B
        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,#11101011B
        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,#00011000B
        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,#00011000B
        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
letter: db 20h,22h,28h,29h,2dh,3ah,41h,42h,43h,44h,45h,46h,47h,48h,49h,4ah
;
;           K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
        db 4bh,4ch,4dh,4eh,4fh,50h,51h,52h,53h,54h,55h,56h,57h,58h,59h,5ah
;
; ( "编程" "右箭头" ) 两种功能键 ("编程" 改为 "删除") .
;
KEYPRG: NOP
        jnb 14h,1
        ret
        jnb 0bh,1
        ret
        mov a,20h
        ANL A,#00011000B
        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                 ; 退出编程状态 .
        clr 0fh
        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,#delet
        mov a,#20h
        mov r2,#40h
kpgl23: nop
        CLR A
        MOVC A,@A+DPTR
        MOVX @R0,A
        INC DPTR
        INC R0
        DJNZ R2,kpgl23
        clr 0ah
        clr 0fh
        ret
delet:  db 20h,20h,44h,65h,6ch,65h,74h,65h,20h,64h,61h,74h,61h,20h,20h,20h
        db 20h,20h,53h,74h,61h,72h,74h,3ah,20h,20h,20h,20h,20h,20h,20h,20h
        db 20h,20h,20h,20h,45h,6eh,64h,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
        mov dptr,ds1225
        mov a,#0f1h
        add a,dpl
        mov dpl,a
        movx a,@dptr
        mov r0,#1
        jz 2
        mov r0,#0
        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,#00011000B
        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
;                               "轴型"  功能 .
kaxl2:  nop
        mov a,20h
        anl a,#00011000b
        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,#9
        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,#00011011B
        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

⌨️ 快捷键说明

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