📄 waterm4.1.1.asm
字号:
mov a,dmoney_x
addc a,dmoney_x
da a
mov dmoney_x,a
mov a,dmoney_h
addc a,dmoney_h
da a
mov dmoney_h,a
mov a,dmoney_hh
addc a,dmoney_hh
mov dmoney_hh,a
djnz rrx1,money_hextobcd0
mov dispbuf5,dmoney_hh
mov a,dmoney_h
swap a
anl a,#0fh
mov dispbuf4,a
mov a,dmoney_h
anl a,#0fh
mov dispbuf3,a
mov a,dmoney_x
anl a,#0f0h
swap a
mov dispbuf2,a
mov a,dmoney_x
anl a,#0fh
mov dispbuf1,a
mov a,dmoney_l
anl a,#0f0h
swap a
mov dispbuf0,a
ret
;***********************************
;display the money
;***********************************
disp_money: lcall money_hextobcd
mov a,dispbuf4
jz disp_money1
ljmp disp_money0
disp_money1:
mov dispbuf4,#0ah
mov a,dispbuf3
jz disp_money2
ljmp disp_money0
disp_money2:
mov dispbuf3,#0ah
disp_money0:
mov a,dispbuf4
lcall decode
lcall write_595
mov a,dispbuf3
lcall decode
lcall write_595
mov a,dispbuf2
lcall decode
orl a,#80h
lcall write_595
mov a,dispbuf1
lcall decode
lcall write_595
mov a,dispbuf0
lcall decode
lcall write_595
setb rrclk
nop
nop
nop
nop
nop
nop
nop
clr rrclk
nop
nop
nop
nop
nop
nop
setb rrclk
nop
nop
nop
nop
nop
nop
nop
ret
;*************************************************************
;段码表格
;*************************************************************
decode: anl a,#0fh
mov dptr,#decode0
movc a,@a+dptr
ret
decode0: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h, 40h, 79h, 50h
; 0 1 2 3 4 5 6 7 8 9 "暗"a -b "E"c "r"d
;*************************************
;disp the Name of pos
;*************************************
disp_name:
lcall addr_bcd
mov r6,#5
mov r0,#dispbuf4
disp_name0: mov a,@r0
lcall decode
lcall write_595
dec r0
djnz r6,disp_name0
setb rrclk
nop
nop
nop
nop
nop
nop
clr rrclk
nop
nop
nop
nop
nop
nop
setb rrclk
nop
nop
nop
nop
nop
nop
ret
;***********************************
;address to bcd
;***********************************
addr_bcd: mov sdispbuf0,address
mov daddr_h,#0
mov daddr_l,#0
mov rrx1,#8
addr_bcd0: mov a,sdispbuf0
rlc a
mov sdispbuf0,a
mov a,daddr_l
addc a,daddr_l
da a
mov daddr_l,a
mov a,daddr_h
addc a,daddr_h
mov daddr_h,a
djnz rrx1, addr_bcd0
jnb f_com, addr_bcd1
mov dispbuf4,#10
mov dispbuf3,#10
mov a,daddr_h
anl a,#0fh
mov dispbuf2,#10
mov a,daddr_l
anl a,#0f0h
swap a
mov dispbuf1,a
mov a,daddr_l
anl a,#0fh
mov dispbuf0,a
ret
addr_bcd1: jb f_time,addr_bcd2
mov dispbuf4,#11
mov dispbuf3,#11
mov a,daddr_h
anl a,#0fh
mov dispbuf2,#11
mov a,daddr_l
anl a,#0f0h
swap a
mov dispbuf1,a
mov a,daddr_l
anl a,#0fh
mov dispbuf0,a
ret
addr_bcd2: mov dispbuf4,#0ah
mov dispbuf3,#0ah
mov dispbuf2,#0ah
mov dispbuf1,#0ah
mov dispbuf0,#0ah
ret
;******************************
;显示子程序
;******************************
disp: mov r6,#5
mov r0,#dispbuf4
disp0: mov a,@r0
lcall decode
lcall write_595
dec r0
djnz r6,disp0
setb rrclk
nop
nop
nop
nop
nop
nop
clr rrclk
nop
nop
nop
nop
nop
nop
setb rrclk
nop
nop
nop
nop
nop
nop
ret
;*********************************
;错误信息处理
;*********************************
erro_del: mov a,error
clr f_erra
rl a
add a,error
mov dptr,#ritab2
jmp @a+dptr
ritab2: ljmp erro_del0
ljmp erro_del1
ljmp erro_del2
ljmp erro_del3
ljmp erro_del4
ljmp erro_del5
ljmp erro_del6
ljmp erro_del7
ljmp erro_del8
ljmp erro_del9
ljmp erro_del10
ljmp erro_del11
ljmp erro_del12
ljmp erro_del13
ljmp erro_del14
ljmp erro_del15
ljmp erro_del16
erro_del0: clr beep
;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#00h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del1: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#01h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del2: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#02h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del3: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#03h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del4: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#04h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del5: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#05h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del6: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#06h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del7: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#07h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del8: clr beep ;错误信息未定义
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#08h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del9: clr beep ;卡中余额不足
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#00h
mov dispbuf0,#09h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del10: clr beep ;未注册卡
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#00h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del11: clr beep ;挂失卡
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#01h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del12: clr beep ;卡号比较错误
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#02h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del13: clr beep ;请求数据超时
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#03h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del14: clr beep
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#04h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del15: clr beep
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#05h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
erro_del16: clr beep
mov dispbuf4,#0ch
mov dispbuf3,#0dh
mov dispbuf2,#0dh
mov dispbuf1,#01h
mov dispbuf0,#06h
lcall disp
lcall delay_1500ms
setb beep
lcall disp_name
ret
;************************************
;count处理帐户信息
;************************************
acounts: lcall judgeflagid
jb f_erra,acounts0
mov sicon0,#0a7h
mov r0,sicon0
mov a,@r0
mov money_h,a
inc r0
mov a,@r0
mov money_x,a
inc r0
mov a,@r0
mov money_l,a
inc r0
mov a,@r0
mov rate,a
;==========================
;==========================
mov dptr,#sal_rate
mov icadd_h,dph
mov icadd_l,dpl
mov icdata,rate
lcall irwrbyte
;;mov b,rate
;mov a,#decmoney
;div ab
;mov rate,a
mov expence_h,#0
mov expence_x,#0
mov expence_l,#0
mov liuliang_h,#0
mov liuliang_x,#0
mov liuliang_l,#0
lcall disp_money
acounts0: ret
;************************************
;收集消费数据
;************************************
collect_saledata:
mov r0,#salbuf
mov @r0,#41h
inc r0
mov @r0,address
inc r0
mov @r0,idnum0
inc r0
mov @r0,idnum1
inc r0
mov @r0,idnum2
inc r0
mov @r0,idnum3
inc r0
mov @r0,idnum4
inc r0
lcall judge_expence
jnb f_expence,collect_saledata0
clr f_expence
mov @r0,#0
inc r0
mov @r0,#0
inc r0
mov @r0,rate
inc r0
mov @r0,#0
inc r0
mov @r0,#0
inc r0
mov @r0,#50
inc r0
mov @r0,salecount
inc salecount
ljmp collect_saledata1
collect_saledata0:
mov @r0,liuliang_h
inc r0
mov @r0,liuliang_x
inc r0
mov @r0,liuliang_l
inc r0
mov @r0,expence_h
inc r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -