Dados seriais recebidos do PC e exibidos em LCD 16×2 usando a porta UART do microcontrolador 8051(89c51,89c52)

Datos seriales recibidos desde la PC y mostrados en una pantalla LCD de 16×2 usando el puerto UART del microcontrolador 8051 (89c51,89c52)

En este post explicaré cómo recibir datos seriales desde tu PC y mostrarlos en una pantalla LCD de 16×2 usando el puerto UART del microcontrolador 89c51. Los componentes de hardware del proyecto incluyen max232 (convertidor/cambiador de nivel TTL a RS232), microcontrolador 8051 (89c51,89c52) y pantalla LCD de 16 × 2. En el lado del software, estoy usando el terminal Hyper. Hyper terminal es un programa a través del cual es posible transmitir y recibir datos en serie utilizando los puertos serie de una computadora personal (PC). La PC estándar tiene dos puertos serie, db-9 y db-25. Normalmente conectamos nuestras impresoras, máquinas de fax, ratones y joysticks a estos puertos serie.
A continuación se muestra el diagrama de bloques de la transferencia de datos entre el puerto UART del microcontrolador 89c51 y la computadora personal.

Transferencia de datos en serie del microcontrolador 8051 entre la PC y el puerto UART 89C51

Transferencia de datos en serie del microcontrolador 8051 entre la PC y el puerto UART 89C51

Convertidor de nivel Max232

El microcontrolador 8051 funciona con lógica TTL y las computadoras personales funcionan con lógica rs232. Para la comunicación entre los dos módulos, los datos deben estar en la misma lógica portadora. Por lo tanto, se utiliza un cambiador de nivel como max232. Que transforma datos de una lógica a otra antes de enviarlos al receptor. Para obtener más información sobre el transceptor max232, su configuración de pines, funcionamiento y requisitos de energía, siga el tutorial a continuación.

Configuración y funcionamiento del Max232

Microcontrolador UART 8051(89c51,89c52)

El microcontrolador Uart 89c51 se utiliza para recibir datos desde la PC. También puede utilizar cualquier otro microcontrolador de la serie 8051, como el microcontrolador 89c52. Pero primero asegúrese de que tenga UART (transmisor receptor asíncrono universal) incorporado para comunicación en serie.

El puerto 1 de nuestro microcontrolador se utiliza como puerto de salida. Está conectado a los pines de datos del LCD de 16×2.

  • El pin #5 del puerto 3 está conectado al pin rs (selección de registro) de la pantalla LCD de 16×2.
  • El pin n.º 6 del puerto 3 está conectado al pin en (habilitar) de la pantalla LCD de 16×2.
  • El pin 7 del puerto 3 está conectado al pin rw (lectura y escritura) del LCD 16×2.

Si no sabe cómo conectar la pantalla LCD con el microcontrolador 8051 (89c51,89c52), aquí tiene algunos buenos tutoriales, simplemente revíselos.

  • LCD 16×2 FUNCIONANDO.
  • DIFERENCIA ENTRE COMANDOS Y ENVÍO DE DATOS A LCD.
  • MOSTRAR SU NOMBRE EN LA LCD usando el MICROCONTROLADOR 8051.

datos en serie recibidos desde el hiperterminal de la PC y mostrados en la pantalla LCD usando el microcontrolador 8051 (89c51,89c52)

datos en serie recibidos desde el hiperterminal de la PC y mostrados en la pantalla LCD usando el microcontrolador 8051 (89c51,89c52)

Código de proyecto

En la función principal, primero llamé a la función lcdinit para inicializar el lcd de 16×2. Todos los comandos utilizados en la función se analizan en profundidad en los tutoriales anteriores. Luego se configura el modo de temporizador. TMOD=0x02 significa que está seleccionado Temporizador1, Modo2 (recarga automática de 8 bits). TH1=0xFD es en realidad un temporizador de un byte alto, proporcionar un valor hexadecimal 0xFD a TH1 significa configurar la velocidad en baudios de comunicación entre el microcontrolador 8051 y la PC a 9600 bps (bits por segundo). SCON=0x50 en realidad define nuestro formato de bits de datos en serie Total = 8 bits de datos con 1 bit de inicio y 1 bit de parada. TR1=1 significa ejecutar el temporizador uno. Todo este fenómeno con el significado completo de las declaraciones (SCON,TMOD,TH) se analiza en los dos tutoriales siguientes. También se analiza cómo calcular los valores de velocidad en baudios.

  • CÓMO ENVIAR DATOS SERIE A PC (Hyperterminal).
  • 8051(89c51) REGISTROS DEL TEMPORIZADOR.

while(RI==0) está comprobando continuamente el indicador RI (interrupción de recepción). Este indicador se convierte automáticamente en uno cuando 8051(89c51,89c52) recibe cualquier dato en su pin RXD( P3^0 ). Cuando RI se convierte en 1, significa que tenemos un byte de datos en nuestro registro SBUF (búfer serie). Luego, en la siguiente instrucción, tomé el byte del registro SBUF y lo guardé en datos de variables de caracteres. Luego dejé el indicador RI bajo nuevamente para recibir el siguiente byte. El Byte que guardé en la variable de datos ahora se envía a la función de visualización para que se muestre en la pantalla LCD de 16×2.

Descargue los archivos del proyecto y el código (Hex, c++) compilado usando el compilador keil uvision 4. Si siente algún problema en el código o no comprende alguna instrucción del código, simplemente escriba sus preguntas a continuación. El código está probado por hardware y está libre de errores. << />iv>
Datos seriales recibidos de la PC

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.