Hola, gracias a los que habeis contestado, efectivamente lo que se apagaba después de un segundo era al causa que porgramaba con el perro guardián activado. Como lo que intento es hacer proyecto conforme voy aprendiendo a usar ordenes, ahora utilizo el temporizador, ya que lo estoy aprendiendo a utilizar. Ahora lo que he hecho es un archivo el cual después de actuar sobre un pulsador, se me enciende el led, y después de un tiempo, que en este caso es de 6,5 segundos se apaga, es decir, quiero hacer un temporizador para, por ejemplo, las luces de las escaleras de un bloque de viviendas. La temporización del tiempo que permanecería la luz encendería se seleccionaría con los interruptores de la puerta B y la luz se encendería con una salida de la puerta A. Para encender la luz, sobre que tipo de componente debería actuar la puerta de salida, ya que sólo proporciona entre 20 ó 25 mA. Os dejo el archivo para que le podais hacer una crítica constructiva.
Gracias y saludos
LIST P=16F84A ;Se especifica el microcontrolador
ESTADO EQU 03 ;Se definen las diferentes etiquetas
PUERTAA EQU 05
PUERTAB EQU 06
TMR0 EQU 01
OPT EQU 01
INTCON EQU 0B
RP0 EQU 05
T0IF EQU 02
CONTADOR EQU 12
ORG 0
CONFIGURACION bsf ESTADO,RP0 ;Se configura los diferentes registros
movlw b'11111'
movwf PUERTAA ;Se configura la puertaa como entrada
clrf PUERTAB ;y la b como salida
movlw b'00000111' ;se le asigna el divisor al TMR0
movwf OPT
bcf ESTADO,RP0
INICIO clrf PUERTAB ;Se apaga el led
btfss PUERTAA,3 ;Se comprueba si alguien ha pulsado algún pulsador
goto INICIO ;S no se ha pulsado vuelve a comprobar
bsf PUERTAB,3 ;Cuando se ha pulsado enciende el led
call RETRASO ;Se llama a la subrutina de retraso de unos 6,5 segundos
goto INICIO ;Volvemos a la espera de que alguien le de a algún pulsador
RETRASO movlw d'100' ;Se produce un retraso de unos 6,5 segundos
movwf CONTADOR
RETRASO1 clrf TMR0
RETRASO2 btfss INTCON,T0IF
goto RETRASO2
bcf INTCON,T0IF
decfsz CONTADOR,1
goto RETRASO1
return
END