📄 reshuiqibak.asm
字号:
.listinclude
include ht46r48.inc
INCLUDE MEMORY.ASM
data_main .section 'data'
R_TEMP DB 8 DUP (?)
R_ACC_BAK DB ?
R_STATUS_BAK DB ?
counter db ?
COUNTER1 DB ?
COUNTER2 DB ?
R_TIMER_COUNTER1 DB ?
R_TIMER_COUNTER2 DB ?
R_TIMER_COUNTER3 DB ?
R_TIMER_COUNTER4 DB ?
R_TIMER_COUNTER5 DB ?
R_NORMAL_FLAG1 DB ?
R_NORMAL_FLAG2 DB ?
R_PROGRAMCNT DB ?
F_5000US DBIT
F_5MS DBIT
F_500MS DBIT ;;TIMER 500ms flag
F_FLAME DBIT ;flame flag
F_WATER_STREAM DBIT ;water stream flag
F_FAILURE DBIT ;failure flag
F_GASGATEOPEN DBIT ;GAS GATE OPEN
F_OVER85C DBIT
code_main .section at 00h 'code'
NOP
JMP MLP_MAIN
ORG 04H
RETI
ORG 08H
JMP ISR_TIMER
ORG 0CH
RETI
MLP_MAIN:
SZ TO
JMP L_WARM_RESTART
L_COOL_RESTART:
CALL INI_RAM
CALL INITIAL_IOS
;CALL SBR_SOUND3S
SNZ PB.3
JMP L_POLLING_EVENT
SET F_FAILURE
SET F_WATER_STREAM
MOV A,0A0H
MOV R_TEMP[2],A
JMP L_POLLING_EVENT
L_WARM_RESTART:
MOV A,R_NORMAL_FLAG1
XOR A,55H
SNZ Z
JMP L_COOL_RESTART
MOV A,R_NORMAL_FLAG2
XOR A,0AAH
SNZ Z
JMP L_COOL_RESTART
;;-----------------------
L_POLLING_EVENT:
CALL SBR_SHOWPROCEDURE
CALL SBR_WATERSWICH_CHECK
SZ ACC
JMP L_POLLING_EVENT
MOV A,R_PROGRAMCNT
AND A,0FH
ADDM A,PCL
JMP L_PROCEDURE0
JMP L_PROCEDURE1
JMP L_PROCEDURE2
JMP L_PROCEDURE3
JMP L_PROCEDURE4
JMP L_PROCEDURE5
JMP L_PROCEDURE6
JMP L_PROCEDURE7
JMP L_PROCEDURE8
JMP L_PROCEDURE9
JMP L_PROCEDURE10
JMP L_COLSEGASGATE_DELAY20S
CLR R_PROGRAMCNT
JMP L_POLLING_EVENT
;;-----------------
;;TETEMPERATURE CALCULA&LED SHOW PROCE
SBR_SHOWPROCEDURE:
SNZ F_5MS
RET
CLR F_5MS
SNZ F_FAILURE
CALL SBR_MAN_AVG
CALL SBR_SHOW_LED
RET
;;---------CHECK WATER SWICH------------------
SBR_WATERSWICH_CHECK:
;//SZ PB.3
;//JMP L_SWICH_HIGH
;//JMP L_SWICH_LOW
L_SWICH_HIGH:
;//SNZ F2_5000US
;//RET A,1
;//CLR F2_5000US
;//SZ PB.3
;//JMP L_OPEN_WATER
;//RET A,1
L_SWICH_LOW:
;//SNZ F2_5000US
;//RET A,1
;//CLR F2_5000US
;//SZ PB.3
;//RET A,1
;//JMP L_CLOSE_WATER
SZ PB.3 ;;
JMP L_OPEN_WATER
L_CLOSE_WATER:
CLR F_FAILURE
CLR F_FLAME
CLR F_WATER_STREAM
SZ F_GASGATEOPEN ;;CHECK GAS GATE FLAG
RET A,0
CLR P_CSB_PD0
CLR R_PROGRAMCNT ;;COLSE WATCH
RET A,1
L_OPEN_WATER:
SET F_WATER_STREAM
SNZ F_FAILURE
RET A,0
SZ F_GASGATEOPEN
RET A,0
RET A,1
;;---------------------------------------
L_NORMAL_WORK:
INC R_PROGRAMCNT
JMP L_POLLING_EVENT
L_PROCEDURE0:
SNZ PB.1 ;;feng ya switch if close
JMP L_NORMAL_WORK ;;no close
SET F_FAILURE ;;already close
MOV A,0A7H
MOV R_TEMP[2],A
CLR R_PROGRAMCNT
JMP L_POLLING_EVENT
;------------------------------------------
L_PROCEDURE1:
SET P_CSB_PD0 ;open fan2S
SNZ F_5000US ;
JMP L_POLLING_EVENT
CLR F_5000US
INC R_TIMER_COUNTER3
MOV A,R_TIMER_COUNTER3
XOR A,64H
SNZ Z
JMP L_POLLING_EVENT
CLR R_TIMER_COUNTER3
INC R_TIMER_COUNTER4
MOV A,R_TIMER_COUNTER4
XOR A,4H
SNZ Z
JMP L_POLLING_EVENT ;;DELAY 100*5MS*4=2S
CLR R_TIMER_COUNTER3
CLR R_TIMER_COUNTER4
JMP L_NORMAL_WORK
;;----------------------------------------------
L_PROCEDURE2: ;;6S check if feng ya switch close?
SZ PB.1
JMP L_NORMAL_WORK ;;feng ya SWICH OFF
SNZ F_5000US ;
JMP L_POLLING_EVENT
CLR F_5000US
INC R_TIMER_COUNTER3
MOV A,R_TIMER_COUNTER3
XOR A,64H
SNZ Z
JMP L_POLLING_EVENT
CLR R_TIMER_COUNTER3
INC R_TIMER_COUNTER4
MOV A,R_TIMER_COUNTER4
XOR A,12
SNZ Z ;;100*5MS*12=6S
JMP L_POLLING_EVENT
CLR R_TIMER_COUNTER3
CLR R_TIMER_COUNTER4
SET F_FAILURE
MOV A,0A6H
MOV R_TEMP[2],A
CLR P_CSB_PD0
CLR R_PROGRAMCNT
JMP L_POLLING_EVENT
;;----------------------------------------
L_PROCEDURE3: ;check huo yan signal
SZ PB.4
JMP L_NORMAL_WORK
SET F_FAILURE ; have huo yan display E1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -