La función printf()
puede ser útil para darnos información textual de lo que está haciendo un programa en C.
En un microcontrolador suele ser sencillo conseguir que dicha función printf()
sea empleada para mostrar texto en un determinado dispositivo de salida. El objetivo del módulo que se presenta aquí es, precisamente, conseguir que el equipo de prácticas de Mikroe muestre el texto que genere el microcontrolador en el PC.
El módulo usa el canal serie compatible RS-232 del microcontrolador para enviar texto al PC. Para ello se deberá hacer una conexión física entre las dos partes y que se ilustra a continuación.
En el PC se tendrá que utilizar un programa "emulador de terminal" para ver el texto. La siguiente imagen muestra un ejemplo de texto enviado por el 8051 de la placa.
La programación de estas características en el microcontrolador y en el PC se dejan para las asignaturas de tercer curso Diseño de Sistemas Informáticos Industriales y Periféricos e Interfaces Industriales respectivamente.
En esta misma web y en el libro hay detalles de cómo se programan estas características en el micro y qué hardware montar.
Descargar el módulo printserie.
Para que el programa para el microcontrolador pueda hacer lo propuesto en la introducción se deben seguir los siguientes pasos:
descargar el módulo.
descomprimirlo en el directorio del proyecto.
añadir el módulo printserie.c
llamar a la funcin printserie_inicializar()
en el módulo principal de nuestro programa
A continuación tienes un ejemplo de programa que usa el módulo.
#include <stdio.h> #include "printserie.h" void main (void) { unsigned int contador; printserie_inicializar(); /* preparar el canal serie */ printf("¡Hola, mundo 8051!\n"); for(contador=0; contador<10;contador++) { printf ("contador vale %d\n",contador); } printf("He estado contado y ahora me quedo en un bucle infinito.\n"); while(1) {}; /* bucle infinito */ }
Para ver el texto que saca la función printf()
hay que emplear un "emulador de terminal" (eso se estudia en tercero). Hay que hacerlo de la siguiente manera:
En la placa Mikroe verificar que el SW1-7 est hacia la etiqueta "TX".
Conectar un cable serie DB-9 del conector DB-9 de la placa Mikroe al conector DB-9 ¡MACHO! del PC (COM1 en el laboratorio).
Arrancar el programa Hyperterminal (es malsimo, pero viene con Windows) que está en Incio->Programas->Accesorios->Comunicaciones
Configurar Hyperterminal con conexión a COM1, 4800 baudios, 8 bits, sin paridad, un bit de stop y sin control de flujo. Ver la siguiente imagen
Con el simulador incorporado en el Keil se puede usar también este módulo.
Cuando se ejecuta el programa en el simulador, se abrirá automáticamente una ventana con el texto que se envía al canal serie. Si no saliese la ventana ir a View->Serial console #1.
Suerte.