Bueno un problema de las interrupciones es este, que se pierde control sobre el flujo del programa:
Primero: Mientras esta haciendo una interrupcion no atiende a la otra, esto que en principio es malo (sobre todo porque estas en la interrupcion 20seg que es muchisimo) para este programa en concreto va bien, porque mientras le estas dando paso a un autobus no se lo puedes dar al otro, ni cortar una secuencia a medias para empezar otra.
Segundo: cuando se hace en la interrupcion una secuencia te puedes salir de interrupcion con la contraria. Lo que no puedes es salir a la brava como lo haces ahi, si te sales asi dejas inhabilitadas las interrupciones, ya que no ejecutas el retfie, que es el que pone a 1 el bit GIE, por lo tanto los botones ya no te haran ningun caso.
AUTOBUS_HORIZONTAL:
CLRF PORTB ;LIMPIAMOS EL PUERTOB
CLRF PORTA ;LIMPIAMOS EL PUERTOA
BSF PORTB,1 ;SEMAFORO VERTICAL AMBAR ENCENDIDO
BSF PORTA,2 ;SEMÁFOROS HORIZONTAL VERDE
CALL RETARDO2 ;RETARDO DE 3 SEGUNDOS
BSF PORTB,2 ;SEMÁFOROS VERTICAL ROJO
BCF PORTA,2 ;SEMAFOROS VERTICAL AMBAR APAGADO
BSF PORTA,0 ;
BCF PORTB,1 ;
CALL RETARDO1 ;15 SEGUNDOS SEMÁFOROS X EN VERDE
BCF PORTA,0 ;SEMÁFOROS HORIZONTAL VERDE APAGADO
BSF PORTA,1 ;SEMÁFOROS HORIZONTAL EN AMBAR ENCENDIDO
CALL RETARDO2 ;3 SEGUNDOS
BCF PORTA,1 ;SEMÁFOROS HORIZONTAL AMBAR APAGADOS
BCF PORTB,2 ;SEMAFOROS VERTICAL ROJO APAGADOS
BSF PORTA,3 ;SEMAFORO VERTICAL VERDE ENCENDIDO
BSF PORTA,2 ;SEMAFORO HORIZONTAL ROJO ENCENDIDO
;BCF INTCON,RBIF
;GOTO COMBINACION2 ; si te sales asi no habilitas la interrupcion ; en vez de esto pon la secuencia contraria para que al salir ejecute la otra secuencia, saliendo a traves del Fin_ISR, solo pon el estado en que deben estar las luces para el otro sentido, como aqui es horizontal, ponlas para vertical,
Tercero: Cuando entra en interrupcion lo hace casi siempre en medio de una temporizacion, si esa temporizacion esta acabando, que le falte 2seg, por ejemplo, abrira el semaforo y a los 2 segundos lo cerrara, putearas un poco a los conductores
esto va a ser lo mas dificil de solucionar, a ver que solucion le damos.