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

📄 reshuiqi.asm

📁 本款强排式热水器采用&#1049307 &#1049346 &#1049343 &#1049351 &#1049336 &#1049342 &#1049267 &#1049307 &#1049319
💻 ASM
字号:
.listinclude
INCLUDE HT46R48.INC
INCLUDE MEMORY.ASM
;;********************************
   ;IDE Version : ver 6.6 sp5
   ;Program:ht46r48.prj
   ;Program Version:VER0.0
   ;Established Date 2006/8/15
   ;Programmer:lxp
   ;Mcu body: Ht46r48
;;-------MASK OPTION----------------
   ;FSYS      : RC MODE R=80k=4Mhz
   ;Vdd       : 5v
   ;Wake_up   : Non_wake up
   ;Pull_high :PA Pull_high,Pb Non pull_high,pd pull high
   ;20 DIP    ;PC no use
   ;Wdt :enable
   ;Clr wdt:one clear Insruction
   ;Wdt Source:Wdtosc
   ;Pa3:enable Pfd
   ;Pd0:Disbale pwm
   ;Lvr:disable
   ;ram:29byte,rom:890 
;;**********************************
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 
      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
      CALL INITIAL_IOS
      JMP L_POLLING_EVENT
 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
      CALL INITIAL_IOS
;;-----------------------
  L_POLLING_EVENT:
      CLR  WDT 
      CALL SBR_SOUNDOPEN
      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_PROCEDURE11
      CLR  R_PROGRAMCNT
      JMP  L_POLLING_EVENT
;;-----------------
 ;;TETEMPERATURE CALCULA&LED SHOW PROCE
 SBR_SHOWPROCEDURE:         
      SNZ  F_5MS
      RET
      CLR  F_5MS  
      CALL SBR_SHOW_LED   
      CALL SBR_CHECK_FLAME
      SZ   F_FAILURE
      RET
      SZ   F2_500MS 
      CALL SBR_MAN_AVG  
      RET
 ;;---------CHECK WATER SWICH------------------
 SBR_WATERSWICH_CHECK:         
      SZ   PB.3                  ;; 
      JMP  L_OPEN_WATER   
 L_CLOSE_WATER:
      CLR  F_FAILURE 
      CLR  F_WATER_STREAM
  L_WAIT_CLOSE_WATER:
      CLR  R_TIMER_COUNTER5
      CLR  R_TIMER_COUNTER6
      CLR  R_TIMER_COUNTER7
      MOV  A,07H
      ORM  A,PA  
      SZ   F_GASGATEOPEN         ;;CHECK GAS GATE FLAG    
      JMP  L_DELAY20S_OPEN 
      CLR  F_2TIMERS_FIRE
      CLR  P_CSB_PD0
      CLR  R_PROGRAMCNT          ;;CLOSE WATCH 
      RET  A,1
 L_DELAY20S_OPEN:    
      SET  F_2TIMERS_FIRE
      MOV  A,0BH
      MOV  R_PROGRAMCNT,A     
      RET  A,0
  L_TEMPERATURE_EEOR:
      SET  F_FAILURE
      JMP  L_WAIT_CLOSE_WATER
  L_OPEN_WATER:
      SET  F_WATER_STREAM
      SZ   F_TEMPERATURE_EEOR
      JMP  L_TEMPERATURE_EEOR
      SNZ  F_FAILURE
      JMP  L_NORMAL_FIRE                  
      SNZ  F_GASGATEOPEN           ;;
      RET  A,1 
      MOV  A,0BH
      MOV  R_PROGRAMCNT,A 
      RET  A,0                    ;;    
  L_NORMAL_FIRE:    
      SNZ  F_2TIMERS_FIRE         ;;
      RET  A,0
      CLR  F_2TIMERS_FIRE
      MOV  A,01H
      MOV  R_PROGRAMCNT,A  
      CLR  R_TIMER_COUNTER3
      CLR  R_TIMER_COUNTER4
      RET  A,0
;;---------------------------------------
 L_NORMAL_WORK:
      CLR  R_TIMER_COUNTER3
      CLR  R_TIMER_COUNTER4  
      INC  R_PROGRAMCNT 
      JMP  L_POLLING_EVENT 
 L_PROCEDURE0:
      SNZ  PB.1                 ;;CHECK WIND SWICH
      JMP  L_NORMAL_WORK        ;;OPEN  WIND SWICH
      SET  F_FAILURE            ;;CLOSE WIND SWICH
      MOV  A,0A7H          
      MOV  R_TEMP[2],A
      CLR  R_PROGRAMCNT  
      JMP  L_POLLING_EVENT 
;------------------------------------------
  L_PROCEDURE1:   
      SET  P_CSB_PD0               ;OPEN 2S
      SNZ  F_5000US                ;  
      JMP  L_POLLING_EVENT 
      CLR  F_5000US 
      INC  R_TIMER_COUNTER3
      MOV  A,R_TIMER_COUNTER3   
      XOR  A,CONST1
      SNZ  Z
      JMP  L_POLLING_EVENT 
      CLR  R_TIMER_COUNTER3
      INC  R_TIMER_COUNTER4
      MOV  A,R_TIMER_COUNTER4   
      XOR  A,CONST2
      SNZ  Z  
      JMP  L_POLLING_EVENT         ;;DELAY 100*5MS*4=2S 
      JMP  L_NORMAL_WORK
;;----------------------------------------------
   L_PROCEDURE2:                 ;;6S CHECK WIND SWICH
     SZ   PB.1 
     JMP  L_NORMAL_WORK          ;; WIND SWICH CLOSE
     SNZ  F_5000US                ;  
     JMP  L_POLLING_EVENT 
     CLR  F_5000US 
     INC  R_TIMER_COUNTER3
     MOV  A,R_TIMER_COUNTER3   
     XOR  A,CONST_WINDSWICH1      ;;64H*0.5MS=0.5S
     SNZ  Z
     JMP  L_POLLING_EVENT 
     CLR  R_TIMER_COUNTER3
     INC  R_TIMER_COUNTER4
     MOV  A,R_TIMER_COUNTER4   
     XOR  A,CONST_WINDSWICH2       
     SNZ  Z                         ;;100*5MS*12=6S
     JMP  L_POLLING_EVENT  
     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 flame
     SNZ  F_FLAME
     JMP  L_NORMAL_WORK 
     SET  F_FAILURE            ;HAVE flame,SHOW E1
     MOV  A,0A1H
     MOV  R_TEMP[2],A
     CLR  R_PROGRAMCNT
     JMP  L_POLLING_EVENT 
;;--------------------------------------------
  L_PROCEDURE4:                ;;START FIRE
     CLR  PA.2             
     CLR  P_CSB_PD0 
     SNZ  F_FLAME
     JMP  L_FLAME_OFF
     SET  PA.2                  ;;HAVE flame,STOP FIRE
     SET  F_FAILURE
     SET  P_CSB_PD0             ;;
     MOV  A,0A2H
     MOV  R_TEMP[2],A
     CLR  R_PROGRAMCNT
     JMP  L_POLLING_EVENT 
 L_FLAME_OFF:
     SNZ  F_5000US               ;  
     JMP  L_POLLING_EVENT 
     CLR  F_5000US 
     INC  R_TIMER_COUNTER3
     MOV  A,R_TIMER_COUNTER3      ;;200*5MS=1S NO flame
     XOR  A,CONST3 
     SNZ  Z
     JMP  L_POLLING_EVENT 
     CLR  PA.0              ;;OPEN FA
     CLR  PA.1              ;;
     JMP  L_NORMAL_WORK   
;;----------------------------------------------
;***********************************************
  L_PROCEDURE5:
     CLR  PA.2
     CLR  R_TIMER_COUNTER8
     CLR  R_TIMER_COUNTER9
     SET  F_GASGATEOPEN
     SZ   F_FLAME
     JMP  L_NORMAL_WORK     ;; FLAME ON 
     SNZ  F_5000US          ;  
     JMP  L_POLLING_EVENT 
     CLR  F_5000US 
     INC  R_TIMER_COUNTER3
     MOV  A,R_TIMER_COUNTER3   
     XOR  A,CONST1 
     SNZ  Z
     JMP  L_POLLING_EVENT  
     SET  PA.0              ;;AFTER 0.5s COLSE FA
     CLR  R_TIMER_COUNTER3
     INC  R_TIMER_COUNTER4
     MOV  A,R_TIMER_COUNTER4  
     XOR  A,CONST4
     SNZ  Z
     JMP  L_POLLING_EVENT  
     SET  F_FAILURE
     SET  PA.2
     MOV  A,0A3H
     MOV  R_TEMP[2],A
     JMP  L_COLSEGASGATE_DELAY20S
;;---------------------------        
 L_CONTINUE_FIRE:
     MOV  A,05H  
     MOV  R_PROGRAMCNT ,A
     JMP  L_POLLING_EVENT 
 L_PROCEDURE6:                   ;;
     CLR  PA.2
     SNZ  F_FLAME
     JMP  L_CONTINUE_FIRE
     SET  P_CSB_PD0   
     SNZ  F_5000US                ;  
     JMP  L_POLLING_EVENT 
     CLR  F_5000US 
     INC  R_TIMER_COUNTER3
     MOV  A,R_TIMER_COUNTER3      ;;100*5MS=0.5S
     XOR  A,CONST1
     SNZ  Z
     JMP  L_POLLING_EVENT 
     SET  PA.0                   ;AFTER 0.5s COLSE FA
     CLR  R_TIMER_COUNTER3
     INC  R_TIMER_COUNTER4
     MOV  A,R_TIMER_COUNTER4  
     XOR  A,2
     SNZ  Z
     JMP  L_POLLING_EVENT     
     JMP  L_NORMAL_WORK 
;**********************************************
;**********************************************
 L_PROCEDURE7:                  ;;GAS GATE OPEN
    SET  PA.2                   ;;AFTER 1s STOP FIRE  
    CLR  PA.1 
    SET  P_CSB_PD0
    SNZ  F_WATER_STREAM         ;;CHECK IF COLSE WATER
    JMP  L_COLSEGASGATE_DELAY20S
    SZ   F_FLAME  
    JMP  L_NORMAL_WORK           ;; HAVE FLAME 
    SNZ  F_5000US                ;; NO FLAME       
    JMP  L_POLLING_EVENT 
    CLR  F_5000US 
    INC  R_TIMER_COUNTER3
    MOV  A,R_TIMER_COUNTER3      ;;200*5MS=1S
    XOR  A,CONST5 
    SNZ  Z
    JMP  L_POLLING_EVENT 
    SET  F_FAILURE 
    MOV  A,0A3H
    MOV  R_TEMP[2],A
    JMP  L_COLSEGASGATE_DELAY20S
;---------------------------------------
 L_PROCEDURE8:             ;;2S CHECK WIND SWICH
    SZ   PB.1              ;;CHECK WIND SWICH
    JMP  L_NORMAL_WORK     ;;WIND SWICH CLOSE
    SNZ  F_5000US           ;;WIND SWICH OPEN   
    JMP  L_POLLING_EVENT 
    CLR  F_5000US 
    INC  R_TIMER_COUNTER3
    MOV  A,R_TIMER_COUNTER3      ;
    XOR  A,100
    SNZ  Z
    JMP  L_POLLING_EVENT 
    CLR  R_TIMER_COUNTER3
    INC  R_TIMER_COUNTER4
    MOV  A,R_TIMER_COUNTER4 
    XOR  A,4
    SNZ  Z
    JMP  L_POLLING_EVENT  
    SET  F_FAILURE 
    MOV  A,0A6H
    MOV  R_TEMP[2],A
    JMP  L_COLSEGASGATE_DELAY20S
;;---------------------------------------
 L_PROCEDURE9:            
     SNZ  F_OVER85C
     JMP  L_NORMAL_WORK 
     SNZ  F_5000US                 
     JMP  L_POLLING_EVENT 
     CLR  F_5000US 
     INC  R_TIMER_COUNTER3
     MOV  A,R_TIMER_COUNTER3      ;
     XOR  A,CONST6
     SNZ  Z
     JMP  L_POLLING_EVENT 
     CLR  R_TIMER_COUNTER3
     INC  R_TIMER_COUNTER4
     MOV  A,R_TIMER_COUNTER4
     XOR  A,CONST8 
     SNZ  Z
     JMP  L_POLLING_EVENT  
     SET  F_FAILURE  
     MOV  A,0A5H
     MOV  R_TEMP[2],A
     JMP  L_COLSEGASGATE_DELAY20S
;-------------------------
  L_PROCEDURE10:
    SNZ  PB.4                   ;;CHECK TIMER SWICH
    JMP  L_ALL_WORKNORMAL       ;;20MIN TIMER SWICH OFF
    SNZ  F_5000US                ;  
    JMP  L_ALL_WORKNORMAL 
    CLR  F_5000US 
    INC  R_TIMER_COUNTER5
    MOV  A,R_TIMER_COUNTER5      ;;200*5MS=1S
    XOR  A,200
    SNZ  Z
    JMP  L_ALL_WORKNORMAL 
    CLR  R_TIMER_COUNTER5
    INC  R_TIMER_COUNTER6
    MOV  A,R_TIMER_COUNTER6 
    XOR  A,60
    SNZ  Z
    JMP  L_ALL_WORKNORMAL  
    CLR  R_TIMER_COUNTER5
    CLR  R_TIMER_COUNTER6
    INC  R_TIMER_COUNTER7  
    MOV  A,R_TIMER_COUNTER7
    XOR  A,CONST9      
    SNZ  Z
    JMP  L_ALL_WORKNORMAL 
    SET  F_FAILURE 
    MOV  A,0ABH
    MOV  R_TEMP[2],A
    JMP  L_COLSEGASGATE_DELAY20S
 L_ALL_WORKNORMAL:
    MOV  A,07H
    MOV  R_PROGRAMCNT ,A
    JMP  L_POLLING_EVENT 
;-------------------------------------------
 L_COLSEGASGATE_DELAY20S:
    CLR  R_TIMER_COUNTER3
    CLR  R_TIMER_COUNTER4
 L_PROCEDURE11:
    SET  P_CSB_PD0
    MOV  A,0BH
    MOV  R_PROGRAMCNT,A
    SET  PA.0
    SET  PA.1
    SNZ  F_5000US                ;  
    JMP  L_POLLING_EVENT 
    CLR  F_5000US 
    INC  R_TIMER_COUNTER8
    MOV  A,R_TIMER_COUNTER8     ;;200*5MS=1S
    XOR  A,200
    SNZ  Z
    JMP  L_POLLING_EVENT 
    CLR  R_TIMER_COUNTER8
    INC  R_TIMER_COUNTER9
    MOV  A,R_TIMER_COUNTER9 
    XOR  A,20
    SNZ  Z
    JMP  L_POLLING_EVENT 
    CLR  F_GASGATEOPEN
    CLR  R_PROGRAMCNT
    CLR  P_CSB_PD0
    CLR  R_TIMER_COUNTER8
    CLR  R_TIMER_COUNTER9 
    JMP  L_POLLING_EVENT 
;;====================================
  INCLUDE SUBROUTINE.ASM
  INCLUDE LEDSHOW.ASM
  INCLUDE CALCULA_TETEMPERATURE.ASM
     
       






















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -