Saludos!

Bueno no había visto la respuesta de dogflu, pero por aquí tienes este código... esta vez no utilizo contador, tal vez sea un poco rudimentaria la lógica pero por lo menos el código es más corto.
Lo simulé en proteus y va de lo lindo, allí te dejo el archivo con la simulación y el .bas y .hex para que lo pruebes.
SW var PORTB.0
motor_1 Var PORTB.1
motor_2 Var PORTB.2
loop: if SW==0 then
pause 100
while SW==0
HIGH motor_1
wend
else
goto loop
endif
LOW motor_1
evalua: if SW==0 then
pause 100
while SW==0
HIGH motor_2
wend
else
goto evalua
endif
LOW motor_2
goto loop
END
El switch está simulado por un pulsador NA, conectado de forma tal que al cerrarlo = GND. Lo coloqué así porque es la configuración que más uso, pero si deseas que al presionar sea = 1, entonces simplemente cambia donde dice SW==0 por SW==1...
Los motores están simulados por un par de leds azules.
Por cierto, usé PIC16F84A y frecuencia de trabajo 4MHz solo para probar... como sabrás eso también lo puedes cambiar.
Ok espero te ayude, nos leemos!

P.D. Como verás, esto lo hice con pic basic... tu pedías proton, pero es que no manejo ese compilador...

aunque creo que no te costará adaptarlo a proton...
