top of page
  • Black Facebook Icon
  • Black Instagram Icon
  • Black Twitter Icon

UART-COMUNICACIÓN SERIAL RS232

  • Foto del escritor: Guillermo Angulo Niquen
    Guillermo Angulo Niquen
  • 20 may 2017
  • 2 Min. de lectura

Wikipedia indica que el UART, proviene de las siglas en inglés de Universal Asynchronous Receiver-Transmitter, en español: Transmisor-Receptor Asíncrono Universal, es el dispositivo que controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo. Es.wikipedia.org. (2017). Universal Asynchronous Receiver-Transmitter. [online] Available at: https://es.wikipedia.org/wiki/Universal_Asynchronous_Receiver-Transmitter [Accessed 20 May 2017].

IMAGEN 1 - Simulación en proteus.

Nos hemos trazado el objetivo de incorporar a nuestro sistema microcontrolador, LCD 16x2. un sistema de comunicación lineal con el modulo UART RS232.

IMAGEN 2 - MODULO DE COMUNICACIÓN MAX 232 .

Estos módulos permiten que el Microcontrolador se comunique con los ordenadores mediante una envió de información serial, ademas para la transmisión de datos utilizamos un cable USB y DB9 para conectar el modulo y el computador.

/*

IMAGEN 3- MODULO DE COMUNICACIÓN MAX 232 .

* File: main.c * Author: GUILLERMO ANGULO NIQUEN *CURSO DE MICROCONTROLADORES PIC 18F - MICROTECSD * Created on 19 de abril de 2017, 22:15 */

#include <xc.h> #include <stdio.h> #include <stdlib.h> #include <plib/usart.h> #include "CONFIGURE.h" #include "DELAY.h" #include "lcd.h"

#define EAUSART_V4 //Le especifica al compilador la versión de las funciones del mosdulo USART que se deben declarar. //Esto lo debería hacer el compilador automaticamente pero debe haber un error y no lo hace. char CaracterRx; char MensajeTx[] = "Por favor digite una tecla: "; void main(void) { unsigned int a; TRISD = 0x00; Lcd_Init(); MsDelay(2000); // UN TIEMPO DE ESPERA. Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Write_String(" MICROTECSD"); Lcd_Set_Cursor(2,1); Lcd_Write_String("USART PIC18F4550"); MsDelay(2000); // UN TIEMPO DE ESPERA. MsDelay(2000); // UN TIEMPO DE ESPERA. for(a=0;a<15;a++) { MsDelay(1000); // UN TIEMPO DE ESPERA. Lcd_Shift_Left(); }

for(a=0;a<15;a++) { MsDelay(1000); // UN TIEMPO DE ESPERA. Lcd_Shift_Right(); } MsDelay(2000); // UN TIEMPO DE ESPERA OpenUSART(USART_TX_INT_OFF & USART_RX_INT_ON & //Activar la interrupcion por la recepcion de dato del buffer de Rx del USART USART_ASYNCH_MODE & //Modo asincrono (fullduplex) USART_EIGHT_BIT & //8 bits de datos USART_CONT_RX & //Recepción continua USART_BRGH_HIGH, 129); //9600 Baudios INTCONbits.PEIE = 1; //Activamos interrupcion de perifericos INTCONbits.GIE = 1; //Activamos las interrupciones globales

while(BusyUSART()); //Se espera a que el buffer de Tx este libre putsUSART(MensajeTx); //Se envía un string while(1); //Bucle infinito }

void interrupt Interrupcion() //Funcion que atiende las interrupciones { volatile int Data = ReadUSART(); //Se lee el dato que esta en el buffer de Rx del USART while(BusyUSART()); // putsUSART("\n\rUsted digito la tecla: "); while(BusyUSART()); WriteUSART(Data); Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Write_String("Usted a Digitado"); Lcd_Set_Cursor(2,8); Lcd_Write_Char(Data); MsDelay(2000); // UN TIEMPO DE ESPERA PIR1bits.RCIF = 0; //Desactivamos la bandera de recepción en el buffer de entrada del USART }

El presente código tiene como finalidad enviar un mensaje de presentación, realizar unos desplazamiento (I-D) e inmediatamente enviar un mensaje que le solicite al usuario un dígito, inmediatamente el usuario va ingresar este dato mediante su ordenador el cual sera transmitido y recibido por el Microcontrolador y finalmente mostrado en el LCD, con el objetivo de demostrar la existencia de una comuncacion.

Vídeo 1 - COMUNICACIÓN MAX 232 + LCD´s 16x2+ PIC .

Finalmente podéis descargar el archivo en el siguiente link:

https://www.dropbox.com/s/7hn6cani0oud0rw/USART1.X.zip?dl=0

O escríbenos a Tecnologia3dtec@gmail.com

Gracias por su atención, pronto tendremos mucho mas.


 
 
 

Entradas recientes

Ver todo
DESPLAZAMIENTO DE BIT

El presente programa tiene como finalidad el desplazamiento de un bit que esta en una variable de 8 bits que se mostrara en un puerto B,...

 
 
 

댓글


About Me.

I'm a paragraph. Click here to add your own text and edit me. I’m a great place for you to tell a story and let your users know a little more about you.

  • Black Facebook Icon
  • Black Instagram Icon
  • Black Twitter Icon
Never Miss a Post!

GUILLERMO ANGULO NIQUEN

INGENIERO MECATRONICO DE LA UNIVERSIDAD TECNOLOGICA UTP

CON SOLIDOS CONOCIMIENTOS EN ROBOTICA, DOMOTICA Y AUTOMATIZACION 

INDUSTRIAL.

MEDIANTE ESTE BLOG BUSCAMOS FOMENTAR EL USO DE LAS NUEVAS TECNOLOGÍAS PARA INTEGRARLO EN NUESTRAS VIDAS.

  • Grey Facebook Icon
  • Grey Instagram Icon
  • Grey Twitter Icon

© 2023 by Extreme Blog. Proudly created with Wix.com

bottom of page