Problema con simulación. Programación pics en con MPlab en ensamblador

Al simular un programa y darle al step una y otra vez, el contador de programa va avanzando hasta llegar a un loop y ahí se me queda todo el rato testeando el bit de flag del Timer0 pero no se dirige a la subrutina nunca. Se supone que cuando el bit de flag se ponga 1 tiene que realizar una subrutina.

Las interrupciones están habilitadas , tanto el GIE como el TIE


Recuerdo que para que las temporizaciones se pudieran simular había que hacer algo pero no sé que. Poner un breackpoin y configurar algo.

Alguien me puede ayudar?
 
Código:
List              p=16f84             ;Tipo de procesador
            include           "P16f84.INC"        ;Definiciones de registros internos
 CONTADOR    equ  0x0c  
 NUM         equ  0X0D    
             org  0x00
            goto Inicio
             org  0x05
             movlw .10
             movwf CONTADOR
RSI          BTFSC PORTA, 0
             GOTO  DESCEN
             GOTO  ASCEN
ASCEN        BTFSS NUM, 5
             GOTO NOMAX
             MOVLW B'00000000'
             MOVWF NUM
NOMAX        DECFSZ  CONTADOR, F
             GOTO   RESTABL
             INCF    NUM, F
             GOTO   RESTABL
DESCEN       MOVLW  B'00001111'
             INCF   NUM, F
             DECFSZ   NUM, F
             GOTO   NOMIN
             MOVWF  NUM
NOMIN        DECFSZ CONTADOR, F
             GOTO    RESTABL
             DECF   NUM, F
RESTABL      BSF   INTCON, T0IF
             INCF  CONTADOR, F
             DECFSZ CONTADOR, F
             GOTO    FINRSI
             MOVLW .10
             MOVWF  CONTADOR
FINRSI       RETFIE
Inicio      clrf PORTB
            BSF  STATUS, RP0
            CLRF  TRISB
            MOVLW  b'00011111'
            MOVWF TRISA
            MOVLW B'00000111'
            MOVWF OPTION_REG
            bsf   INTCON, GIE
            bsf   INTCON, T0IE  
            BCF   STATUS, RP0
LOOP      CLRWDT
            btfss  INTCON, T0IF
            GOTO  $-2
            GOTO  RSI
            MOVFW NUM
          Tabla:  addwf     PCL,F         ;Desplazamiento sobre la tabla
            retlw     b'00111111' ;Dígito 0
            retlw     b'00000110' ;Dígito 1
            retlw     b'01011011' ;Dígito 2
            retlw     b'01001111' ;Dígito 3
            retlw     b'01100110' ;Dígito 4
            retlw     b'01101101' ;Dígito 5
            retlw     b'01111101' ;Dígito 6
            retlw     b'00000111' ;Dígito 7
            retlw     b'01111111' ;Dígito 8
            retlw     b'01100111' ;Dígito 9
            retlw     b'01110111' ;Dígito A
            retlw     b'01111100' ;Dígito b
            retlw     b'00111001' ;Dígito C
            retlw     b'01011110' ;Dígito d
            retlw     b'01111001' ;Dígito E
            retlw     b'01110001' ;Dígito F
            GOTO LOOP
            END

seguramente sobren muchas lineas pero bueno
 
Última edición por un moderador:
Atrás
Arriba