Bienvenido al foro jossuez.
Los retardos ya los tienes hechos en el programa son, pdelay de 500 msg y demora de 1seg estan hechos con este programa.
http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=5968.0;attach=378Con este programa puedes hacer retardos del tiempo que quieras, en ese programa de los semafors lo que hace es repetir varias veces el pdelay haciendo repeticiones del mismo.
call pdelay
call pdelay
call pdelay
Como cada pdelay demora 500msg al hacerlo 3 veces demoras 1.5 seg y con 4 veces 2 seg. Asi que puedes hacer dos cosas, variar los retardos con ese programa que te pongo, o repetir mas veces el delay poniendo mas "call pdelay".Con la demora si quiers el doble de tiempo la puedes repetir tambien.
bcf PORTB,5 ;Apaga el rojo2
bsf PORTB,0 ;Enciende el rojo1
bsf PORTB,3 ;Enciende el verde2
call PDelay
call PDelay
call PDelay
call PDelay
Esto en un semaforo de verdad no creo que funcione, ponle por lo menos unos NOP intercalados
bcf PORTB,5
NOP
NOP
NOP
bsf POTRB,0
NOP
NOP
NOP
bsf portb,3
Asi puede funcionar aunque sigue sin ser muy correcto, pero no te voy a liar mas.
te aconsejo que le hagas caso a suky, en ese tutorial que te pone, te explica como aprender a hacer todo esto (ademas muy bien).
saludos desde Ferrol tapi8