Tal cual lo dice bruno, a no confundir TRIS que es una instrucción de ASM con la instrucción set_tris propia de lenguaje C. Vayamos por partes dijo Jack:
La instrucción set_tris en el lenguaje de CCS permite configurar mediante el registro TRIS a un puerto como una serie de entradas y salidas. En general el uso de set_tris en CCS no es necesario, porque el mismo compilador configura por si mismo los registros TRIS del PIC antes de iniciar una operación de entrada o salida.
Entonces, porque se sigue utilizando set_tris si el compilador configura los puertos por si mismo?? Para forzar un estado de un puerto independientemente y/o en un momento distinto a las operación de entrada o salida de datos, o bien porque estamos en el modo fast_io y entonces se desactiva el redireccionamiento automatico del compilador y hay que setear los registros TRISx manualmente mediante la instrucción set_tris.
Ahora bien, y esto tiene mucho de suposición, el error que se ve en proteus, puede darse en versiones antiguas del compilador donde el set_tris hacia el seteo del puerto mediante la instrucción TRIS (la de ASM), error que a medida que se fueron actualizando las versiones de CCS se fue eliminando pues yo tengo la ultima versión y cuando se ejecuta una instrucción set_tris se escribe directamente sobre el registro TRISX, pero nunca jamas se ejecuta la instrucción TRIS, por lo menos hasta ahora en todos los programas que he depurado eso no ha ocurrido.
Yo recomiendo que quites primero todos los set_tris del código (si estas en modo estandar o fijo) y si el error no aparece es que una de las instrucciónes con la que el compilador generaba el TRIS en ASM. Si con esto no ocurre nada, es porque el compilador esta produciendo la instrucción TRIS durante alguna de las asignaciones automaticas de direcciones de los puertos, cosa que he visto que ocurre. En realidad la forma mas eficaz de ver donde se genera el problema es simplemente observar el archivo .LST que te genera CSS hasta detectar la linea en la que se produce TRIS. Una vez encontrada esta linea reemplazarla por instrucciónes que escriban directamente sobre el registro TRISx. Creo que me enrolle bastante con la explicación, pero bueno.
Saludos.