Hi  
 
 Mirá esta rutina es el transmisor: 
Si te fijas está el código para cambiar las diferente velocidades de TX hasta 38400 baudios, está seteada la velocidad de 2.400 baudios, el cristal del micro es de 10Mhz.
******************************************************************
saca_caracter
             ldx #9             ;Bits por caracter inculsive el INICIO
             clc                  ;Borra el carry para el bit de INICIO
saca_bit
             bcc saca_0         ;Si C=0 salta para sacar un 0
             bset 7,Puerto_D    ;Si no saca un 1
             bra otro_bit
saca_0
             bclr 7,Puerto_D
             bra otro_bit
otro_bit
             lda #baudios       ;Carga la velocidad para los Baudios
             jsr Tiempo_Bit       ;Llama al temporizador
             ror caracter       ;Rota para el siguiente bit (pasa por el CARRY)
             decx               ;Se decrementa la cuenta de bits
             bne saca_bit       ;Saca el bit siguiente
bit_stop
             lda #baudios       ;Valor para calcular los baudios
             lsra               ;divido /2 los baudios
             bset 7,Puerto_D
             jsr Tiempo_Bit
             rts
********************************************************************
baudios      equ $8F             ;2400 Baudios cristal de 9.8304 MHZ.
;baudios      equ $20             ;9600 Baudios cristal de 9.8304 MHZ.
;baudios      equ $0e             ;19200 Baudios cristal de 9.8304 MHZ.
;baudios      equ $05             ;38400 Baudios cristal de 9.8304 MHZ.
********************************************************************
* Rutina de demora, calcula el tiempo para la velocidad de comunicacion.
* En el acumulador viene el retardo
********************************************************************
Tiempo_Bit
        nop
        nop
        tsta
        deca
        bne Tiempo_Bit
        rts
********************************************************************
Y esta es la rutina del receptor:
En el receptor la cosa es como en el viejo PIC16F84 cuando recibias el bit de inicio a travez del RB0 o lo detectabas con una interrupción para luego leger uno a uno los bit´s que te llegaban, aca la cosa es parecida, en el modo captura del Timer uno se detecta el flanco de bajada del bit de inicio y lo demas es mas o menos lo mismo, leer bit a bit y rotarlos en un registro.
********************************************************************
;  Rutina de servicio de la interrupción del modo captura del timer.        
********************************************************************
Recibir
        clr caracter
        lda #baudios
        lsra        ;divido /2 los baudios
        jsr Tiempo_Bit
        brset 5,Puerto_D,sale
        lda #$9
        sta Bits
rx_otro
        sec                ;Pongo el carry a 1
        brset 5,Puerto_D,rotar_directamente
        clc                  ;Borrar el carry
rotar_directamente
        ror caracter
        lda #baudios
        jsr Tiempo_Bit  ;Espero el tiempo de un bit
        dec Bits
        bne rx_otro     ;Cuando Bits es 0 el Z se afecta
        brclr 5,Puerto_D,*
        mov caracter,Numero_1
        jsr BCD_ajuste
        jsr saca_caracter
sale
        bclr 7,TSC1
        rti
******************************************************************
 Saludos y suerte!!!!