Buenas, estoy tratando de implementar un retardo de 500segundos usando el Timr1 para comprender las interrupciones, ¿se podria realizar?. Yo lo he intentado pero no consigo encender la bombilla en proteus a los 8minutos, ¿donde puede estar el fallo?
list p=16f877
#include <p16f877.inc>
conta equ 0x20
conta1 equ 0x21
org 0x00
nop
goto main
org 0x04
goto inter
main
movlw b'10111010'
movwf conta
movlw b'00000011'
movwf conta1
bsf STATUS,RP0
BCF STATUS,RP1
CLRF TRISB
CLRF INTCON
CLRF PIE1
CLRF PIE2
MOVLW B'11000000'
MOVWF INTCON
BSF PIE1,TMR1IE
BCF STATUS,RP0
MOVLW B'00110000'
MOVWF T1CON
CLRF PORTB
BUCLE BSF T1CON,TMR1ON
GOTO BUCLE
inter DECFSZ conta,f
GOTO SALIDA
DECFSZ conta1,f
GOTO SALIDA
GOTO FIN
SALIDA BCF PIR1,TMR1IF
RETFIE
FIN BSF STATUS,RP0
CLRF INTCON
BCF T1CON,TMR1ON
MOVLW 0XFF
MOVWF PORTB
RETFIE
END