📄 p31n-v1.1.2.asm
字号:
ljmp own
down: clr f_0
ljmp mmain
own: ret
;******************************
; 显示终端机号
;******************************
key_f1: lcall get_pos_name
kkf10: mov r7,#80
kkf13: lcall key_in
mov a,v_key
cjne a,#k_f1a,kkf14
mov v0_key,#0ffh
ret
kkf14: cjne a,#k_f1p,kkf15
mov v0_key,#0ffh
ret
kkf15: cjne a,#k_f1m,kkf16
mov v0_key,#0ffh
ret
kkf16: cjne a,#k_f2p,kkf17
mov v0_key,#0ffh
ret
kkf17: cjne a,#k_f2m,kkf18
mov v0_key,#0ffh
ret
kkf18: cjne a,#kb_cl,kkf19
ret
kkf19: djnz r7,kkf13
ret
;*************************************
; Display Sale/Deposit/Fetch Sum
;*************************************
key_f2: lcall sum_ds
jnb bit_c,kkf20
ret
kkf20: mov r7,#100
k_f20: lcall key_in
mov a,v_key
cjne a,#kb_cl,k_f21
ret
k_f21: cjne a,#kb_f2,k_f22
sjmp kkf30
k_f22: djnz r7,k_f20
ret
;;;;;;
kkf30: mov r0,#ddsp0
mov r2,#4
mov a,#null
kkf32: mov @r0,a
inc r0
djnz r2,kkf32
mov dptr,#sum6
mov r2,#2
kkf34: movx a,@dptr
mov b,a
swap a
anl a,#0fh
jnz kkf35
mov a,#null
kkf35: mov @r0,a
inc r0
mov a,b
anl a,#0fh
jnz kkf37
mov a,#null
kkf37: mov @r0,a
inc r0
inc dptr
djnz r2,kkf34
dec r0
cjne @r0,#null,kkf39
mov @r0,#0
kkf39: mov r0,#ddsp0
mov r1,#ddsp1
mov r2,#8
lcall copy_s
mov r7,#100
k_f30: lcall key_in
mov a,v_key
cjne a,#kb_cl,k_f31
ret
k_f31: cjne a,#kb_f2,k_f32
ljmp key_f2
k_f32: djnz r7,k_f30
ret
;*************************************
;Display Sale/Deposit/Fetch Record
;"KEY+F1+="==>Enter;"+"==>Preious;"-"==>Next
; "."==>No.;CardAdress;Time;RecordAddress
;*************************************
;keyf1equ: mov a,s_succ
; jz kkf41
; ret
;kkf41: mov adr_l,end_l
; mov a,end_h
; mov adr_h,a
; jnz kkf42
; mov a,end_l
; jnz kkf42
; mov adr_l,#mx_sl
; mov adr_h,#mx_sh
;kkf42: clr c
; mov a,adr_l
; subb a,#1
; mov adr_l,a
; mov a,adr_h
; subb a,#0
; mov adr_h,a
; mov reg2,#0
; mov reg3,#1
;kkf45: lcall get_sale
; mov r0,#reg3
; mov r1,#ddsp03
; lcall bndec2
; mov reg4,#0
; mov r0,#d_exp2
; mov r1,#exp_rm5
; lcall bin2dec
; mov r0,#ddsp03
; mov a,@r0
; orl a,#80h
; mov @r0,a
; lcall expense2disp
; mov r0,#ddsp0
; mov r1,#ddsp1
; mov r2,#8
; lcall copy_s
;k_f40: lcall key_in
; mov a,v_key
; cjne a,#kb_cl,k_f43
; ret
;k_f43: cjne a,#kb_p,k_f45
; mov a,adr_l
; add a,#1
; mov r3,a
; clr a
; addc a,adr_h
; mov r2,a
; cjne a,#mx_sh,kf431
; mov a,r3
; cjne a,#mx_sl,kf431
;kf431: jc kf433
; mov r3,#0
; mov r2,#0
;kf433: mov a,r2
; cjne a,end_h,kf435
; mov a,r3
; cjne a,end_l,kf435
; sjmp k_f40
;kf435: mov adr_h,r2
; mov adr_l,r3
;
; clr c
; mov a,reg3
; subb a,#1
; mov reg3,a
; mov a,reg2
; subb a,#0
; mov reg2,a
;
; ljmp kkf45
;k_f45: cjne a,#kb_m,k_f47
; mov r3,adr_l
; mov a,adr_h
; mov r2,a
; jnz kf451
; mov a,r3
; jnz kf451
;
; mov r2,#mx_sh
; mov r3,#mx_sl
;
; kf451: clr c
; mov a,r3
; subb a,#1
; mov r3,a
;
; mov a,r2
; subb a,#0
; mov r2,a
; cjne a,end_h,kf453
; mov a,r3
; cjne a,end_l,kf453
;
; ljmp k_f40
;kf453: mov adr_h,r2
; mov adr_l,r3
; mov a,reg3
; add a,#1
; mov reg3,a
; mov a,reg2
; addc a,#0
; mov reg2,a
; ljmp kkf45
;k_f47: cjne a,#kb_dot,k_f49
; inc reg4
; anl reg4,#3
; mov a,reg4
; cjne a,#0,kf471
;
; mov r0,#reg3
; sjmp kf477
;kf471: cjne a,#1,kf473
; mov r0,#dadr_l
; sjmp kf477
;kf473: cjne a,#2,kf475
; mov r0,#d_hor
; mov r1,#ddsp0
; mov a,@r0
; mov b,#10
; div ab
; mov @r1,a
; inc r1
; mov @r1,b
; inc r1
;
; inc r0
; mov a,@r0
; mov b,#10
; div ab
; mov @r1,a
; inc r1
; mov @r1,b
; sjmp kf479
;
;kf475: mov r0,#adr_l
;kf477: mov r1,#ddsp03
; lcall bndec2
;kf479: mov a,#ddsp03
; clr c
; subb a,reg4
; mov r0,a
; mov a,@r0
; orl a,#80h
; mov @r0,a
; mov r0,#ddsp0
; mov r1,#ddsp1
; mov r2,#4
; lcall copy_s
;k_f49: ljmp k_f40
;******************************
get_sale:
mov r2,adr_h
mov r3,adr_l
mov dptr,#d_sal
mov r1,#1
mov reclen,#s_recl
lcall g_addr
;
mov r0,#dflag
mov r3,#s_recl
getsl52:movx a,@dptr
mov @r0,a
lcall indptr
inc r0
djnz r3,getsl52
;
ret
;*************************************
;Display End_h,End_l && beg_h,Beg_l
;*************************************
keyf1d: mov r0,#beg_l
mov r1,#ddsp03
lcall bndec2
mov r0,#end_l
mov r1,#ddsp07
lcall bndec2
mov r0,#ddsp0
mov r1,#ddsp1
mov r2,#8
lcall copy_s
mov r7,#80
kfd13: lcall key_in
mov a,v_key
cjne a,#kb_cl,kfd15
ret
kfd15: djnz r7,kfd13
ret
;******************************
; Show Card's Address
;******************************
keyf16: mov r0,#ddsp0
mov @r0,#0ch
inc r0
mov @r0,#0ah
inc r0
mov @r0,#15h
inc r0
mov @r0,#0dh
mov r7,#12
inc r0
keyf16_0:
mov @r0,#12h
inc r0
djnz r7,keyf16_0
keyf16_1:
lcall card_id
jb rf_chk,keyf16_2
ljmp keyf16_3
keyf16_2:
lcall key_in
mov a,v_key
cjne a,#kb_cl,keyf16_1
lcall key_in
lcall key_in
ret
keyf16_3:
jnb f0,keyf16err
lcall divsub
lcall clrbp
mov r2,#0
mov r3,#80
kf16_w:
djnz r2,$
djnz r3,kf16_w
lcall setbp
mov r2,#2
mov r0,#rf1ram
mov r1,#ddsp04
lcall ram2disp
mov r2,#4
mov r0,#rf0ram
inc r0
mov r1,#ddsp1
lcall ram2disp
mov r4,#1
lcall d0lay
ljmp keyf16_1
keyf16err:
mov r_err,#err_7
ljmp deal_error
ret
ram2disp:
mov a,@r0
mov b,a
anl a,#0f0h
swap a
mov @r1,a
inc r1
mov a,b
anl a,#0fh
mov @r1,a
inc r0
inc r1
djnz r2,ram2disp
ret
;******************************
; Clear Deposit State
;******************************
keyf1cl:
mov a,state
anl a,#0fh
cjne a,#2,kk_f1cl
clr f_cny
mov r_err,#11
lcall get_code
ljmp kkf10
kk_f1cl:ret
;******************************
; Set Ration State
;******************************
keyf2en:
mov a,state
cjne a,#33,kk_f1n
ret
kk_f1n: anl a,#0fh
cjne a,#2,kk_f2n
ret
kk_f2n: mov r_err,#12
lcall get_code
mov r0,#rat_2
mov r1,#exp_rm5
lcall bin2dec
lcall expense2disp
lcall clr_bit
lcall clr_augend
kk_f5n: lcall key_in
mov a,v_key
cjne a,#kb_en,kk_f6n
lcall disp2expense
mov r0,#exp_rm5
mov r1,#rat_2
lcall dec2bin
setb f_rat
ret
kk_f6n: cjne a,#kb_cl,kk_f7n
jb f_n,kkf79n
lcall key_in
lcall key_in
ret
kk_f7n: cjne a,#kb_p,kkf77n
kkf77n: jnc kk_f5n
mov a,state
cjne a,#17,kkf78n
sjmp kk_f5n
kkf78n: jb f_n,kk_f8n
kkf79n: lcall clr_bit
lcall clr_expense
lcall clr_augend
mov r0,#ddsp04
mov r1,#ddsp04
mov r2,#3
lcall setnul
mov @r0,#0
mov @r1,#0
kk_f8n: lcall kb_deal
sjmp kk_f5n
;******************************
; Clear Ration State
;******************************
keyf2cl:
mov a,state
cjne a,#33,kk_f2c
ret
kk_f2c: cjne a,#17,kk_f5c
ret
kk_f5c: anl a,#0fh
cjne a,#2,kk_f8c
ret
kk_f8c: clr f_rat
mov r_err,#13
lcall get_code
ljmp kkf10
;*************************************************************
;******************************
err_in: mov r_err,#err_9
lcall error_code
lcall clrbp
mov r4,#30
lcall d0lay
lcall setbp
mov r4,#10
lcall d0lay
ret
;******************************
;******************************
in_err: lcall err_in
jb f_rat,iner0
lcall clear_input
clr f0
mov c,f_cny
cpl c
mov f_a_s,c
ret
iner0:
;lcall card_test
;jnb rf_chk,in_err
clr f_tj
clr f0
ljmp xig5
ret
;**********************************************************
;*************************************************************
;******************************
err_in2: mov r_err,#err_16
lcall error_code
lcall clrbp
mov r4,#30
lcall d0lay
lcall setbp
mov r4,#10
lcall d0lay
ret
;******************************
;******************************
in_err2: lcall err_in2
;;; jb f_rat,iner02
lcall clear_input
clr f0
mov c,f_cny
cpl c
mov f_a_s,c
ret
iner02:
;lcall card_test
;jnb rf_chk,in_err
clr f_tj
clr f0
ljmp xig5
ret
;**********************************************************
;*******************************
;*******************************
clear_input:
lcall clr_expense
lcall clr_bit
mov r0,#ddsp04
mov r1,#ddsp14
mov r2,#3
lcall setnul
mov @r0,#0
mov @r1,#0
lcall surplus2disp
mov r2,#4
mov r0,#ddsp0
mov r1,#ddsp1
lcall copy_s
ret
;*******************************
; Set Null
;*******************************
setnul: mov a,#null
setram: mov @r0,a
mov @r1,a
inc r0
inc r1
djnz r2,setram
ret
;*******************************
;*******************************
copy_s: mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r2,copy_s
ret
;*******************************
; 清除消费累加和,ds1307RAM
;===============================
clrsum: mov bytecount,#08h ;8 bytes
clr ea
lcall send_start
mov a,#ds1307w
lcall send_byte
mov a,#17h ;address
lcall send_byte
clr_loop:
mov a,#00h
lcall send_byte
djnz bytecount,clr_loop
lcall send_stop ;send the commnand of stop
setb ea
ret
;*******************************
; Clear Augend
;===============================
clr_augend:
mov r0,#augend0
mov r2,#6
cnw0: mov @r0,#0
inc r0
djnz r2,cnw0
ret
;*******************************
; Clear Expense
;===============================
clr_expense:
mov r0,#exp_rm0
mov r2,#6
clr a
cnf0: mov @r0,a
inc r0
djnz r2,cnf0
ret
;******************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -