📄 waterm4.1.1.asm
字号:
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 + -