Red de conocimientos turísticos - Conocimientos sobre calendario chino - Problemas de comunicación serial entre el microcontrolador y la PC

Problemas de comunicación serial entre el microcontrolador y la PC

Enseñarle cómo utilizar la placa experimental 51 mejorada para lograr la comunicación en serie RS232 "Producción electrónica" Agosto de 2006, creación original del webmaster, indique la fuente si necesita citar

En el número anterior, Hemos utilizado la placa experimental 51 mejorada para aprender a controlar la rotación de un motor paso a paso. En este número, aprenderemos a comunicarnos con un microcontrolador de PC uno por uno. Para completar un ejemplo simple de comunicación RS232, no explicaremos demasiada teoría a partir del ejemplo, creo que puede tener una comprensión más general y profunda, dominar sus principios y luego podrá programar cualquier programa. Comunicación con ordenador.

En los números anteriores, aprendimos e introdujimos la forma independiente, es decir, todas las funciones se pueden implementar en una placa experimental mejorada con 51. Cuando la tecnología de microcontroladores se aplica específicamente a fábricas, empresas y diversos campos industriales y civiles, se debe configurar la transmisión de datos con el exterior. Su interactividad también hace que la aplicación de microcontroladores se pueda utilizar para transmitir datos y controlar. comandos, etc Por lo tanto, la comunicación entre el microcontrolador y la PC es una parte esencial para que aprendamos la tecnología del microcontrolador, lo que hace que nuestro aprendizaje sea más interesante.

Completemos un experimento en el que un microcontrolador recibe datos de una PC a través de un puerto serie y los muestra en un tubo digital.

Primero, introduzcamos los conocimientos básicos de la comunicación serie. Actualmente, los puertos serie más utilizados incluyen el puerto serie de 9 pines (DB9) y el puerto serie de 25 pines (DB25). La más simple y más utilizada es la conexión de tres cables, es decir, los tres pines de conexión a tierra, recepción de datos y envío de datos están conectados. Este artículo solo cubre el método de conexión más básico y está conectado directamente a RS232. La definición del pin del puerto serie se muestra en la Figura 1.

Puerto serie de 9 pines (DB9) Puerto serie de 25 pines (DB25)

Número de pin

Función

Abreviatura

Número de PIN

Función

Abreviatura

1

Detección de portador de datos

DCD

8

Detección de soporte de datos

DCD

2

Recibir datos

RXD

3

Recibir datos

RXD

3

Enviar datos

TXD

2

Enviar datos

TXD

4

Terminal de datos listo

p>

DTR

20

Terminal de datos listo

DTR

20

DTR listo Listo

DTR

5

Tierra de señal

GND

7

Tierra de señal

GND

6

Dispositivo de datos listo

DSR

6

Datos listo

DSR

7

Solicitud de envío

RTS

4

Solicitud de envío

RTS

8

Borrar para enviar

CTS

5

Borrar para enviar

CTS

9

Indicación de timbre

DELL

22

Indicador de anillo

DELL

Figura.

1 Diagrama esquemático de los pines de señal comunes de DB9 y DB25

Echemos un vistazo al diagrama de circuito de este experimento, como se muestra en la Figura 2, es decir, la placa experimental 51 mejorada realiza comunicación en serie y digital. parte del circuito de visualización del tubo. Los cuatro transistores de la Figura 2 están conectados respectivamente a los cuatro tubos digitales **** positivos. Son los terminales de habilitación de cada tubo digital y pasan por P2.0, P2.1, P2.2 y P2.3 del. microcontrolador respectivamente. Para controlar la pantalla del tubo digital, hemos introducido el principio de funcionamiento detallado en números anteriores de la revista. Los amigos que estén interesados ​​pueden consultar el contenido de números anteriores. El chip MAX232 en la Figura 2 desempeña el papel de conversión de nivel RS232 y TTL. Estamos conectados a la PC a través de un puerto serie de 9 núcleos.

Figura 2 Esquema del circuito de hardware

El siguiente es el código fuente que utilizamos para completar este experimento. Utilice el software de compilación Keil para compilarlo y generar un archivo HEX, y luego use el A51. Programador Se puede grabar en el chip AT89S51.

#include "reg51.h"

#include lt;absacc.hgt;

pestaña de código de caracteres sin firmar[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80.0x90};

dat de caracteres sin firmar;

void Init_Com(void)

{

TMOD = 0x20; // El temporizador funciona en modo 2 y el valor inicial se carga automáticamente

PCON = 0x00; // La velocidad en baudios no se multiplica

SCON = 0x50; /Configuración del modo serie

TH1 = 0xFd; //El valor inicial del temporizador es alto

TL1 = 0xFd; //El valor inicial del temporizador es bajo

TR1 = 1; //Iniciar temporizador

}

Función: programa de retardo del tubo digital LED

retraso vacío(void)

{

int k;

for(k=0;klt;600;k);

}

/* función Función: programa de visualización de tubo digital LED*

pantalla vacía(int k)

{

P2=0xfe; p>

P0=tab[k/1000]; //mostrar mil dígitos

delay(); //retraso

P2=0xfd; //selección de bits

p>

P0=tab[k1000/100]; //mostrar cien dígitos

retraso(); //retraso

P2=0xfb; p>

P0=tab[k100/10]; //reproducir diez dígitos

delay(); //retraso

P2=0xf7; //selección de bits

p>

P0=tab[k10]; //mostrar un solo dígito <

retraso(); //retraso

P2=0xff; //selección de bits

}

/*Función función: programa principal*

void main()

{

P2=0xff; //Inicialización del puerto, apaga la pantalla LED

P0= 0xff;

Init_Com(); //Llama al programa de inicialización del puerto serie

while(1 ) //Bucle principal

{

if (RI) //Determinar si se reciben datos

{

dat = SBUF; //recibir datos

RI = 0; // Bit de marca de borrado del software

}

display(dat-48); //mostrar datos recibidos

RI = 0; p>

}

}

Analicemos juntos el código del programa. El programa principal primero genera todos los puertos P2 y P0 en el nivel alto, es decir, "P2. " y "P0".

es decir, la canalización de datos no muestra nada, la función Init_Com se usa para inicializar la configuración del puerto serie, como la configuración de velocidad en baudios, configuración del modo de trabajo, etc., todas estas son configuraciones de inicialización cuando el programa se está ejecutando. A continuación, vimos una declaración while (1). La función de esta declaración es crear un bucle infinito. Es decir, después de encender y reiniciar el microcontrolador, continuamos recibiendo los datos en serie enviados por la PC. tiempo coloque los datos recibidos en En la variable dat, cada vez que recibamos datos, debemos ejecutar la instrucción RI = 0 para borrar el indicador de recepción de datos en serie. Ahora que hemos recibido los datos de la PC, la tarea restante es. para pasar El tubo digital muestra números. Debe haber leído nuestras introducciones anteriores y estar familiarizado con el uso de tubos digitales. Aquí, hemos escrito una función muy simple que muestra números a través de la función de visualización, porque lo que se recibe es el carácter ASCII. Por ejemplo, el valor "0" del código ASCII digital es 48, por lo que si queremos mostrar "0", debemos restar su valor 48 para mostrar los datos reales. 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90} declaración, su significado es equivalente a: el valor del código del segmento del tubo digital correspondiente al número "0" es "0xc0", y el valor del código del segmento del tubo digital correspondiente al El número "1" es "0xf9", el valor del código del segmento de tubo digital correspondiente al número "2" es "0xa4". ...y así sucesivamente, y finalmente muestra el valor de cada tubo digital a través del terminal de habilitación del tubo digital. En este punto, las funciones de todo el programa se han realizado fácilmente. Después de ver esto, creo que ya no todos son tan profundos en la comunicación en serie como pensaban originalmente.

Ahora que hemos escrito el programa y lo hemos grabado en el chip del microcontrolador, lo que tenemos que hacer a continuación es usar el cable serie para conectar la placa experimental mejorada 51 a la PC, y al mismo tiempo Encienda la fuente de alimentación en la placa experimental. Luego, los datos se envían al puerto serie de la PC a través del software en la PC. Al enviar datos al puerto serie, debe usar el software correspondiente y abrir el CD con la serie. Software de depuración de puertos. Esta es una configuración de interfaz conveniente, flexible, simple y clara. Interfaz cómoda, flexible, sencilla y clara. Debido a que necesitamos decirle al tablero del experimento qué números mostrar, la función del programa es enviar "1", "2", "3"..."8", "9", "0" y otros caracteres a Mejore el tablero de experimentos 51. Los datos recibidos se muestran a través del tubo digital, por lo que debemos completar el área que necesitamos enviar en el software, como se muestra en la Figura 3. Envíe el número, como se muestra en la Figura 3.

Figura 3

Software de depuración del puerto serie, configure los parámetros de la siguiente manera: puerto serie: COM1; velocidad en baudios: 9600; bit de paridad: ninguno; bit de parada: 1; ;Enviar contenido: 5

Cuando hacemos clic en el botón "Enviar manualmente", podemos ver que el tubo digital en el tablero experimental 51 mejorado ha mostrado el número "5", como se muestra en la Figura 4. Por supuesto, también podemos elegir "envío automático", es decir, el software envía automáticamente los datos en el "búfer de envío" cada cierto tiempo. El período de tiempo se puede configurar en la interfaz del software.

Figura 4

Ahora, puede recibir datos libremente desde la PC. Simplemente use su imaginación y defina el protocolo de comunicación de datos entre la PC y el microcontrolador. Puede crear cualquier programa y. controle el microcontrolador a través de la computadora para realizar diversas funciones de transmisión de datos y control remoto, como controlar la pantalla LCD a través de la PC, controlar la rotación del motor paso a paso, controlar el zumbador para reproducir música, etc. También puede conectar el conocimiento adquirido en este número con el conocimiento de números anteriores para completar ejemplos de aplicaciones más específicas con más funcionalidad. Por lo tanto, al final de este período de estudio, ya podemos conectar el microcontrolador y la PC. Con las potentes y flexibles funciones de la PC, nos resulta conveniente resolver diversos problemas prácticos de producción y aplicación. Presentaremos el contenido de este número aquí. Presentaremos más contenido de aprendizaje sobre el Tablero Experimental Enhanced 51 en los próximos números. Les deseo todo lo mejor en sus estudios.

Consulte: /dpj_step/rs232.asp.

tml>