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

📄 waterm4.1.1.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 5 页
字号:
         add a,pf
         mov pf,a
         djnz rrx,r_mod360

         mov @r0,pf
         mov sendnum,#11h
         mov sicon,#sendbuf
         setb ti
         setb re184
         nop
         nop
         nop
         nop
         nop
         nop
         pop 01h
         ljmp r_mod4             ;写消费发送数据

;*******************************************
;密码声请
;*******************************************
r_mod38: jb f_key, r_mod38_0     ;写密码声请数据
         ljmp   r_mod38_1
r_mod38_0:
         ljmp  r_mod37
r_mod38_1:

         mov sicon1,#sendbuf
         mov r0,sicon1
         mov @r0,#7
         inc sicon1

         mov r0,sicon1         ;功能号0X05
         mov @r0,#5
         inc sicon1

         mov  pf,#12
         mov r0,sicon1
         mov @r0,address
         inc sicon1
         mov a,pf
         add a,address
         mov pf,a

         mov r0,sicon1
         mov @r0,#0
         inc sicon1

         mov r0,sicon1
         mov @r0,#0
         inc sicon1

         mov r0,sicon1
         mov @r0,#0
         inc sicon1

         mov r0,sicon1
         mov @r0,pf

         mov sendnum,#07h
         mov sicon,#sendbuf
         setb ti
         setb re184

         ljmp r_mod4




;******************************************
;空闲应答
;******************************************
r_mod37: mov sicon1,#sendbuf     ;写普通应答数据
         mov r0,sicon1
         mov @r0,#05h
         inc sicon1

         mov r0,sicon1
         mov @r0,#01h
         inc sicon1

         mov pf,#06h
         mov r0,sicon1
         mov @r0,address
         inc sicon1

         mov r0,sicon1
         mov a,pf
         add a,address
         mov pf,a
         jnb  f_valuerr,r_mod37_1
         mov @r0,#0feh
         inc  sicon1
         mov  r0,sicon1
         mov  a,pf
         add  a,#0feh
         mov  pf,a
         mov  @r0,pf
         ljmp r_mod37_2
r_mod37_1:
         mov @r0,status
         inc sicon1

         mov r0,sicon1
         mov a,pf
         add a,status
         mov pf,a
         mov @r0,pf
r_mod37_2:
         mov sendnum,#05h
         mov sicon,#sendbuf
         setb ti
         setb re184
         nop
         nop
         nop
         nop
         nop
         nop
         ljmp r_mod4




;**********************************
;功能号为0x2
;请求到指定id号信息
;**********************************
r_mod32:   clr f_zh
           ljmp r_mod4


;*********************************
;功能号为0x3
;时间更新信息
;*********************************
r_mod33:    nop
            ljmp r_mod4


;*********************************
;功能号为0x4
;收到消费应答
;*********************************
r_mod34:    mov r0,ricon
            mov a,@r0
            cjne a,#55h,r_mod340
            clr f_sal
r_mod340:   ljmp r_mod4



;********************************
;功能号为0x5
;在线测试应答
;********************************
r_mod35:    mov sicon1,#sendbuf
            mov r0,sicon1
            mov @r0,#03h
            inc sicon1
            mov r0,sicon1
            mov @r0,#04h
            mov pf,#07h
            inc sicon1
            mov r0,sicon1
            mov @r0,pf
            mov sendnum,#03h
            mov sicon,#sendbuf
            setb ti
            setb re184
            nop
            nop
            nop
            nop
            nop
            nop
            ljmp r_mod4
;*****************************************
;功能号是0X06
;*****************************************
r_mod39:   mov ricon,#recievebuf   ;接受缓冲器
           inc ricon              ;用户码0
           inc ricon              ;
           inc ricon              ;密码格式
           inc ricon              ;密码部分
           mov r0,ricon
           mov pf,#0              ;1
           mov a,@r0
           xrl a,pf
           mov pf,a

           inc ricon              ;2
           mov r0,ricon
           mov a,@r0
           xrl a,pf
           mov pf,a

           inc ricon              ;3
           mov r0,ricon
           mov a,@r0
           xrl a,pf
           mov pf,a

           inc ricon              ;4
           mov r0,ricon
           mov a,@r0
           xrl a,pf
           mov pf,a

           inc ricon              ;5
           mov r0,ricon
           mov a,@r0
           xrl a,pf
           mov pf,a

           inc ricon              ;6
           mov r0,ricon
           mov a,@r0
           xrl a,pf
           mov pf,a

           cjne a,#13h,r_mod4
           mov  ricon,#recievebuf
           inc  ricon
           mov  sicon,#num_key
           mov  rrx,#9

r_mod39_0:
           mov  r0,ricon
           mov  a,@r0
           mov  r0,sicon
           mov  @r0,a
           inc  ricon
           inc  sicon
           djnz rrx,r_mod39_0
           setb f_key




r_mod4:
            mov rimod,#0
            setb sm2


d_reti:     pop b
            pop 00h
            pop dpl
            pop dph
            pop acc
            pop psw
            reti









main:
            mov sp,#r_sp
            cpl watchdog


            clr re184
            lcall iniall
            cpl watchdog


            ;***********************
            ;clear the sign of valibale
            ;***********************

            clr f_plusa
            clr f_plusb
            clr lastplusa
            clr lastplusb

            clr f_iic

            clr f_zh
            clr f_com
            clr f_master
            clr f_status
            clr f_sal
            clr f_id
            clr f_60ms
            clr f_card
            clr f_card0
            clr f_updata
            clr f_kguan0
            clr f_kguan1
            clr f_kguan2
            clr f_erra
            clr f_money
            clr f_time
            clr f_send
            clr f_plusa
            clr f_plusb
            clr f_valuerr
            clr f_key
            clr f_keysend


            mov rimod,#0
            mov rimod1,#0
            mov rimod2,#0
            mov rcount,#0
            mov kgcount,#0
            mov salecount,#1
            mov sal_time,#0
            mov hongcount,#0
            mov valuecount,#0


            lcall read_address
            lcall disp_name
            lcall openvalue
            lcall closevalue








            ;==========================
            mov dptr,#fm_master
            mov icadd_h,dph
            mov icadd_l,dpl
            lcall irdbyte
            mov master,icdata

            ;==========================
            mov dptr,#fm_status
            mov icadd_h,dph
            mov icadd_l,dpl
            lcall irdbyte
            mov status,icdata


            lcall read_sys
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall delay_254ms
            cpl   watchdog
            lcall beep_1
            setb ea









            ;==========================
mmain:      cpl watchdog

            ;===========================
            ;判断是否有脱机消费数据
            ;===========================



            jnb    f_com,upstatus
            jb     f_sal,upstatus
            lcall  readrecord
            jnb    f_key,upstatus
            jb     f_keysend,upstatus


            lcall  get_numkey
            lcall  send_money










            ;==========================
            ;系统状态更新
            ;==========================
upstatus:   jnb f_status,upmaster
            clr f_status
            mov dptr,#fm_status
            mov icadd_h,dph
            mov icadd_l,dpl
            mov icdata,status
            lcall irwrbyte
upmaster:   jnb f_master,insertcard
            clr f_master
            mov dptr,#fm_master
            mov icadd_h,dph
            mov icadd_l,dpl
            mov icdata,master
            mov icdata,master
            lcall irwrbyte
            ;===========================
            ;靠卡消费部分
            ;===========================

insertcard: jb f_id,expence
            lcall disp_name
            ljmp mmain

expence:    clr f_id

            jb  f_sal,mmain
            clr f_id
            ;lcall openvalue
            jnb f_com,lunconexpence
            setb f_zh
            nop
            nop
            nop



            mov   Request_Information_Count,#50
wait:       jnb f_zh,del_zh
            cpl watchdog
            mov a,Request_Information_Count
            jnz wait
            jb f_zh,lfail_zh
            ljmp  del_zh
lunconexpence:
            lcall openvalue
            ;========================================================
            ;需要添加阀门检测处理
            ;========================================================
            lcall judgevalue
            jnb   f_value,unconexpence_11
            lcall closevalue
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall openvalue
            lcall judgevalue
            jnb   f_value,unconexpence_11
            setb  f_valuerr
            mov   error,#14
            ljmp  erra_del0


unconexpence_11:
            clr f_valuerr

            ljmp  unconexpence
lfail_zh:   ljmp  fail_zh
;================================
;申请到了帐户
;================================
del_zh:     cpl watchdog
            lcall acounts
            jb f_erra,erra_del0
            lcall openvalue
            ;===================================
            ;需要添加阀门检测处理
            ;===================================
            lcall judgevalue
            jnb   f_value,conexpence
            lcall closevalue
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            cpl watchdog
            lcall delay_254ms
            lcall openvalue
            lcall judgevalue
            jnb   f_value,conexpence
            setb  f_valuerr
            mov   error,#14       ;
            ;ljmp  conexpence

erra_del0:  ljmp erra_del
;=================================;
;                                 ;
;联机消费                         ;
;=================================;
conexpence: mov sal_time,#0
            setb f_card
            setb f_card0
            mov  expence_h,#0
            mov  expence_x,#0
            mov  expence_l,#0
            mov  liuliang_h,#0
            mov  liuliang_x,#0
            mov  liuliang_l,#0
            mov Card_On_Or_Off_Count,#idnum_time
            ;lcall moneydec_100
            lcall disp_money
            ;lcall money_hextobcd
            ;lcall get_int
            ;lcall get_dot
            ;lcall send_money


            ;============================
            ;消费结算
            ;============================
conexpence0:
            cpl    watchdog
            jnb     f_kguan1,conexpence2
            clr     f_kguan1
            mov     a,kgcount
            mov     b,#2
            div     ab
            mov     a,b
            jz      open1
            lcall   closevalue
            setb    f_kguan2
            ljmp    check_card

⌨️ 快捷键说明

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