Gracias por responder tan rápido y de forma tan minuciosa. Explique el drama a grandes rasgos para no aburrir al lector.
Efectivamente estoy usando un programa hecho en Visual Basic y la Hyperterminal. En ambos casos, ocurre que no llegan todos los caracteres. Revisaré lo que me mencionan con respecto al buffer de recepción.
Con respecto al registro TXREG, tengo claro que es el que transmite, pero de todos los cambios que hago y simulo en el Pic Simulator Ide, la Simulación funciona sin problemas, pero al grabarlo en el Pic y hacerlo funcionar no llegan todos los caracteres con los programas antes mencionados.
Lo extraño es que para transmitir hay que cargar un literal en el acumulador(W), según información del libro de Angulo, de la forma que aparece en las últimas 3 líneas de este extracto del programa, en el registro TXREG no aparece nada
Programa:
tx clrf portb
bsf status,rp0 ;Cambio al Banco 1
bcf status,rp1 ;Cambio al Banco 1
movlw 0x24 ;Configura USART y Activa
movwf txsta ;Transmisión
movlw .25 ;9600 Baudios
movwf spbrg
bsf txsta,txen ;Habilita la TX
bcf status,rp0 ;Cambio al Banco 0
bcf status,rp1 ;Cambio al Banco 0
bsf rcsta,spen ;Activa USART
movf 0x22,0 ;carga W con valor registro 0x21 a transmitir
movwf portb ;muestra el registro en el Puerto B
movwf txreg ;comienza TX
En estas tres últimas líneas, al simularlo, el registro TXREG, está vacío. En el registro 0x21 se va guardando el valor de los caracteres que se reciben para luego transmitirlo y cargarlo en el TXREG, pero como dije funciona cuando se le carga un literal, como aparece en las tres últimas líneas no funciona.
Hoy por la noche haré cambios nuevos en el programa, les cuento y mando el programa completo si no funciona.
Gracias : Tania_D y Huguen_aus_Tirol