Autor Tema: comunicacion serial PIC16f877  (Leído 1570 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kronocher

  • PIC10
  • *
  • Mensajes: 47
comunicacion serial PIC16f877
« en: 29 de Abril de 2006, 23:46:13 »
hola , tengo el siguiente codigo:

CONF_TX ;(subrutina para configuar el modulo TX)

 call BANCO_1
 bsf TXSTA,BRGH    ; VELOCIDAD ALTA PARA SPBRG 
 movlw d'70'       ; 64(70) PARA 9600 BAUDIO XTAL DE 10MHZ
 movwf SPBRG;
 bcf TXSTA,SYNC     ;
 bcf PIE1,TXIE      ; Habilitar/Deshabilitar interrupcion , asegurarse dek GIE y PIEIE de INTCON esten enableados
 bcf TXSTA,TX9      ; 1=9 bit , 0=8 bit
 bsf TXSTA,TXEN     ; habilita el TX, y se TXIF en 1 (registro vacio)
                    ;  si el 9 bit esta habilitado, se debe cargar en TX9D
 call BANCO_0
 bsf RCSTA, SPEN
 return
;*************************************************************************************************
TRANSMITIR ;
 call BANCO_1
TX_ESPERA_1
 btfss TXSTA,TRMT
 goto TX_ESPERA_1
 call BANCO_0
  return
;*************************************************************************************************
; programa principal

principal

 call CONF_TX

incio
 call BANCO_0
 movlw 'H'
 movwf TXREG
 call TRANSMITIR      
 movlw 'O'
 movwf TXREG
 call TRANSMITIR
goto incio
end

;-----------------------
el problema esta en que los datos se transmite bien hasta cierto momento , pero luego la Pc comienza a recibirlo los datos incorretamente e desordenado , por cierto el reloj es de 10 MHZ,
estoy creyendo que es por la velocidad del micro, como solamente se dedica a transmitir esos datos...
ayuda porfavor...

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: comunicacion serial PIC16f877
« Respuesta #1 en: 30 de Abril de 2006, 14:58:13 »
Hola kronocher  :-)

Creo que el problema radica en el numero que cargas al SPBRG, tienes que cargarle d'64', ya que con el d'70' el porcentaje de error se hace es mas grande y creo que alli radica el problema, pues la Pc no recibe los datos a una velocidad constante siempre  :mrgreen:.

SALUDOS DESDE MÉXICO :mrgreen:
« Última modificación: 30 de Abril de 2006, 17:29:35 por LabPIC »
¡¡¡Viva México cabrones!!!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: comunicacion serial PIC16f877
« Respuesta #2 en: 02 de Mayo de 2006, 18:00:06 »
kronocher  si el código es tal cual no funcionará , al menos no en ese orden.

Creo que te faltan algunas partes ¿puedes postearlo todo? Asi podremos ver donde te equivocas.

Lo que dice LabPic creo que es un muy buen consejo, para que usar otro baudeaje si el adecuado lo puedes lograr con 64d.  De todas formas no estoy seguro que ahí radique totalmente el problema porque el BaudRate Generator se reinicia con cada byte transmitido y debieras tener problemas constantemente, así que te sugiero nuevamente que postees el código completo.

Saludos


« Última modificación: 02 de Mayo de 2006, 18:01:51 por maunix »
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)