You are on page 1of 9

SIMULACIN DEL MDULO USART

Para simular la comunicacin con el ordenador a travs del mdulo USART delmicrocontrolador, ISIS dispone de un instrumento excepcional llamado Terminal Virtual ( VirtualTerminal) . Para emplearlo se lo debe seleccionar de la lista de instrumentos haciendo clic en el iconode instrumentos virtuales . A continuacin conectar los terminales RXD <-> T2OUT y TXD <->R2IN (T2OUT y R2IN son pines del MAX232). Por ltimo, hacer doble clic sobre el Terminal Virtualy constatar que est configurado de acuerdo a los datos de la siguiente figura: Configuracin del Terminal Virtual Al ejecutar la simulacin se podr ver una ventana similar a la que se muestra en la siguientefigura, que representa la pantalla del ordenador. Para ingresar texto a travs del teclado del ordenadorse debe hacer clic en esta ventana para que aparezca el cursor parpadeante. Lo explicado se puedeverificar fcilmente con el problema resuelto USART_01.dsn

CMO PROGRAMAR EN LENGUAJE C LOS MICROCONTROLADORES PIC16F88, 16F628A Y 16F877A 137 Ing. Juan Ricardo Penagos Plazas 2010 www.programarpicenc.com Ventana del del Terminal Virtual (USART_01.dsn)

Introduccin al protocolo RS232


La comunicacin RS232 del PIC con el ordenador es de gran importancia y para esto se ha incorporado un mdulo con las caractersticas apropiadas para el intercambio de informacin. Este mdulo es conocido como USART (Universal Synchronous Asynchronous Receiver Transmitter) y se estudia en este captulo. El mdulo USART opera de acuerdo al protocolo RS232 que tambin es muy utilizado en las computadoras

personales. Este es uno de los dos mdulos serie E/S, tambin llamado Interfaz de Comunicacin Serie SCI. El mdulo USART puede configurarse como un sistema asincrnico full-dplex que puede comunicarse con dispositivos perifricos, tales como terminales CRT y computadoras personales, o puede configurarse como un sistema sincrnico half-dplex que puede comunicarse con otros dispositivos tales como conversores A/D y D/A, EEPROMs serie, etc. Los modos de operacin disponibles son los siguientes:

Asincrnico (full-dplex) Sincrnico-Maestro (half-dplex) Sincrnico-Esclavo (half-dplex)

Protocolo RS232
Este es un protocolo de comunicacin serie ampliamente difundido en las computadoras personales y empleado por los puertos COM del ordenador. El acceso fsico a estos puertos es a travs de un conector DB-25 o DB9, machos y hembras. La norma RS232 se estableci para comunicar un ordenador con un modem, por lo que en los conectores DB-25 aparecen muchos pines que en otras aplicaciones no se utilizan, y en las que es ms comn emplear el conector DB9. Cada uno de los terminales del conector RS232 tiene una funcin especificada por la norma. Unos pines transmiten y reciben datos, mientras que otros permiten el control de la comunicacin. En la tabla 10.1 se observan estos detalles (RS232 pinout).

Tabla 10.1 Funciones de los pines del conector RS232 DB9 Un dato a tener muy en cuenta es la velocidad de transmisin, que es la cantidad de informacin enviada por la lnea de transmisin en la unidad de tiempo. Se mide en Baudios y es proporcional a los Bits/segundo (bps). Las velocidades de transmisin normalizadas para los puertos COM son: 75, 150, 300, 600, 1200, 2400, 4800, 9600, etc. Baudios. Otra cuestin fundamental se refiere a los niveles de voltaje de la norma:

Los datos se transmiten con lgica negativa, es decir, un voltaje positivo representa 0, mientras que un voltaje negativo representa 1. El 0L se encuentra entre +3 y +15V. El 1L se encuentra entre -3 y -15V. Los voltajes ms usados son +12V para el 0L y -12V para el 1L. Cuando un puerto no est transmitiendo mantiene el terminal de transmisin en 1L (-12V).

Circuito integrado MAX232


Este IC es un estndar en la industria y se emplea como interfaz entre los niveles TTL y RS232 y requiere nicamente una fuente de +5V para su operacin. Para generar los niveles de +12V y -12V necesita 4 capacitores de 1,0 uF. Dispone de dos entradas TTL con salida RS232, as como dos entradas RS232 con salida TTL (figuras 10.1 y 10.2). Puede realizar la transferencia de datos a una velocidad mxima de 120 kbps.

Figura 10.1 Distribucin de terminales y valores de los capacitores del MAX232

Figura 10.2 Circuito tpico de operacin MAX232 (note la polaridad de los capacitores)

Funciones de mikroC para el mdulo de comunicacin RS232


El mdulo USART se incluye en los PICs16F88, 16F628A y 16F877A (algunos PICs, como el 16F84A, no tienen este mdulo). La biblioteca UART de mikroC proporciona las herramientas para hacer que el empleo de este mdulo en modo asincrnico (full-dplex) sea tan sencillo como nunca lo haba sido hasta ahora. Esto permite la comunicacin con otros dispositivos a travs del protocolo RS232. En la tabla 10.2 se pueden ver las funciones incorporadas con sus caractersticas ms sobresalientes.

Tabla 10.2 Funciones para comunicacin RS232 con PIC

Ejemplos de programacin comunicacin RS232 con PIC

de

Estos ejemplos corresponden al PIC16F88. El cdigo fuente para los PICs 16F628A y 16F877A se encuentra en las carpetas correspondientes que acompaan a este libro. Ejemplo-USART_01.c: Lo que escriba por el teclado del ordenador se visualizar en el mdulo LCD y ser enviado de vuelta al ordenador, por lo que se visualizar tambin en el monitor. Cuando se hayan ingresado 16 caracteres el LCD se borrar y empezar nuevamente en la primera fila y primera columna (figuras 10.7.1, 10.7.2 y 10.7.3).

Figura 10.7.1 Comunicacin RS232 con PIC 16F88


//USART_01.c //Declaracin de las 12 variables necesarias para la conexin //del mdulo LCD. sbit LCD_RS at RA4_bit; sbit LCD_EN at RA6_bit; sbit LCD_D4 at RA0_bit; sbit LCD_D5 at RA1_bit; sbit LCD_D6 at RA2_bit; sbit LCD_D7 at RA3_bit; sbit LCD_RS_Direction at TRISA4_bit; sbit LCD_EN_Direction at TRISA6_bit; sbit LCD_D4_Direction at TRISA0_bit; sbit LCD_D5_Direction at TRISA1_bit; sbit LCD_D6_Direction at TRISA2_bit; sbit LCD_D7_Direction at TRISA3_bit; // Fin de declaracin de variables de conexin. char uart_rd, contador=0; void main(){ OSCCON=0x60; //Oscilador interno a 4MHz (TCI=1 us). while (OSCCON.IOFS==0); //Esperar mientras el oscilador est inestable. ANSEL=0x00; //Bits AN6:AN0 como E/S digital. Lcd_Init(); //Inicializa el LCD. Lcd_Cmd(_LCD_CLEAR); //Borra el display. Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga el cursor. UART1_Init(9600); //Inicializa el USART a 9600 bps. Delay_ms(100); //Espera a que el USART se estabilice. UART1_Write_Text("Hola."); //Enva este texto a travs del USART. while (1){ if (UART1_Data_Ready()){ //Si se recibe un dato, uart_rd = UART1_Read(); //lee el dato recibido, Lcd_Chr_CP(uart_rd); //lo presenta en el LCD, UART1_Write(uart_rd); //y lo enva a travs del USART. contador++; if(contador==16){ //Detecta el ingreso de 16 caracteres, contador=0; //reinicia el contador, Delay_1sec(); //espera 1 segundo, Lcd_Cmd(_LCD_CLEAR); //y borra el LCD. } } } }

http://www.programarpicenc.com/libro/cap10_rs232.html

http://es.scribd.com/doc/56289187/87/FUNCIONES-DE-mikroC%E2%84%A2-PARA-ELMODULO-USART

You might also like