Autor Tema: Comunicaciones SERIE RS232  (Leído 2501 veces)

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

Desconectado Xelene

  • PIC12
  • **
  • Mensajes: 81
Comunicaciones SERIE RS232
« en: 13 de Abril de 2005, 03:04:00 »
Holas!! Llevo dias mirando un poco las comunicaciones x el puerto RS232 y más o menos ya se como funcionan, ahora quiero probarlo fisicamente. He encontrado este ejemplo q os pego abajo y lo he modificado un poco para q me funcione,  pero no sé si me funciona bien, yo diría q no.

La parte q no entiendo es la del TERMINAL.EXE, tengo ese archivo y al abrirlo se abre una pantalla negra y se cierra y en la lcd de la placa no tengo cambios... no se, cual es el papel del TERMINAL.EXE mandar datos del pc a la placa no?? Tiene q ver q este preparado para otra placa distinta a la mia?

No se, en mi lcd solo aparecen barritas en cada posición...  y al dar al reset no obtengo cambios...

Alguna ayuda? O algun otro programa q pueda probar fisicamente?? Gracias

Codigo:
/*-------------------------------------------*
 |  EJEMPLO 3.7                              |
 |  Autor: Pedro Mª Jiménez                  |
 |  (c) Microsystems Engineering (Bilbao)    |
*-------------------------------------------*/

// Ejemplo para MicroPIC Trainer y Trainer PLUS

// Comunicación serie gestionada por software.

// Haciendo uso de las rutinas incluidas las librerias del compilador C, se trata
// de utilizar el canal RS232 de la Trainer PLUS para comunicar vía serie con
// diferentes periféricos. En los ejemplos aquí propuestos se utilizará un PC para
// que, con el software TERMINAL.EXE, actue como un simple terminal de comunicaciones.
// El usuario deberá preparar los cables de comunicación entre la Trainer PLUS y el
// PC, teniendo en cuenta de cruzar la señal de transmisión (TxD) con la de
// recepción (RxD) y viceversa.

// Este ejemplo es similar al anterior. Propone esperar a recibir un caracter desde
// el terminal para, inmediatamente, retransmitirlo al mismo a modo de ECO y
// visualizarlo sobre la pantalla LCD del MicroPIC Trainer.

#include <16f877.h>

#use delay(clock=4000000)
#use RS232(BAUD=9600, BITS=8, PARITY=N, XMIT=PIN_B4, RCV=PIN_B5, RESTART_WDT)

#use fast_io(A)
#use fast_io(B)
#include <lcd-picdem.c>

#byte port_a=5
#byte port_b=6

main()
{
  int x=1, y=1;
  char c;

  lcd_init();
 
  while(1)
  {
    // ATENCION:   Las funciones de gestión del LCD, reprograman
    // ---------   las puertas A y B según sea necesario, por lo
    //         antes de utilizar las funciones serie RS232 es
    //         necesario reprogramar las lines TxD y RxD.

    port_b =   0b00010000;   // TxD a "1". Inactiva.
    set_tris_b(0b00100000);  // PIN_B4 = Salida(TxD), PIN_B5 = Entrada(RxD)
    c = getc();   
    putc(c);

    lcd_gotoxy(x,y);
    lcd_putc(c);
    x++;
    if(x>16)
    {
      x=1; y++;
      if(y>2)
        y=1;
    }
  }
}

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Comunicaciones SERIE RS232
« Respuesta #1 en: 13 de Abril de 2005, 10:08:00 »
Ese programa en uno de los muchos que hay para comunicar via serie el PC con dispositivos externos, un PIC en este caso.

No vale la pena que lo utilices, usa el Hyperterminal de Windows, es mejor.

Debes asegurarte de establecer las mismas condiciones de transmisión en el PC y en el PIC, es decir que si en el PIC tienes BAUD=9600, BITS=8, PARITY=N en el programa hyperterminal debes configurarlo también así.

En el programa que tienes al pulsar un caracter en el hyperterminal, lo recibe el PIC y este lo representa en la LCD y además lo vuelve a transmitir al PC a modo de "eco".

Un saludo

Desconectado Xelene

  • PIC12
  • **
  • Mensajes: 81
RE: Comunicaciones SERIE RS232
« Respuesta #2 en: 13 de Abril de 2005, 11:23:00 »
Gracias x tu ayuda Pocher, la verdad es q no sabia ni q existia el hyperterminal este... Flash

He hecho lo q me has dicho (creo q bien). Pero no consigo escribir nada en la pantalla del hyperterminal... y luego otra dudilla y es q me pregunta todo el rato x acceso telefonico... eso cancelo, no? No se, simplemente me he limitado a crear una conexion nueva y meter los datos tal y como los tengo en el codigo para el pic... lo demás lo he dejado como esta. :S

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Comunicaciones SERIE RS232
« Respuesta #3 en: 13 de Abril de 2005, 12:36:00 »
Acuerdate que el cable Trainer-PC debe ser cruzado (por si acaso te lo digo), no vale un cable directo RS232.

Asegurate de conectar el cable en el COM elegido en el hyperterminal.

Control de flujo: ninguno, Paridad: ninguna, 9600, datos: 8, bits parada: 1

Aceptas y ya puees mandar caracteres (se conecta solo).

Un saludo y revisa lo del cable.

Desconectado cereal2

  • PIC10
  • *
  • Mensajes: 26
RE: Comunicaciones SERIE RS232
« Respuesta #4 en: 13 de Abril de 2005, 12:45:00 »
Hola porcher, ya también estaba mirando para la conexión de PIC-PC. Eso del cable de serie cruzado...como debería ser pues? Se puede pedir en una tienda un cable cruzado o puedo hacer yo mismo fácilmente, pero necesitaria un esquema.

Gracias.


 

anything