⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waterm4.1.1.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 5 页
字号:
            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 + -