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

📄 waterm2.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 4 页
字号:
            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 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,#1
            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
            mov @r0,expence_x
            inc r0
            mov @r0,expence_l
            inc r0
            mov @r0,salecount
            inc salecount
collect_saledata1:
            ret






;************************************
;判断消费是否为0
;************************************
judge_expence:
           clr f_expence
           mov a,expence_h
           cjne a,#0,judge_expence0
           mov a,expence_x
           cjne a,#0,judge_expence0
           mov a,expence_l
           cjne a,#0,judge_expence0
           setb f_expence
judge_expence0:
           ret


;************************************
;判断卡的合法性
;************************************
judgeflagid: clr f_erra
             mov sicon0,#recievebuf
             mov r0,sicon0
             inc r0
             mov a,@r0
             mov b,a
             inc sicon0
             inc sicon0
             rl a

             add a,b
             mov dptr,#ritab4
             jmp @a+dptr
ritab4:      ljmp judge0
             ljmp judge1
             ljmp judge2
             ljmp judge3
;**************************************
;写未注册代码
;**************************************

judge0:      mov error,#err10
             setb f_erra
             ljmp judge8

;**************************************
;合法卡
;**************************************

judge1:      ljmp judge4

;**************************************
;写挂失卡
;**************************************

judge2:      mov error,#err11
             setb f_erra
             ljmp judge8


judge3:



judge4:      ;jb f_erra,judge6
             mov r0,sicon0
             mov a,@r0
             cjne a,idnum0,judge5
             inc sicon0
             mov r0,sicon0
             mov a,@r0
             cjne a,idnum1,judge5
             inc sicon0
             mov r0,sicon0
             mov a,@r0
             cjne a,idnum2,judge5
             inc sicon0
             mov r0,sicon0
             mov a,@r0
             cjne a,idnum3,judge5
             inc sicon0
             mov r0,sicon0
             mov a,@r0
             cjne a,idnum4,judge5
             ljmp judge6



judge5:      mov error,#err14
             setb f_erra
             ljmp judge8

judge6:      inc sicon0
             mov r0,sicon0
             mov a,@r0
             clr c
             cjne a,#80h,judge7
judge7:      jc judge8
             mov error,#err9
             setb f_erra



judge8:
             ret


;************************************
;定时器0中断服务函数
;************************************
del_timer0:
             push psw
             push acc


             clr tr0
             mov th0,#15h
             mov tl0,#9fh


             setb f_60ms

             mov  a,disp_time
             inc  a
             mov  disp_time,a
             cjne a,#12,del_timer00
             cpl  f_time
             mov  disp_time,#0








del_timer00: jnb f_card,del_timer01
             jb  f_kguan2,del_timer01
             mov a,sal_time
             inc a
             mov sal_time,a
             cjne a,#17,del_timer01
             mov sal_time,#0
             ;setb f_updata


del_timer01: mov a,Inline_Or_Offline_Count
             inc a
             cjne a,#17,del_timer1
             clr  f_com

             ljmp del_timer2
del_timer1:
             mov inline_or_offline_count,a
del_timer2:  mov a,Request_Information_Count
             jz del_timer3
             dec a
             mov Request_Information_Count,a
del_timer3:  mov a,Card_On_Or_Off_Count
             dec a
             mov Card_On_Or_Off_Count,a
             jnz  del_timer4
             clr f_card

del_timer4:  setb tr0
             pop acc
             pop psw
             reti




;****************************************************
;定时器1中断服务函数
;****************************************************
_timer11:
             push psw
             push acc


             clr tr1
             mov th1,#0fch
             mov tl1,#00h
             cpl send
             jnb   f_card,_timer119
             setb recieve

             jb   f_kguan0,_timer118
             jb   recieve,_timer119
             inc  rcount
             mov  a,rcount
             cjne a,#2,_timer119
             mov  rcount,#0
             setb f_kguan0
_timer118:   setb recieve
             jnb  recieve,_timer119

             inc  kgcount
             setb f_kguan1
             clr  f_kguan0








_timer119:   setb tr1
             pop acc
             pop psw
             reti


;***************************************************
;2051 read the idnumber
;***************************************************


int_1:       push psw
             push acc
             push dph
             push dpl
             mov a,rimod2
             rl a
             add a,rimod2
             mov dptr,#ritab3
             jmp @a+dptr
ritab3:      ljmp r_2051_0
             ljmp r_2051_1
             ljmp r_2051_2
             ljmp r_2051_5
r_2051_0:    setb  r2051
             nop
             nop
             nop
             nop
             nop
             clr   r2051
             nop
             nop
             nop
             nop
             nop
             setb  r2051
             inc rimod2
             mov rrx4,#8
             mov ricon2,#assic0
             ljmp r_2051_5
r_2051_1:    push 01h
             mov a,p0
             mov r1,ricon2
             mov @r1,a
             inc ricon2
             pop 01h
             djnz rrx4,r_2051_2
             mov  rimod2,#0
             jb  f_card,r_2051_3
             mov  a,assic0
             cjne a,#02h,r_2051_5
             mov  a,assic7
             cjne a,#0dh,r_2051_5
             setb f_id
             mov  idnum0,assic1
             mov  idnum1,assic2
             mov  idnum2,assic3
             mov  idnum3,assic4
             mov  idnum4,assic5
             ljmp r_2051_5
r_2051_2:    setb r2051
             nop
             nop
             nop
             nop
             clr  r2051
             ljmp r_2051_5
r_2051_3:    mov  Card_On_Or_Off_Count,#50

r_2051_5:
             pop dpl
             pop dph
             pop acc
             pop psw
             reti


             end










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -