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