__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC
LIST p=16F877A
INCLUDE <P16F877A.INC>
ORG 0X00
GOTO SET_UP
ORG 0X04
BTFSC PORTB,4
GOTO RUTINA_INT4
BTFSC PORTB,5
GOTO RUTINA_INT5
BTFSC PORTB,6
GOTO RUTINA_INT6
GOTO RUTINA_INT7
CBLOCK 0X20
cont_1
cont_2
cont_3
INTER
ENDC

SET_UP
BCF STATUS,RP1; 0|1
BSF STATUS,RP0; banco 1
CLRF TRISC
CLRF TRISD
MOVLW 0XFF
MOVLW TRISB
MOVLW 0X88; GIE on y HABILITAR LAS INTERRUPCIONES DE RB4--RB7
MOVLW INTCON
BSF OPTION_REG,INTEDG;	flancos de subida 
BCF STATUS,RP0; banco 0
CLRF PORTC
GOTO MAIN


MAIN
MOVLW 0XFF
MOVWF PORTC
CALL RETARDO_1S
CLRF PORTC
CALL RETARDO_1S
GOTO MAIN


RUTINA_INT4
CLRF PORTC
BSF PORTD,0 
CALL RETARDO_1S
CLRF PORTD
BCF INTCON,RBIF
RETFIE

RUTINA_INT5
CLRF PORTC
BSF PORTD,1
CALL RETARDO_1S
CLRF PORTD 
BCF INTCON,RBIF
RETFIE

RUTINA_INT6
CLRF PORTC
BSF PORTC,2 
CALL RETARDO_1S
CLRF PORTC
BCF INTCON,RBIF
RETFIE

RUTINA_INT7
CLRF PORTC
BSF PORTC,3
CALL RETARDO_1S
CLRF PORTC 
BCF INTCON,RBIF
RETFIE



RETARDO_1S
MOVLW 0XFF
MOVWF cont_1
Rep1
MOVLW 0XEF
MOVWF cont_2
Rep2
MOVLW 0X0F
MOVWF cont_3
Rep3
	DECFSZ cont_3,1
	GOTO Rep3
	DECFSZ cont_2,1
	GOTO Rep2
	DECFSZ cont_1,1
	GOTO Rep3
	RETURN
END 