Hola buenas noches, estoy haciendo una tarea de la escuela la cual consiste en elaborar un programa para el pic 16f877a el cual prende un led 9 seg y lo apague igual 9 seg, ya le he estudiado algo y he realizado este programa pero pues no me funciona, la verdad no se donde esten mis errores y les pido por favor me echen una mano para ver donde la estoy regando, les dejo mi programa:
Primeramente utilice la temporización máxima que se puede lograr con este micro que es de 65.536mS, cargue un valor de 0 al tmr0 para que contara de 0 a 255 y asi utilizar la temporizacion maxima, utilice un preescaler de 256, y para lograr los 9 segundos use un registro auxiliar el cual se decrementa 137 veces para lograr los 9 segundos.
Saludos y espero me puedan orientar un poco.
Gracias.
Código:
LIST P=16F877A
INCLUDE <P16F877A.INC>
;-----------------INICIO--------------
RESETTING ORG 0x00
GOTO CONF
AUXREG EQU 0x20
CONF MOVLW b'01000111'
BCF STATUS,RP1
BSF STATUS,RP0
MOVWF OPTION_REG
BCF STATUS,RP0
MOVLW b'00000001'
MOVWF TRISB
CLRF PORTB
BUTTON_PRESSED BTFSC PORTB,0
GOTO BUTTON_PRESSED
BSF PORTB,1
MOVLW d'137'
MOVWF AUXREG
CALL TEMPO
BCF PORTB,1
CALL TEMPO
GOTO BUTTON_PRESSED
TEMPO BCF INTCON,2
MOVLW 0x00
MOVWF TMR0
ESPERA BTFSS INTCON,2
GOTO ESPERA
DECFSZ AUXREG,1
GOTO TEMPO
RETURN
END
Primeramente utilice la temporización máxima que se puede lograr con este micro que es de 65.536mS, cargue un valor de 0 al tmr0 para que contara de 0 a 255 y asi utilizar la temporizacion maxima, utilice un preescaler de 256, y para lograr los 9 segundos use un registro auxiliar el cual se decrementa 137 veces para lograr los 9 segundos.
Saludos y espero me puedan orientar un poco.
Gracias.