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

📄 waterm3.01.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 5 页
字号:
         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_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_0
         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_0:
         jnb   f_liuliang,r_mod37_1
         mov @r0,#0ffh
         inc  sicon1
         mov  r0,sicon1
         mov  a,pf
         add  a,#0ffh
         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

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_liuliang
            clr f_liuliang0
            clr f_valuerr

            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 beep_1
            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


            setb ea









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

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



            jnb    f_com,upstatus
            jb     f_sal,upstatus
            lcall  readrecord






            ;==========================
            ;系统状态更新
            ;==========================
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
open1:      lcall   openvalue
            clr     f_kguan2
conexpence2:lcall   disp_money
            jb      f_kguan2,check_card
            jnb     f_60ms,  check_card
            clr     f_60ms
            lcall   read_plus
            jnb      f_updata,check_card
            clr      f_updata
            lcall   updata
           ;lcall   beep_1


check_card:
            jb     f_card,conexpence0
            lcall  closevalue
            ;clr    f_card
            ;clr    f_id
            ;===============================
            ;添加阀门检测功能
            ;===============================
            lcall  judgevalue
            jnb    f_value,check_card_0
            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  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  closevalue
            lcall  judgevalue
            jnb    f_value,check_card_0
            mov    error,#14
            lcall  erro_del
            setb   f_valuerr
            ljmp   check_card_1

            ;==========================
check_card_0:
            clr    f_valuerr
check_card_1:
            clr    et1
            mov    hongcount,#0
            jnb     f_com,check_card1
            mov     a,expence_x
            cjne    a,#27h,exit0
exit0:      jnc    exit1
            lcall  collect_saledata
            setb   f_sal
exit1:      clr    f_kguan2
            mov    kgcount,#0
            lcall  disp_name
            clr    f_id
            ljmp   mmain

check_card1:mov    a,expence_x
            cjne   a,#27h,exit2
exit2:      jnc    exit3
            lcall  save_saledata
exit3:      clr    f_kguan2
            mov    kgcount,#0
            lcall  disp_name
            clr    f_id
            ljmp   mmain


;=====================
;未声请到帐户
;=====================
fail_zh:    mov error,#err13
            clr f_zh
            setb f_erra
            setb f_card
            lcall erro_del
            clr  f_erra
            ljmp  unconexpence0

;=====================
;脱机消费状态
;=====================
unconexpence:
            cpl watchdog
            mov a,assic4
            anl a,#80h
            cjne a,#80h,continue
            mov  error,#err9
            setb f_erra
            lcall erro_del
            clr f_erra
            ljmp mmain

continue:   mov error,#err12
            setb f_erra

            ;======================
unconexpence0:

            mov  sal_time,#0
            setb f_card

            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 mul22
            lcall addmoney
            lcall moneydec_100

            mov    Card_On_Or_Off_Count,#idnum_time
            lcall  erro_del
            clr    f_erra
            lcall  disp_money
            ;lcall  money_hextobcd
            ;lcall  get_int
            ;lcall  get_dot
            ;lcall  send_money
            ;========================
            ;脱机消费结算
            ;========================

⌨️ 快捷键说明

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