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;
}
}
}