Hola gbene!!
A estas alturas ya sabes que los max invierten la señal.. (mi sorry for decirte lo contrario hace unos días... las prisas son muy malas). Bueno, voy a ver si lo arreglo y puedo echarte una mano, además de la que te están echando los superexpertos amigotes.
Aunque digas que no sabes mucho de electrónica (mentirosoooo... ) seguro que sabes que normalmente, el protocolo de comunicación RS232 sobre el puerto COM funciona de forma que para un voltaje negativo envía un "1", y para un voltaje positivo envía un "0".
Podemos entonces mandar el max a freir espárragos, siempre y cuando adaptes voltajes entre TTL y el puerto serie. Podemos hacer que en condiciones normales de espera, la condición "alto" será para 0 voltios, y el bit inicial, cuando entre la alimentación, será "0", (+5V).
Sería bueno poner una resistencia en serie para limitar la corriente, y diodos para limitar el voltaje... Bueno, eso seguro que lo controlas, y además tienes a mano a Marmatar que maneja muy bien los subidones de corriente y voltaje y de lo que sea...

OJO: necesitas en total 8 ciclos de instrucciones para completar una transferecia!!
tienes que jugar con los "nop" y delays..
Vale, al grano, a ver que te parece estas rutinas
Primero debes declarar registros... por ejemplo:
txreg ;registra el byte que va a transmitir
rxreg ;registra el byte que recibe
char ;registra el carácter que se va a transmitir
bitcount ;contador de bits transmitidos
;RUTINA PARA TRANSMITIR
tx:
movwf txreg
comf txreg, f
movlw D"8"
movwf bitcount
bsf PORTB, 7
nop
nop
nop
nop
nop
txloop:
rrf txreg, f
rrf PORTB, f
nop
nop
decfsz bitcount, f
goto txloop
bcf PORTB, 7
nop
nop
nop
nop
return
;-----------------------------------------------------------------------;
;RUTINA PARA RECIBIR
rx: movlw 8
movwf bitcount
waitstart:
btfss PORTA, 0
goto waitstart
nop
nop
nop
nop
nop
receive:
nop
nop
rrf PORTA, f
rrf rxreg, f
decfsz bitcount, f
goto receive
comf rxreg, W
nop
nop
nop
nop
return
; Y AHORA UN BUCLE PRINCIPAL, por ejemplo
main:
call init ; aqui configuras los puertos... depende del
PIC que vayas a usar
; aquí pon además 1 segundo de delay, par estabilizar...
loop:
call rx
movwf char
incf char, f
movf char, W
call tx
incf char, f
movf char, W
call tx
incf char, f
movf char, W
call tx
goto loop
----------
Ya.... Si algo no entiendes del código dímelo, vale? A ver si te funciona y dejas de churruscar pics...

Besotes
Elena