;***** Encabezado *****

list p=16F84A
#include P16F84A.inc

__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;***** Definicion de variables *****


Led			equ	7
Pulsador	equ	4
R1			equ	0x0C
R2			equ	0x0D
R3			equ	0x0E	     	

;***** Configuracion de puertos *****


Inicio	bsf	STATUS,RP0	 				; Pasamos de Banco 0 a Banco 1

		movlw	b'11111'				; Muevo 11111 a W 
		movwf	TRISA					; Cargo TRISA con W y lo configuro como entradas
		movlw	b'00000000'				; Muevo 00000000 a W
		movwf	TRISB					; Cargo TRISB con W y lo configuro como salidas
		bcf	STATUS,RP0					; Paso del Banco 1 al Banco 0
		bcf	PORTB,Led					; Limpio el bit 7 del puertoB comienza apagado

;**** Control de Led ****

MONITOR	btfsc	PORTA,Pulsador			; Revisa si es 0 si es asi salta una linea
		goto	Apagar					; Esta a 1 Apagamos Led
		bsf		PORTB,Led				; Manda un 1 al registro Led y enciende
		goto	DEMORA					; Salto a Demora
		goto	MONITOR					; Revisa nuevamente la condicion del Pulsador
Apagar	bcf		PORTB,Led				; Manda un 0 al registro Led y lo apaga
		goto	MONITOR					; Revisa nuevamente la condicion del Pulsador

;***** Rutina de Retardo *****

DEMORA	movlw	100
		movwf	R1

tres	movlw	40
		movwf	R2

dos		movlw	30
		movwf	R3

uno		decfsz	R3,1
		goto	uno
		decfsz	R2,1
		goto	dos
		decfsz	R1,1
		goto	tres
		RETURN
;***** Fin del programa *****   
               
   END     								; Fin del programa
