📄 waterm1.01.asm
字号:
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,#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
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
clr c
cjne a,#50,judge_expence1
judge_expence1:
jnc judge_expence0
clr c
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,#2ch
mov tl0,#90h
setb tr0
setb f_60ms
;==========================
;==========================
mov a,valuecount
dec a
mov valuecount,a
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,_timer119
setb recieve
jb f_kguan0,_timer118
jb recieve,_timer117
inc rcount
mov a,rcount
cjne a,#10,_timer119
mov rcount,#0
setb f_kguan0
_timer118: setb recieve
jnb recieve,_timer119
inc kgcount
setb f_kguan1
clr f_kguan0
_timer117: mov rcount,#0
_timer119: ;mov rcount,#0
jnb f_card,del_timer01
jb f_kguan2,del_timer01
mov a,sal_time
inc a
mov sal_time,a
cjne a,#sale_time,del_timer01
mov sal_time,#0
setb f_updata
inc hongcount
mov a,hongcount
cjne a,#0ah,del_timer01
mov hongcount,#0
setb et1
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_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -