No lo dudo pana, eres TENAZ!! y eso es muy bueno, pero tu problema REAL, radica en que estas especificando RELOJ EXTERNO no interno(hberlo dicho antes pana) tu solucion NUEVAMENTE comprobada:
device=16f88
INTRC_IO=0X3FFC <-------- RELOJ INERNO, NO CRISTAL DE 8 EXTERNO!!
OSCTUNE=0X0090 <-------CALIBRACION
all_digital true
portb_pullups on
DIM X AS BYTE
DF:
"SERIN PORTB.2,396,[X]
"IF X="1" THEN
"HIGH PORTA.2
"SEROUT PORTB.5,396,["ON"]
"ENDIF
"IF X="0" THEN
"LOW PORTA.2
"clear portb.5
SEROUT PORTB.5,396,["OFF"]
delayms 1000
"ENDIF
"GOTO DF
end
Si no especificas que es interno, solo sale una j, otra cosa, ya que es inexacto(por TODAS las razones que te ponga cualquier persona) usa una velocidad de RECEPCION en tu pc mayor, es decir en este caso 4800 (ya que evias a 2400).
Pruebalo y me dices, esto puedes aun variarlo, leete el ds(por ahi hay otro registro OSCCON) en la seccion de calibrar el RC interno para variar el osctune, no se quizas no tengas ni que reducir la velocidad , claro solo es una idea
.(CONFIG INTRC_IO)
Un abrazo pana