📄 zj1.asm
字号:
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 + -