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

📄 subroutine.asm

📁 本款强排式热水器采用&#1049307 &#1049346 &#1049343 &#1049351 &#1049336 &#1049342 &#1049267 &#1049307 &#1049319
💻 ASM
字号:
;;------------------------------------------
  ;RAM 4BYTE,2BIT
  ; STACK 1
  ; WDT ENABLE 
  ; TIMER 1
  ; INTERRUPT 0
  ; PORT 0
  ; MAXRUNTIME:27CYCLE (4MHZ)
;-------------------------------------------
 ISR_TIMER:
         MOV R_ACC_BAK,A
         MOV A,STATUS
         MOV R_STATUS_BAK,A
         INC R_TIMER_COUNTER1
         MOV A,R_TIMER_COUNTER1
         XOR A,14H                 ;;20*250us=5ms
         SNZ  Z               
         JMP L_EXIT_ISR_TIMER      ;; IF A<14H(5ms),EXIT ISR_TIMER
         SET F_5MS
;;------------------------------
         SET F_5000US
         CLR R_TIMER_COUNTER1
         INC R_TIMER_COUNTER2
         MOV A,R_TIMER_COUNTER2
         XOR A,064H                 ;;100*5ms=0.5S
         SNZ Z
         JMP L_EXIT_ISR_TIMER  
         SET F2_500MS
         CLR R_TIMER_COUNTER2   
         SNZ F_500MS  
         JMP L_SET_500MSFLAG
         CLR F_500MS  
         JMP L_EXIT_ISR_TIMER
 L_SET_500MSFLAG:
         SET F_500MS 
 L_EXIT_ISR_TIMER:
         MOV A,R_STATUS_BAK 
         MOV R_STATUS_BAK,A
         MOV A,R_ACC_BAK
         RETI
;;---------INITIAL MEMORYS---------------------
  INI_RAM:
        MOV A,40H
        MOV MP,A
  L_INITIAL_RAM:
        CLR  R0
	    INC  MP0
	    MOV  A,MP0
	    XOR  A,80H
	    SNZ Z  
        JMP  L_INITIAL_RAM 
        MOV A,55H
        MOV R_NORMAL_FLAG1,A
        MOV A,0AAH
        MOV R_NORMAL_FLAG2,A
        CLR R_PROGRAMCNT
        MOV A,25H
        MOV R_TEMP[2],A
        RET
;---------INITIAL IOS----------------------
  INITIAL_IOS:
        MOV A,00011111B
        MOV PBC,A
        SET PB
        CLR PAC
        MOV A,0F7H
        MOV PA,A
        CLR PCC
        CLR PC
        CLR PDC
        CLR PD
        MOV A,05H
        MOV INTC,A
        MOV A,06H
        MOV TMR,A         ;;EVENT 256-6=250us ENTER ISR
        MOV A,92H         ;;TIMER MODE
        MOV TMRC,A       ;;FINT=(4MHZ)Fsys/4=1MHZ
        RET
;;---------DELAY25MS------------------
  SBR_DELAY25MS:
       MOV A,50
       MOV R_TIMER_COUNTER3,A
    L_DEL_LOOP:
       SNZ F_5000US
       JMP L_DEL_LOOP
       CLR F_5000US 
       SDZ R_TIMER_COUNTER3
       JMP L_DEL_LOOP
       RET
 SBR_SOUND3S:
       SET  PA.3
       CALL SBR_DELAY25MS
       CLR  PA.3
       RET
 SBR_SOUNDOPEN:
      MOV A,00011111B
      MOV PBC,A
      CLR PAC
      SZ F_FAILURE
      JMP L_CLOSE_BZ
      CLR PA.3
      RET
    L_CLOSE_BZ:
      MOV  A,07H
      ORM  A,PA
      SZ  F_500MS
      JMP CLOSE_BZ
  OPEN_BZ:
      SET PA.3
      RET
  CLOSE_BZ:
      CLR PA.3
      RET
;;-----CHECK flame flag---------------------
   SBR_CHECK_FLAME:
        SZ   F_5MS
        RET
        MOV A,8
		MOV  R_TEMP[4],A
		CLR  R_TEMP[5]
		CLR	 R_TEMP[6]
		CLR	 R_TEMP[7]
	L_CHECK_FLAME:
        MOV   A,01H
		MOV   ACSR,A  
        MOV   A,1AH      ;;only ch3 a/d
		MOV   ADCR,A
		CALL  SBR_MAN
		MOV	  A,R_TEMP[9]
		ADDM  A,R_TEMP[5]
		MOV   A,R_TEMP[8]
		ADCM  A,R_TEMP[6]
		MOV	  A,0
		ADCM  A,R_TEMP[7]
		SDZ   R_TEMP[4]
		JMP   L_CHECK_FLAME
;--------------------------
		RRC	R_TEMP[7]
		RRC	R_TEMP[6]
		RRC R_TEMP[5]
		RRC	R_TEMP[7]
		RRC	R_TEMP[6]
		RRC R_TEMP[5]
		RRC	R_TEMP[7]
		RRC	R_TEMP[6]
		RRC R_TEMP[5]
;-----------------------
        CLR F_FLAME
        MOV A,R_TEMP[6]
        SUB A,C_FLAMEVOLTAGE
        SNZ  C
        SET F_FLAME
        RET

⌨️ 快捷键说明

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