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

📄 reshuiqibak.asm

📁 本款强排式热水器采用&#1049307 &#1049346 &#1049343 &#1049351 &#1049336 &#1049342 &#1049267 &#1049307 &#1049319
💻 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 + -