A mi me corre creo que bien en el MPLAB, pero esa temporizacion que te di es de 196 ms para un semaforo es muy pequeña, la que te pongo a continuacion es de 50 seg, ya te dije en el otro post que con dos bucles a 4Mz no se podia hacer mas grande, esta con tres bucles ya da 50 seg, casi 1 minuto ya empieza a parecer un semaforo,
si le pones otro bucle y donde van lo 255 le pones un 5 te va a dar casi 5 min. Todos van a encender el mismo tiempo?, porque el ambar tendra tiempos diferentes no?, entonces habra que hacer varias temporizaciones e ir llamandolas.
DELAY movlw .255 ; cargamos 255 en W
movwf contador1 ; o cargamos en contador1
REPITE1
movlw .255 ; cargamos 255 en W
movwf contador2 ; o cargamos en contador2
REPITE2
movlw .255
movwf contador3
REPITE3
decfsz contador3,1 ; Decrementa Contador2 e se essale.-
goto REPITE3
decfsz contador2,1 ; Decrementa Contador1 e se e 0 sae
goto REPITE2
decfsz contador1,1
goto REPITE1 ; Se non e cero repetimos ciclo.-
return ; retorna da subrutina.-
end