Saludos a todos loq ue estan aqui en el foro:
mi asunto es el siguiente estoy haciendo un proyecto de invernadero en el que necesito la comunacion serie asincrona del pic17f877a, dese transmitir y recibir hacia una pc. ya he logrado transmitir datos desde el PIC hacia la PC los h podido manejar a mi gusto.
Pero no he podido recibir datos de la PC al PIC, bueno si los recibo solo que mal, por ejemplo si mando una 'a' desde el hyperterminal no sale el dodigo ascci de dicha ´'a' que es un (65h), si no u sal oo numo como un 124h algo asi, otro problema es que si mando otra letra el programa como que se traba y tengo que resetear el pic para que buelva a recibir. si me pueden ayudar se los agradeceria.
bueno les mando el programa para que me digan cual es el problema:
la comunicaionn es a 300 baudios con un crital de 4mHz estoy utilizando el max232 y la transmicion funciona pérfectamente solo
la recepcion no.
;***********************************************************
list p=16f877A
#include<p16f877A.inc>
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _LVP_OFF & _XT_OSC
org 0x00
nop
nop
bsf STATUS,RP0 ;Ir banco 1
bcf STATUS,RP1
clrf TRISA ;PORTA salida
clrf TRISB ;PORTB salida
clrf TRISC ;PORTC salida
clrf TRISD ;PORTD salida
clrf TRISE
bsf TRISC,7 ;RC7/Rx entrada, pin de recepción
movlw d'207' ;300 baud rate Xtal=4Mhz
movwf SPBRG
bcf TXSTA,BRGH ;Selección de baja velocidad
bcf TXSTA,SYNC ;Modo asíncrono
bcf STATUS,RP0 ;Ir banco 0
bcf STATUS,RP1
bsf RCSTA,SPEN ;habilita el puerto serie
bcf RCSTA,RX9 ;8 Bits de datos
bsf RCSTA,CREN ;Para Rx Continuo
_espera
btfss PIR1,RCIF ;Pregunta si el buffer de RX es full
goto _espera ;No, ir _espera
movf RCREG,W ;Si, W=RCREG y pone a cero el RCIF
movwf PORTB
goto _espera
end