📄 p23b-p.asm
字号:
d_f_1: cjne a,#k_f15,d_f_3
ljmp upt_zh
d_f_3: cjne a,#k_f13,d_f_4
ljmp tmdisp
d_f_4: cjne a,#k_f14,d_f_5
ljmp key_zj
d_f_5: cjne a,#k_f1p,d_f_7
jb f_com,d_f_6
cpl f_off
ret
;-----------------------
;-----------------------
d_f_6: clr f_off
ret
d_f_7: cjne a,#k_f1m,d_ff7
ljmp key_f1cl
d_ff7: cjne a,#k_f11,d_f_8
ljmp t_comm
d_f_8: cjne a,#kb_a,d_ff8
ret
jnb f_cny,d_f_a
ljmp key_a
d_ff8: cjne a,#kb_b,d_f_9
ret
jnb f_cny,d_f_a
ljmp key_b
d_f_9: cjne a,#k_f2p,d_ff9
ljmp key_f2en
d_ff9: cjne a,#k_f2m,d_f_a
ljmp key_f2cl
d_f_a: ret
;*******************************
sale_counter:
mov r2,#16
mov xb_add,#d_x1
mov yb_add,#d_y00
lcall disp_null
mov r_err,#24
mov xb_add,#d_x2
lcall get_code
mov r_err,#25
mov xb_add,#d_x3
lcall get_code
mov a,lim_cnt
add a,#30h
mov hzc_h,a
mov xb_add,#d_x2
mov yb_add,#d_y41
lcall disp_one
mov r0,#augend0
mov @r0,#0
mov a,@r0
add a,#30h
mov hzc_h,a
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_one
sl_cnt0: lcall key_in
mov a,v_key
cjne a,#kb_en,sl_cnt1
mov a,lim_cnt
jnz sl_cnt3
mov r_err,#err_5
mov xb_add,#d_x1
lcall error_code
lcall clrbp
mov r4,#30
lcall d0lay
lcall setbp
mov r4,#10
lcall d0lay
;lcall err_in
sjmp sale_counter
sl_cnt1:
lcall card_test
jnb rf_chk,sl_cnt0
ljmp card_pullout
sl_cnt3:
dec lim_cnt
mov a,lim_cnt
add a,#30h
mov xb_add,#d_x2
mov yb_add,#d_y41
mov hzc_h,a
lcall disp_one
mov r0,#augend0
inc @r0
mov a,@r0
add a,#30h
mov hzc_h,a
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_one
sl_cnt5: mov regt,#10
sl_cnt6: lcall key_in
mov a,v_key
cjne a,#kb_cl,sl_cnt7
inc lim_cnt
mov a,lim_cnt
add a,#30h
mov xb_add,#d_x2
mov yb_add,#d_y41
mov hzc_h,a
lcall disp_one
mov r0,#augend0
dec @r0
mov @r0,a
add a,#30h
mov hzc_h,a
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_one
ljmp sl_cnt0
sl_cnt7:mov r4,#2
lcall d0lay
djnz regt,sl_cnt6
lcall card_test
jb rf_chk,sl_cnt9
mov xb_add,#d_x3
mov yb_add,#d_y41
mov hzc_h,#0
lcall disp_one
mov regt,#10
sl_cnt8:mov r4,#5
lcall d0lay
djnz regt,sl_cnt8
mov r0,#augend0
mov a,@r0
add a,#30h
mov hzc_h,a
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_one
sjmp sl_cnt5
sl_cnt9: mov r0,#dflag
mov a,state
mov c,f_com
mov acc.7,c
mov @r0,a
;
lcall put_date
;
mov r0,#dadr_h
mov @r0,adr_h
inc r0
mov @r0,adr_l
;
mov r0,#d_exp0
mov r3,#5
;
slcn99: mov @r0,#0
inc r0
djnz r3,slcn99
;
;dec lim_cnt
mov @r0,lim_cnt
inc r0
;
lcall addsum
;
mov dptr,#sum5
movx a,@dptr
mov @r0,a
;
lcall w_sale
;
lcall lcd_clr
lcall key_in
ljmp mmain
;*******************************
;*******************************
sale_menu:
clr f_tj
mov r0,#d_exp2
mov r1,#sur_rm5
lcall bin2dec
mov c,bit_c
mov f_m_p,c
mov f_p_m,c
mov r0,#d_sur2
mov r1,#lim_rm5
lcall bin2dec
mov r_err,#22
mov xb_add,#d_x2
lcall get_code
mov r_err,#23
mov xb_add,#d_x3
lcall get_code
lcall clear_input
menu_loop:
lcall key_in
mov a,v_key
cjne a,#kb_dd,mu_loop0
mu_loop0: jc menu_wait
cjne a,#kb_f1,mu_loop5
ljmp sale_wait
mu_loop5:
lcall card_test
jnb rf_chk,menu_loop ;Card On
ljmp card_pullout
;-----------------------
;-----------------------
menu_wait:
mov r0,#d_exp2
mov r1,#sur_rm5
lcall bin2dec
mov c,bit_c
mov f_m_p,c
mov f_p_m,c
jb f_m_p,menu_err
lcall menu_add
jnc mu_wait0
menu_err:
lcall in_err
ljmp sale_menu
mu_wait0:
mov r0,#lim_rm0
mov r1,#exp_rm0
mov r2,#6
lcall r0_comp_r1
jnb f0,menu_err
lcall sur_sub_exp
jb bit_c,menu_err
mov xb_add,#d_x2
mov yb_add,#d_y41
lcall disp_sur
mu_wait5:
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
mov regt,#10
mu_wait6: lcall key_in
mov a,v_key
cjne a,#kb_dd,mu_wat66
mu_wat66: jc menu_wait
cjne a,#kb_cl,mu_wat67
ljmp sale_menu
mu_wat67:
mov r4,#3
lcall d0lay
djnz regt,mu_wait6
mov r2,#7
mov xb_add,#d_x3
mov yb_add,#d_y41
mu_nul: mov hzc_h,#20h
lcall disp_one
djnz r2,mu_nul
lcall card_test
jb rf_chk,menu_ret
mov regt,#10
mu_wait8:
mov r4,#3
lcall d0lay
djnz regt,mu_wait8
sjmp mu_wait5
menu_ret:
mov r0,#exp_rm5
mov r1,#d_exp2
lcall dec2bin
mov r0,#d_exp0
cjne @r0,#0,menu_r6
inc r0
cjne @r0,#0,menu_r6
inc r0
cjne @r0,#0,menu_r6
sjmp menu_r8
menu_r6: mov r0,#sur_rm5
mov r1,#d_sur2
lcall dec2bin
mov c,f_m_p
mov acc.7,c
mov @r1,a
mov r0,#dflag
mov a,state
anl a,#0fh
mov c,f_com
mov acc.7,c
mov @r0,a
lcall put_date
mov r0,#dadr_h
mov @r0,adr_h
inc r0
mov @r0,adr_l
lcall addsum
lcall w_sale
menu_r8: clr f_tj
lcall key_in
lcall lcd_clr
ljmp mmain
;*******************************
;*******************************
menu_add:
mov a,v_key
rl a
mov dptr,#d_menu
add a,dpl
mov dpl,a
clr a
addc a,dph
mov dph,a
mov r1,#augend0
mov @r1,#0
inc r1
movx a,@dptr
mov b,#100
div ab
mov @r1,a
inc r1
mov a,b
mov b,#10
div ab
mov @r1,a
inc r1
mov @r1,b
inc r1
inc dptr
movx a,@dptr
mov b,#10
div ab
mov @r1,a
inc r1
mov @r1,b
mov r0,#exp_rm5
mov r2,#6
clr c
lcall do_add
ret
;*******************************
; Sale && Save Keybord Deal
; KeyVale: 0-9,+,-,=,a,b,cl
;===============================
kb_deal:
mov a,v_key
cjne a,#10,k_shu0
k_shu0: jnc kb_keya
jb f_n,k_shu5
jnb f_eq,k_sh4
clr f_eq
lcall clr_expense
k_sh4: lcall clr_augend
mov r0,#augend3
mov a,v_key
mov @r0,a
setb f_n
sjmp k_dspaug
k_shu5: jb f_dd,k_shu1
mov r0,#augend0
cjne @r0,#null,k_dspaug
cjne a,#0,k_shu8
;is 0
inc r0
cjne @r0,#null,k_0t9
inc r0
cjne @r0,#null,k_0t9
inc r0
cjne @r0,#0,k_0t9
sjmp k_dspaug
k_shu2: cjne @r0,#0,k_0t9
dec r0
cjne @r0,#null,k_0t9
sjmp k_dspaug
k_shu1: mov r0,#augend5
cjne @r0,#null,k_dspaug
dec r0
cjne @r0,#null,k_shu9
mov @r0,a
sjmp k_dspaug
k_shu8: mov r0,#augend3
cjne @r0,#0,k_0t9
dec r0
cjne @r0,#null,k_0t9
inc r0
mov @r0,a
sjmp k_dspaug
k_shu9: inc r0
mov @r0,a
k_dspaug:
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_aug
ret
k_0t9: mov r2,#3
mov r0,#augend3
mov a,@r0
mov c,acc.7
anl a,#0fh
mov @r0,a
mov r0,#augend1
key_n2: mov a,@r0
dec r0
mov @r0,a
inc r0
inc r0
djnz r2,key_n2
mov r0,#augend3
mov @r0,v_key
mov a,@r0
mov acc.7,c
setb f_n
sjmp k_dspaug
;--------------------------------
kb_keya: cjne a,#kb_a,kb_keyb
jnb f_cny,key_ab
jnb f_n,key_ab
clr f_a_s
mov xb_add,#d_x3
mov yb_add,#d_y00
mov hzc_h,#0b4h
mov hzc_l,#0e6h
lcall disp_one
key_ab: ret
kb_keyb: cjne a,#kb_b,kb_keyd
jnb f_cny,key_ab
jnb f_n,key_ab
setb f_a_s
mov xb_add,#d_x3
mov yb_add,#d_y00
mov hzc_h,#0c8h
mov hzc_l,#0a1h
lcall disp_one
ret
kb_keyd: cjne a,#kb_dd,kb_keyp
jb f_cny,kb_dot ;Save/Fetch Must Be Only Integer
jb f_dd,kb_dot
mov r0,#augend3
mov a,@r0
orl a,#80h
mov @r0,a
kb_kd1: setb f_n
setb f_dd
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_aug
kb_dot: ret
kb_keyp: cjne a,#kb_p,kb_keym
jb f_cny,kb_dot
jnb f_n,p_nokey
jb f_add,kb_p_add
jb f_sub,kb_p_sub
lcall exp_add_aug
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
p_nokey: clr f_dd
clr f_n
clr f_sub
clr f_eq
setb f_add
ret
kb_p_add:
lcall exp_add_aug
jc keyb_err
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
sjmp p_nokey
kb_p_sub: lcall exp_sub_aug
jb bit_c,keyb_err
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
sjmp p_nokey
keyb_err: lcall err_in
lcall clear_input
ret
kb_keym: cjne a,#kb_m,kb_keyy
jb f_cny,kb_dot
jnb f_n,m_nokey
jb f_add,kb_m_add
jb f_sub,kb_m_sub
lcall exp_add_aug
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
m_nokey: clr f_n
clr f_dd
clr f_add
clr f_eq
setb f_sub
ret
kb_m_add: lcall exp_add_aug
jc keyb_err
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
sjmp m_nokey
kb_m_sub: lcall exp_sub_aug
jb bit_c,keyb_err
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
sjmp m_nokey
kb_keyy: cjne a,#kb_eq,kb_keycl ;'='
jb f_cny,kb_ret
jnb f_n,equ_nokey
jb f_add,equ_add
jb f_sub,equ_sub
lcall exp_add_aug
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
equ_nokey: clr f_n
clr f_dd
clr f_add
clr f_sub
setb f_eq
ret
equ_add: lcall exp_add_aug
jc keyb_err
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
sjmp equ_nokey
equ_sub:lcall turn_aug
lcall exp_sub_aug
jb bit_c,keyb_errr
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_exp
sjmp equ_nokey
keyb_errr:ljmp in_err
kb_keycl: cjne a,#kb_cl,kb_ret
lcall clr_bit
lcall clr_expense
lcall clr_augend
mov xb_add,#d_x3
mov yb_add,#d_y41
lcall disp_aug
mov c,f_cny
cpl c
mov f_a_s,c
jnb f_cny,kb_ret
mov xb_add,#d_x3
mov yb_add,#d_y00
mov hzc_h,#0b4h
mov hzc_l,#0e6h
lcall disp_one
kb_ret:
ret
;******************************
; Keyok deal
;******************************
key_ok: jb f_eq,ok_key
jb f_add,ke_o1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -