Transmisión de datos vía serie


El programa de abajo ilustra la forma de enviar datos por la puerta serie del PC en lenguaje C.

#include <conio.h>
#include <stdio.h>
#include <bios.h>

int puerto,dato,envio,config,ultimo=0;

void main(void)
  {
  clrscr();
  printf("Ingrese puerto COM a usar: ");
  scanf("%d", &puerto);
  while(puerto<1 || puerto>4)
    {
    clrscr();
    printf("ERROR... Debe ingresar 1, 2, 3 o 4 !!!\n\n");
    printf("Ingrese puerto COM a usar: ");
    scanf("%d", &puerto);
    }

  puerto--;
  config=0x83;
  bioscom(0,config,puerto);

  do
    {
    clrscr();
    printf("Dato a enviar (ULTIMO: %d) --> ",ultimo);
    scanf("%d", &dato);
    while(dato<0 || dato>255)
      {
      printf("ERROR... Ingrese dato de 8 bits !!!\n\n!);
      printf("Dato a enviar (ULTIMO: %d) --> ",ultimo);
      scanf("%d", &dato);
      }
    envio=bioscom(1,dato,puerto);
    ultimo=dato;
    }while(1==1);
  }

Ya que el programa es verdaderamente reducido decidimos implementar un sistema de acumulación donde se almacena el último dato enviado así aparece en la línea de salida como referencia. La mayor cantidad de líneas son para interface y validación de datos. Con apenas tres líneas se configura el puerto mientras que basta sólo una sentencia para enviar los datos hacia el exterior.