?? zoujin.asm
字號:
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 + -