# conexion pic con el pc por medio de rs232?



## mr_coral (May 10, 2006)

Como es el montaje para poder enviar y recibir datos desde el pic al pc y el pc al pic mediante el protocolo RS232.


----------



## kain589 (May 11, 2006)

necesitas un adaptador, uno muy usado es el max232, puedes mirar en el datasheet el esquema necesario


----------



## Chipcon (May 11, 2006)

Que tal podrias utilizar cualquier pic con uart correcto.
efectivamente un max 232 es lo ideal para conectar de pc a pic y de pic a pc

un ejemplo:
Utilizando el pic 16f877 existen 2 pines TX y RX
TX = RC6  y RX = RC7 

El dato de salida (TX) debe llegar a cualquiera de las 2 entradas de los buffers del max 
llamadas T1IN ó T2IN.

Ahora el dato de entrada(Rx) debe llegar de cualquiera de las 2 salidas de los buffers del max
llamadas R1OUT ó R2OUT

espero no confundirte mucho
lo que tienes que cuidar es la señal del puerto (TX) debe llegar al buffer R1IN ó R2IN del max 
y la señal del puerto (RX) debe salir del buffer T1OUT ó T2OUT del max


----------



## Nilfred (May 12, 2006)

El Maxim max232 te va a salir mas caro que el propio PIC.
Fijate en la página de www.pablin.com.ar hay una solución para conectar directamente el PIC con la PC


----------



## HIRHOSHY (May 12, 2006)

no se si es costoso o no el max232 en ciertos lugares, pero si se pueden reemplazar con transistores, en fin solo es transferencia de datos , nada del otro mundo, no encuentro la opcion de poder adjuntar el circuito , vere la forma de como lo tengan el circuito................saludos


----------



## mr_coral (Jun 1, 2006)

Muchas gracias a todos  por la información, voy a trabajar haber que resulta.

Saludos

MARIO


----------



## mikelzuru (Jun 4, 2006)

buenas yo estoy con el mismo problema de conectar un pic16f876, la cosa es que consigo mandar del pic al pc sin ningun problema, en el hyperterminal me aparece todo lo que he mandado, mi problema es al recibir. He configurado el pic para que cuando reciba un dato del pc salte una interrupcion, y en el vector de interrupcion he hecho que envie un caracter al pc, vamos que intento hacer un eco pero mandando un caracter cualkiera que ponga yo manualmente, no el que me mande el pc. La cosa es q cuando pongo el hyperterminal,  en la pantalla me recibe el caracter que deberia de mandar yo en el vector de interrupcion, es decir el caracter sale continuamente en pantalla, sin que yo le mande nada no deberia saltar la interrupcion uqe manda el caracter, pero por lo que parece es como si yo estuviera mandando algo constantemente. Aki va el codigo a ver si alguien puede decirme donde esta el fallo, seguramente estara en la configuracion pero yo no lo veo: 


```
;<<<<<<------------------- VECTOR DE INTERRUPCION -------------------->>>>>>>

      	ORG   04H      ;Vector de interrupcion

INTER	btfss   PIR1,RCIF   	;¿Interrupcion por recepcion?
      	goto   VOLVER      	;No. Falsa interrupcion
      	bcf      PIR1,RCIF      	;Si. Reponer Flag
	movlw   b'10000000'      ;Envia el caracter, valor binario 
      	movwf   TXREG      ; del codigo ascii
VOLVER	retfie

;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>

INICIO  clrf   PORTB      ;Limpia salidas
      clrf   PORTC 

	bsf   RCSTA,SPEN   ;se activa la USART
      bsf   STATUS,RP0   ;Cambio al banco 1 ------------------
      bcf   STATUS,RP1
      clrf	TRISA		;Puerta A como salida
      clrf   TRISB      ;Puerta B como salida
      movlw   80H       ;RC7/Rx entrada,
      movwf   TRISC     ;RC6/Tx   salida y RC5 Salida.
      movlw   04H   	;Configuracion USART
      movwf   TXSTA     ;y activacion de transmision
      movlw   .25      ;9600 baudios
      movwf   SPBRG
      bsf      PIE1,RCIE   	;Habilitacion interrupcion RX
      bcf      STATUS,RP0   	;Cambio al banco 0 -----------------
      ;clrf   PORTB      ;Limpia salidas
      ;clrf   PORTC
      bsf      RCSTA,SPEN   	;se activa la USART
      
      movlw   b'10010000' 	;Configuracion de la usart 
      movwf   RCSTA     ;para recepcion continua
      
      bsf   STATUS,RP0   ;Cambio al banco 1 -------------
      bcf   STATUS,RP1
      bsf   TXSTA,TXEN   ;Habilita la transmision 

      bcf   STATUS,RP0   ;Cambio al banco 0 ------------------
      movlw   0C0H   	;Habilitacion para las 
      movwf   INTCON    ;interrupciones generales

Bukle	goto Bukle
```

espero vuestra respuesta gracias, saludos


----------



## pame (Nov 13, 2007)

hola   

tengo un problema con este tipo de comunicación, yo hago que el pic me responda cada vez que envio un caracter pero cuando envio el quinto caracter se daña la comunicación entre la pc y el pic y tengo que resetear el circuito para que funcione otra vez

programo en pic basic y no se si el buffer del pic o del max232 se satura, que creen?


----------



## gabrielg (Nov 17, 2007)

Hola pame

Deberías colocar el circuito en el foro y el programa, estando programado en picbasic es bastante sencillo de analizar.

Podrías probar con el mikrobasic, que es tambien en basic y te permite conectarte a la PC. La direccion es: http://www.mikroe.com/en/compilers/mikrobasic/pic/

Espero te sirva. chau


----------



## pame (Nov 20, 2007)

muchas gracias por tu ayuda


----------



## josb86 (Nov 13, 2008)

gabrielg dijo:
			
		

> Hola pame
> 
> Deberías colocar el circuito en el foro y el programa, estando programado en picbasic es bastante sencillo de analizar.
> 
> ...




Que mas gabrielg, te cuento que estoy utilizando Microcode studio que trabaja con picbasic y necesito hacer una conexión serial entre un pic y un sensor que trabaja con 8N1 (bits ‐ parity ‐ # of stop bits). El problema es que basic tiene varias instrucciones por ejemplo HSERIN, SERIN, y SERIN2. no se cual de todas utilizar cual es u diferenci y para que se utiliza cada una. Otra cosa cuando se utiliza un comando de estos hay un pin especifico del pic que queda activado o uno escoge que pin es el de recepción y trasmisión?.


----------



## Moyano Jonathan (Nov 13, 2008)

La verdad no es por nada , pero no sería mucho mejor una emulación del puerto rs232 mediante usb con el pic18f2550,  ya que no se necesita hardware adicional , sino que hay que tener los conocimientos de programación para poder implementarlos. Yo estoy experimentando algo pero me falta un poco para que funcione al 100%


----------



## thamaphyr (May 3, 2010)

MOyano una preguntita, cuando usas por medio del micro 18f2550 que es el de usb  necesitas un max232 tambien?


----------



## FRYCK (May 5, 2010)

thamaphyr dijo:


> MOyano una preguntita, cuando usas por medio del micro 18f2550 que es el de usb  necesitas un max232 tambien?



hola *thamaphyr*  el max232 es un conversor de niveles TTL al bus standard rs232 y viceversa, para comunicación serie   ya  que  el  USB  usan niveles TTL esto no se necesita. 
saludos


----------

