Yo he programado algunos programas en C para PC para controlar micropprocesadores de la familia MC-51 y MC-52 y no tiene demasiada dificultat. Por el puerto serie utilizando el estandar rs-232 es muy facil ya que son simplemente registros para configurar la velocidad de transmisión, la paridad...Además lo he hecho en assembler de 8 bits y en C.
Entre estos dos lenguajes me quedo con C por facilidad. El envio de datos por ejemplo en assembler la variable para guardar, generalmente se llama Sbuf o S0buf segun las librerias mas generalizadas. En c hay dos variables la de recepción y envio llamadas THR y RBR (si manl no recuerdo era RBR xd).
En mi caso el PIC está escrito en ASM (ensamblador) y la interfaz en Visual C#. Ahora en el manual que estoy haciendo voy por la páginas 174. Aún me queda más y eso que no he mepezado con Mono C#.
Una cosa es que el PIC su programa este en assembler y otra cosa que el programa del PC este en C...Puede haber comunicación perfectamente entre un micro que su "programa esta en asm" con un programa en PC escrito en C y también en viceversa.
Por el titulo del post, imagino que el problema lo tienes en C de pc, no? o también tienes algun problema en el pic? Si es así pega aqui el codigo y le hechare una ojeada..ya que la programacion de micros y pics en assembler, para utilizar el puerto serie se han de configurar varios registros como la velocidad de transmissión,paridad..entre otras cosas.