Hola a todos de nuevo.
Ahora si que me van a tomar por loco, he conseguido que funcione pero el como y la razón realmente no lo tengo muy claro.Les cuento lo que he hecho a ver si alguien entiende realmente como se comporta el pic.
Después de probar una y mil cosas probé a mandarle antes de cada comando el numero de caracteres que tenia ( en todos los casos 3 caracteres) y además en vez de usar puts usé printf, de forma que realizaba lo siguiente:
printf(tres) //int tres=3 declarado arriba
printf("MDI") // por ejemplo
Y ahora viene lo curioso, en principio el comportamiento del pic era el de siempre, es decir me escribia el comando enviado detrás del anterior, por ejemplo si mandaba 5 veces "MDI" me salía: MDI MDI MDI MDI MDI MDI cuando yo solo pretendía que me saliera el último, bien pues después de enviar 20 comandos el comportamiento del pic era el deseado, es decir, solo me aparecia el ultimo comando, el caso es que lo probé varias veces y siempre era a partir del comando 20, de forma que la solución que adopte fue hacer un bucle "for" que me mandara 20 veces 3 caracteres vacios y funcionó!!(un poco chapuza la verdad pero funciona), no les resulta extraño??, por lo menos para mi lo es,a ver si a alguien se lo ocurre que puede estar pasando porque yo no tengo ni idea, también es verdad que mis conocimientos son bastante limitados, si les sirve de algo estoy usando un PIC16F876.
PD: Azicuetano tenía razón, cuando mandaba un comando desde el movil primero mandaba su longitud y luego el mensaje, a partir de ahí todo lo que les he contado....
Saludos y muchas gracias a todos.
Xaromar