He revisado los 2 circuitos, por partes:
Funciona: Creo que te funcionara pero el motor solo estará girando 0,5sg cuando se detecte si el interruptor esta cerrado. bajo mi punto de vista tampoco deberia de funcionar porque:
-Si sigues la secuencia de lo que has escrito en el programa,
1º lees el puerto,
2º colocas el motor parado,
3º compruebas si el interruptor fue pulsado, (aqui el problema, solo funcionará la simulacion si al poner la en marcha tienes ya el interruptor cerrado, en caso contrario lo mas probable es que no se ponga en marcha ya que a la velocidad que procesa el pic las instruciones no te dará tiempo a cerrar el interruptor antes de que pase por la secuencia de comprobar si fue pulsado),
4º si no esta cerrado NO vuelves a leer el puerto A, por lo que no se pondra en marcha nunca y si lo tenias cerrado en la simulacion y abres el interuptor No puedes ponerlo otra vez en marcha al no leer de nuevo el puerto A.
SOLUCCION: la flecha del NO de "bit RA0=1" debes llevarla tambien a la instruccion "switch=A" como la que regresa de los 500msg.
NO FUNCIONA: Pues ademas de lo expuesto para cuando dices FUNCIONA, debes de habilitar tambien como entrada el pin RA1.
Si te fijas lo tienes como salida "A=XXXSSSSE" debes de ponerlo como !a=XXXSSSEE"
F.