📄 hr52_10_p3.asm
字号:
;*********如果在是无水模式就检测程序键*****************
TST FLAG3,SW_WORK
BEQ XD_YYY1
TST KEY_S,2
BEQ XD_YYY1
TST KEY_L,2
BNE XD_YYY1
JSR Delay
TST KEY_S,2
BEQ XD_YYY1
SET KEY_L,2
JSR BUZ
ASL WS_MODE
JSR WS_LED
ldX #C_STACK_BOTTOM ;设置堆栈,将指针指想栈顶
txs
LDA #0
STA KEY_S
STA FLAG1
STA FLAG2
LDA FLAG3
AND #10000000B
STA FLAG3
JMP AAA
XD_YYY1:
;*****************************************************
;检测门盖
TST PB,MG
BEQ BH_NKG
JSR Delay
TST PB,MG
BEQ BH_NKG
SET E_FLAG,AQKG ;.................排水延时间时的保护开盖报警
JSR WARM
LDA #7
STA BH_S
BH_NKG:
TST FLAG3,BH_JS
BNE BH_NE
JMP END_BH
BH_NE:
JSR CHECK_P
JSR CHECK_S
SET PC,AK
SET PD,PS
JMP BH_LOOP
END_BH:
CLR FLAG2,BH_7
RTS
.ENDP
;..........................................
; 间脱(JT_T_SET)
;..........................................
.PUBLIC JT_WORK
JT_WORK: .PROC
LDA JT_T_SET
STA JT_T
LDA #0
STA R_ALL
SET FLAG1,SM_G
SET FLAG3,FLAG_TS ;开脱水标记
LDA #0
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
LOOP_JT:
;<<<<<<<<<<<<<<<<<<<<<<<<<撞桶<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
TST ZT_FLAG,CF_ZT
BEQ JT_NZT
LDA #0
STA ZT_FLAG
;
;............读回时间...........
;
LDA ZT_T_SM
STA WASH_TIMES
LDA ZT_T_SS
STA SYS_S
DEC ZT_CS
BNE JTZT_N3_1
SET E_FLAG,ZT3C ;3次报警
JSR WARM
JMP JTZT_N3_2
JTZT_N3_1:
JSR PH_WASH
;.......1分钟平衡洗............
JTZT_N3_2:
LDA JT_T_SET
STA JT_T
LDA #0
STA R_ALL
SET FLAG1,SM_G
SET FLAG3,FLAG_TS ;开脱水标记
LDA #0
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
JT_NZT:
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
TST PB,MG
BEQ JT_NKG
JSR Delay
TST PB,MG
BEQ JT_NKG
LDA #0
STA ZT_FLAG
SET E_FLAG,AQKG ;.................间脱时的保护开盖报警
JSR WARM
LDA #0 ;.....开撞桶..........
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
JT_NKG:
JSR CHECK_P
JSR CHECK_S
TST FLAG1,PS_BH ;7S延时保护
BEQ JT_NBH
LDA R_ALL
STA JT_S
;
LDA #0
STA ZT_FLAG
;
SET FLAG2,BH_7
CLR FLAG1,SM_G
CLR FLAG3,FLAG_TS ;关脱水标记
JSR PSBH_WORK ;调用延时保护函数
SET FLAG3,FLAG_TS ;开脱水标记
LDA JT_S
STA R_ALL
SET FLAG1,SM_G
JSR CHECK_S
;.....开撞桶(无水时候不开)
LDA #0
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
JT_NBH:
LDA R_ALL
CMP #40
BCC JT_OT
CLR PD,ZZ
JMP JT_OT2
JT_OT:
SET PD,ZZ
JT_OT2:
LDA R_ALL
CMP #70
BNE JT_N70
LDA #0
STA R_ALL
DEC JT_T
BNE JT_N70
JMP END_JT
JT_N70:
SET PC,AK
JMP LOOP_JT
END_JT:
CLR FLAG3,FLAG_TS ;关脱水标记
CLR FLAG1,SM_G
RTS
.ENDP
.PUBLIC LT_WORK
LT_WORK: .PROC
LDA LT_M
STA BT_M
LDA LT_S
STA BT_S
SET FLAG1,SM_G
SET FLAG1,SYS_G
SET FLAG3,FLAG_TS ;开脱水标记
;.....开撞桶(无水时候不开)
LDA #0
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
LOOP_LT:
;*********如果在是无水模式就检测程序键*****************
TST FLAG3,SW_WORK
BEQ XD_YYY2
TST KEY_S,2
BEQ XD_YYY2
TST KEY_L,2
BNE XD_YYY2
JSR Delay
TST KEY_S,2
BEQ XD_YYY2
SET KEY_L,2
JSR BUZ
ASL WS_MODE
JSR WS_LED
ldX #C_STACK_BOTTOM ;设置堆栈,将指针指想栈顶
txs
LDA #0
STA KEY_S
STA FLAG1
STA FLAG2
LDA FLAG3
AND #10000000B
STA FLAG3
JMP AAA
XD_YYY2:
;*****************************************************
JSR CHECK_P
JSR CHECK_S
;撞桶
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
TST ZT_FLAG,CF_ZT
BEQ LT_NZT
LDA #0
STA ZT_FLAG
;<<<<<<<<如果是在无水模式就直接报警..............
TST FLAG3,SW_WORK
BEQ LT_WS
SET E_FLAG,ZT3C ;3次报警
JSR WARM
JMP KKKKK
LT_WS:
;............读回时间...........
LDA ZT_T_SM
STA WASH_TIMES
LDA ZT_T_SS
STA SYS_S
DEC ZT_CS
BNE LTZT_N3
SET E_FLAG,ZT3C ;3次报警
JSR WARM
JMP LTZT_N3_2
LTZT_N3:
JSR PH_WASH
LTZT_N3_2:
JSR JT_WORK
LDA LT_M
STA BT_M
LDA LT_S
STA BT_S
KKKKK: ;..无水报警跳转到这里
SET FLAG1,SM_G
SET FLAG1,SYS_G
SET FLAG3,FLAG_TS ;开脱水标记
;.....开撞桶(无水时候不开)
LDA #0
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
LT_NZT:
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;.........门盖..............
TST PB,MG
BEQ LT_NKG
JSR Delay
TST PB,MG
BEQ LT_NKG
;
LDA #0 ;.....关撞桶.............................
STA ZT_FLAG
;
SET E_FLAG,AQKG ;.................间脱时的保护开盖报警
JSR WARM
;
LDA #0 ;.....开撞桶(无水时候不开)
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
LT_NKG:
;.......................
TST FLAG1,PS_BH ;排水阀保护
BEQ LT_NBH
;
LDA #0
STA ZT_FLAG ;.....关撞桶.,..................
;
CLR FLAG1,SYS_G
CLR FLAG1,SM_G
CLR FLAG3,FLAG_TS ;关脱水标记
SET FLAG2,BH_7
JSR PSBH_WORK ;调用延时保护函数
SET FLAG3,FLAG_TS ;开脱水标记
SET FLAG1,SM_G
SET FLAG1,SYS_G
;
LDA #0 ;.....开撞桶(无水时候不开)
STA ZT_FLAG
STA ZT_COUNT
SET ZT_FLAG,ZT_ALLOW
LT_NBH:
SET PD,ZZ
SET PC,AK
TST FLAG1,SYS_G ;时间到??
BNE LT_NE
JMP END_LT
LT_NE:
JMP LOOP_LT
END_LT:
LDA #0
STA ZT_FLAG
CLR FLAG3,FLAG_TS ;关脱水标记
LDA #3
STA ZT_CS
CLR PD,ZZ
RTS
.ENDP
.PUBLIC GT_WORK
GT_WORK: .PROC
SET FLAG1,SYS_G
SET FLAG1,SM_G
LOOP_GT:
;.........门盖..............
TST PB,MG
BEQ GT_NKG
JSR Delay
TST PB,MG
BEQ GT_NKG
SET E_FLAG,AQKG ;.................关时的保护开盖报警..................
JSR WARM
GT_NKG:
JSR CHECK_P
JSR CHECK_S
TST FLAG1,SYS_G
BNE GT_NE
JMP END_GT
GT_NE:
SET PC,AK
SET PD,PS
JMP LOOP_GT
END_GT:
CLR FLAG1,SYS_G
CLR FLAG1,SM_G
CLR PD,PS
CLR PC,AK
RTS
.ENDP
.PUBLIC D5_S
D5_S: .PROC
LDA #0
STA PD
LDA #00000100B ;关所有口
STA PC
LDA #1
STA BT_M
LDA #5
STA BT_S
SET FLAG1,SYS_G
SET FLAG1,SM_G
LOOP_D5:
JSR CHECK_S
JSR CHECK_P
TST FLAG1,SYS_G
BNE D5_NE
JMP END_D5
D5_NE:
JMP LOOP_D5
END_D5:
RTS
.ENDP
.PUBLIC PS_30S
PS_30S: .PROC
LDA #1
STA BT_M
LDA #30
STA BT_S
SET FLAG1,SM_G
SET FLAG1,SYS_G
LOOP_PS30:
JSR CHECK_P
JSR CHECK_S
TST FLAG1,SYS_G
BNE P30_NE
JMP END_P30
P30_NE:
SET PC,AK
SET PD,PS
JMP LOOP_PS30
END_P30:
RTS
.ENDP
;<<<<<<<<<<<<<<<<无水工作模式<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
WS_WORK:
LDA #255
STA LED_BUF1
STA LED_BUF2
STA LED_BUF3
LDA #95H
STA LED_BUF5
LDA #48H
STA LED_BUF4
lda P_BUZ_Ctrl
ORA #00000110b
sta P_BUZ_Ctrl
jsr Delay
jsr Delay
jsr Delay
jsr Delay
jsr Delay
jsr Delay
jsr Delay
jsr Delay
lda P_BUZ_Ctrl
AND #11111001b
sta P_BUZ_Ctrl
LDA #1
STA WS_MODE
AAA:
LDA #0
STA ZT_COUNT
LDA #0
STA PD
LDA #00000100B
STA PC
SET FLAG3,SW_WORK ;无水工作标记
LDA #255
STA KEY_L
LDA #1
STA BT_M
LDA #3
STA BT_S
SET FLAG1,SYS_G
WS_C_LOOP:
JSR CHECK_P
;....检测程序键.....
TST KEY_S,2
BEQ WS_NK2
TST KEY_L,2
BNE WS_NK2
JSR Delay
TST KEY_S,2
BEQ WS_NK2
SET KEY_L,2
JSR BUZ
;
LDA #3
STA BT_S
;
ASL WS_MODE
JSR WS_LED
WS_NK2:
;....检测启动键...
TST KEY_S,4
BEQ WS_NK4
TST KEY_L,4
BNE WS_NK4
JSR Delay
TST KEY_S,4
BEQ WS_NK4
SET KEY_L,4
JSR BUZ
CLR FLAG3,SSS
JMP END_WS_C
WS_NK4:
;...软启动........
TST FLAG1,SYS_G
BNE WS_NRQD
TST FLAG3,SSS
BNE WS_NRQD
CLR FLAG3,SSS
JMP END_WS_C
WS_NRQD:
JMP WS_C_LOOP
END_WS_C:
set FLAG2,BF_BG
set FLAG1,WORK
WS_LOOP:
TST WS_MODE,0
BEQ WS_M0
WS_M0:
TST WS_MODE,1
BEQ WS_M1
LDA LED_BUF2
STA SHINE2_H
AND #11110111B
STA SHINE2_L
LDA #0
STA SHINE3_H
STA SHINE3_L
LDA #60
STA BT_S
LDA #5
STA BT_M
STA WASH_TIMES
JSR XD_WORK
WS_M1:
TST WS_MODE,2
BEQ WS_M2
LDA LED_BUF2
STA SHINE2_H
AND #11110111B
STA SHINE2_L
LDA LED_BUF3
STA SHINE3_H
AND #01111111B
STA SHINE3_L
LDA #5
STA LT_M
STA WASH_TIMES
LDA #60
STA LT_S
JSR LT_WORK
WS_M2:
;结束鸣叫
JSR FINISH_W
jsr $;跳电
JMP WS_LOOP
.PUBLIC WS_LED
WS_LED: .PROC
TST WS_MODE,3
BEQ WS_MN4
LDA #1
STA WS_MODE
WS_MN4:
TST WS_MODE,0 ;C1
BEQ WS_L_N0
LDA #255
STA LED_BUF1
STA LED_BUF2
STA LED_BUF3
LDA #95H
STA LED_BUF5
LDA #48H
STA LED_BUF4
WS_L_N0:
TST WS_MODE,1 ;C2
BEQ WS_L_N1
LDA #08H
STA LED_BUF1
LDA #00101000B
STA LED_BUF2
LDA #0
STA LED_BUF3
LDA #95H
STA LED_BUF5
LDA #9EH
STA LED_BUF4
WS_L_N1:
TST WS_MODE,2 ;C3
BEQ WS_L_N2
LDA #08H
STA LED_BUF1
LDA #00101000B
STA LED_BUF2
LDA #80H
STA LED_BUF3
LDA #95H
STA LED_BUF5
LDA #5EH
STA LED_BUF4
WS_L_N2:
RTS
.ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -