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

📄 tmr1_isr.asm

📁 HT45RM03A 在電動自行車控制器中的應用
💻 ASM
📖 第 1 页 / 共 2 页
字号:
#include HT45RM03A.inc
#include macro.inc
#include  ElecBikeConstant.inc

public F_modechangeok
public F_xunche
public tmr1_isr
public R_LastData
public F_alarm
public F_bikestate

extern R_dataepprom:byte
extern F_ReadEppromOKF:bit
extern ERERROR:near

isrdata .section  'data'

F_bikestate dbit
F_modechangeok dbit
F_PTmp  dbit
F_alarm dbit
F_xunche dbit

R_Data   db  ?
R_addr   db  ?
R_TL    db  ?
R_TH    db  ?
R_Pilot db  ?
R_Section db ?
R_Syc    db  ?
R_AL     db  ?
R_AH     db  ?
R_LastData db ?
R_alarm  db    ?

extern  isr_acc0:byte
extern  isr_status0:byte
	
isrcode .section  'code'

 tmr1_isr:

	mov		isr_acc0,a
	mov		a,status
	mov		isr_status0,a


    clr wdt
 check_P_REP:
    snz P_RFPin                 ;
    jmp tmr1_isr1
    jmp tmr1_isr2

    tmr1_isr1:
      clr F_Ptmp
      jmp check_P_alarm
   
    tmr1_isr2:
      set F_PTmp
       
     sz F_bikestate
     jmp tmr1_Loop

 check_P_alarm:
       snz P_alarm
      jmp check_p_alarm_low
      jmp check_p_alarm_high

    check_p_alarm_low:
      inc R_alarm
      mov a,R_alarm
      xor a,70                       ;70*100us=7ms
      snz z
      jmp tmr1_Loop
      set F_alarm
      clr R_alarm
      jmp RETI_END

    check_p_alarm_high:
      clr R_alarm
tmr1_Loop:
      clr wdt
      mov a,R_Section
      addm a,pcl
      
  jmp pilot
  jmp syc
  jmp addr0
  jmp addr1
  jmp addr2
  jmp addr3
  jmp addr4
  jmp addr5
  jmp addr6
  jmp addr7
  jmp data0
  jmp data1
  jmp data2
  jmp data3
  jmp last

pilot:
    clr wdt
    sz F_PTmp
    jmp inital
    inc R_Pilot
    mov a,R_Pilot
    sub a,C_Minpilot
    snz c
    jmp RETI_END
    clr R_Pilot
    mov a,1
    mov R_Section,a
    jmp RETI_END

syc:
    clr wdt
    snz F_PTmp
    jmp RETI_END
    inc R_Syc
    mov a,R_Syc
    sub a,C_MinSyc
    snz c
    jmp RETI_END
    mov a,2
    mov R_Section,a
    jmp RETI_END
;------------------------------------------------------------------------- 
addr0:
      clr wdt
      mov a,R_TL
      xor a,00h
      sz z
      jmp a1                       ;
      jmp a2             

    a1:
       clr wdt
       snz F_PTmp
       jmp a11
       jmp a12
         
         a11:
             clr wdt
             inc R_TL
             jmp RETI_END
         a12:
             clr wdt
             inc R_Syc
             mov a,R_Syc
             sub a,C_MaxSyc
             sz c
             jmp inital                   
             jmp RETI_END
     a2:
        clr wdt
        snz F_PTmp
        jmp a21
        jmp a22
           
          a21:
              clr wdt
              inc R_TL
              jmp RETI_END
          a22:
              clr wdt
              inc R_TH
              mov a,3
              mov R_Section,a
              mov a,R_TL
              mov R_AL,a
              clr R_TL
              jmp RETI_END

;---------------------------------------------------------------

addr1: 
      clr wdt
      mov a,R_TL
      xor a,00h
      sz z
      jmp b1                       ;
      jmp b2             

    b1:
       clr wdt
       snz F_PTmp
       jmp b11
       jmp b12

           b11:
             clr wdt
             inc R_TL

             mov a,R_TH
             mov R_AH,a

             clr R_TH

             mov a,R_AL
             add a,R_AH
             sub a,C_CMin
             snz C
             jmp inital
             sub a,C_CMax
             sz  C
             jmp inital
             mov a,R_AL
             sub a,R_AH
             snz c
              jmp b111
              jmp b112

                 b111:
                    clr wdt
                    clr R_addr.0
                    clr R_AL
                    clr R_AH
                    jmp RETI_END                 
                   
                 b112:
                    clr wdt
                    set R_addr.0
                    clr R_AL
                    clr R_AH
                    jmp RETI_END
             
         b12:
             clr wdt
             inc R_TH
             jmp RETI_END
     b2:
        clr wdt
        snz F_PTmp
        jmp b21
        jmp b22
           
          b21:
              clr wdt
              inc R_TL
              jmp RETI_END
          b22:
              clr wdt
              inc R_TH
              mov a,4
              mov R_Section,a
              mov a,R_TL
              mov R_AL,a
              clr R_TL
              jmp RETI_END
            
;----------------------------------------------------------------           
  addr2: 
      clr wdt
      mov a,R_TL
      xor a,00h
      sz z
      jmp c1                       ;
      jmp c2             

    c1:
       clr wdt
       snz F_PTmp
       jmp c11
       jmp c12

         c11:
             clr wdt
             inc R_TL

             mov a,R_TH
             mov R_AH,a

             clr R_TH

             mov a,R_AL
             add a,R_AH
             sub a,C_CMin
             snz C
             jmp inital
             sub a,C_CMax
             sz  C
             jmp inital
             mov a,R_AL
             sub a,R_AH
             snz c
              jmp c111
              jmp c112

                 c111:
                    clr wdt
                    clr R_addr.1
                    clr R_AL
                    clr R_AH
                   jmp RETI_END                 
                   
                 c112:
                    clr wdt
                    set R_addr.1
                    clr R_AL
                    clr R_AH
                    jmp RETI_END
             
         c12:
            clr wdt
             inc R_TH
             jmp RETI_END
     c2:
        clr wdt
        snz F_PTmp
        jmp c21
        jmp c22
           
          c21:
              clr wdt
              inc R_TL
             jmp RETI_END
          c22:
              clr wdt
              inc R_TH
              mov a,5
              mov R_Section,a
              mov a,R_TL
              mov R_AL,a
              clr R_TL
              jmp RETI_END
            
;----------------------------------------------------------------           
    addr3: 
      clr wdt
      mov a,R_TL
      xor a,00h
      sz z
      jmp d1                       ;
      jmp d2             

    d1:
       clr wdt
       snz F_PTmp
       jmp d11
       jmp d12

          d11:
             clr wdt
             inc R_TL

             mov a,R_TH
             mov R_AH,a

             clr R_TH

             mov a,R_AL
             add a,R_AH
             sub a,C_CMin
             snz C
             jmp inital
             sub a,C_CMax
             sz  C
             jmp inital
             mov a,R_AL
             sub a,R_AH
             snz c
              jmp d111
              jmp d112

                 d111:
                    clr wdt
                    clr R_addr.2
                    clr R_AL
                    clr R_AH
                    jmp RETI_END                
                   
                 d112:
                    set R_addr.2
                    clr R_AL
                    clr R_AH
                    jmp RETI_END
             
         d12:
             clr wdt
             inc R_TH
             jmp RETI_END
     d2:
        clr wdt
        snz F_PTmp
        jmp d21
        jmp d22
           
          d21:
              clr wdt
              inc R_TL
             jmp RETI_END
          d22:
              clr wdt
              inc R_TH
              mov a,6
              mov R_Section,a
              mov a,R_TL
              mov R_AL,a
              clr R_TL
              jmp RETI_END
            
;----------------------------------------------------------------           
    addr4: 
      clr wdt
      mov a,R_TL
      xor a,00h
      sz z
      jmp e1                       ;
      jmp e2             

    e1:
       clr wdt
       snz F_PTmp
       jmp e11
       jmp e12

            e11:
             clr wdt
             inc R_TL

             mov a,R_TH
             mov R_AH,a

             clr R_TH

             mov a,R_AL
             add a,R_AH
             sub a,C_CMin
             snz C
             jmp inital
             sub a,C_CMax
             sz  C
             jmp inital
             mov a,R_AL
             sub a,R_AH
             snz c
              jmp e111
              jmp e112

                 e111:
                    clr wdt
                    clr R_addr.3
                    clr R_AL
                    clr R_AH
                    jmp RETI_END                  
                   
                 e112:
                    clr wdt
                    set R_addr.3
                    clr R_AL
                    clr R_AH
                    jmp RETI_END
             
         e12:
             clr wdt
             inc R_TH
             jmp RETI_END
     e2:
        clr wdt
        snz F_PTmp
        jmp e21
        jmp e22
           
          e21:
              clr wdt
              inc R_TL
             jmp RETI_END
          e22:
              clr wdt
              inc R_TH
              mov a,7
              mov R_Section,a
              mov a,R_TL
              mov R_AL,a
              clr R_TL
             jmp RETI_END                             
                   
 ;----------------------------------------------------------------           
    addr5: 
      clr wdt
      mov a,R_TL
      xor a,00h
      sz z
      jmp f1                       ;
      jmp f2             

    f1:
       clr wdt
       snz F_PTmp
       jmp f11
       jmp f12

         f11:
             clr wdt
             inc R_TL

             mov a,R_TH
             mov R_AH,a

             clr R_TH

             mov a,R_AL
             add a,R_AH
             sub a,C_CMin
             snz C
             jmp inital
             sub a,C_CMax
             sz  C
             jmp inital
             mov a,R_AL
             sub a,R_AH
             snz c
              jmp f111
              jmp f112

                 f111:
                    clr wdt
                    clr R_addr.4
                    clr R_AL
                    clr R_AH
                    jmp RETI_END                 
                   
                 f112:
                    clr wdt
                    set R_addr.4
                    clr R_AL
                    clr R_AH
                    jmp RETI_END
             
         f12:
             clr wdt
             inc R_TH
             jmp RETI_END
     f2:
        clr wdt

⌨️ 快捷键说明

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