Anda di halaman 1dari 31

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

COMUNICACIN SERIAL ENTRE PICS Y PC


En la actualidad con el avance tecnolgico, en lo que se refiere sistemas microcontrolados, resulta de vital importancia la comunicacin entre nuestro micro-controlador y una PC ya sea para adquirir datos, comandar nuestro sistema desde una PC, monitorear el sistema o incluso integrar varios sistemas dentro de uno mismo. Por lo cual abordaremos en esta oportunidad de un modo no muy complejo las pautas para lograr dicha comunicacin enviando una cadena de texto desde el PC y mostrarlo en una pantalla LCD gobernada por un PIC 16F877A.

1. OBJETIVOS:

Comunicar la PC con un micro-controlador PIC 16F877A por medio de su modulo USART (Universal Synchronous Asynchronous Receiver Transmitter).

Describir el funcionamiento del modulo USART. Conocer los principios acerca de la comunicacin serial de la norma RS232. Manejar Visual Basic para aplicaciones de Windows Fonts. Conocer el funcionamiento del transceptor MAX 232.

2. FUNDAMENTO TEORICO: A continuacin daremos un pequeo alcance sobre el manejo del modulo USART del PIC 16F877A; tambin sobre la aplicacin que fue diseada en el programa Visual Basic para poder seleccionar el puerto a utilizar as como el determinar el envi de los datos; hablaremos acerca

SOFTWARE 5

INSTITUTO IDAT

Pgina 1

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


del transceptor MAX 232 y por ultimo tocaremos el tema de pantallas LCD de 16x2.

A. MODULO USART:

La USART (Universal Synchronous Asynchronous Receiver Transmitter) es uno de los dos perifricos contenidos en el PIC que le permiten realizar comunicacin en serie. La USART, tambin conocida como SCI (Serial Communications Interface) puede configurarse como una unidad de comunicacin en serie para la transmisin de datos asncrona con dispositivos tales como terminales de computadora o computadoras personales, o bien para comunicacin sncrona con dispositivos tales como convertidores A/D o D/A, circuitos integrados o memorias EEPROM con comunicacin serie, etc. La gran mayora de los sistemas de comunicacin de datos digitales actuales utilizan la comunicacin en serie, debido a las grandes ventajas que representa esta manera de comunicar los datos: Econmica.- Utiliza pocas lneas de transmisin inclusive puede usar slo una lnea. Confiable.- Los estndares actuales permiten transmitir datos con bits de paridad y a niveles de voltaje o corriente que los hacen poco sensibles a ruido externo. Adems por tratarse de informacin digital, los cambios en amplitud de las seales (normalmente causadas por ruido) afectan muy poco o nada a la informacin. Verstil.- No est limitada a usar conductores elctricos como medio de transmisin, pudiendo usarse tambin: fibra ptica, aire, vaco, etc. Adems el tipo de energa utilizada puede ser diferente: luz visible, infrarroja, ultrasonido, pulsos elctricos, radio frecuencia, microondas, etc.

SOFTWARE 5

INSTITUTO IDAT

Pgina 2

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


Este modulo puede ser configurado para trabajar de tres maneras diferentes: Modo Asncrono - (transmisin y recepcin simultneas), Modo Sncrono Maestro (half duplex) Modo Sncrono Esclavo (half duplex)

Para este trabajo solo describiremos el modo asncrono y trabajaremos en el modo simplex, existiendo tambin half-duplex y

duplex.
Un canal simplex permite la transferencia de datos en un solo sentido. Un canal half-duplex soporta transferencias de datos en cualquier sentido, pero utilizando solo uno de ellos en cada comunicacin. Un canal duplex (tambin llamado full-duplex) soporta transferencias en ambos sentidos simultneamente. MODO ASNCRONO. En este modo la USART usa un formato estndar NRZ asncrono, el cual para la sincronizacin usa: 1 bit de inicio (I), 8 o 9 bits de datos y 1 bit de paro (P). Mientras no se estn transmitiendo datos la USART enva continuamente un bit de marca. El modo asncrono se selecciona limpiando el bit SYNC del registro TXSTA (98H). El modo asncrono es deshabilitado durante el modo SLEEP. Cada dato es transmitido y recibido comenzando por el LSB. El hardware no maneja bit de Paridad, pero el noveno bit puede ser usado para este fin y manejado por software.

SOFTWARE 5

INSTITUTO IDAT

Pgina 3

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


Normalmente cuando no se realiza ninguna transferencia de datos, la lnea del transmisor se encuentra en esto de (idle) este quiere decir en estado alto. El mdulo Asncrono de la USART consta de 3 mdulos fundamentales: El circuito de muestreo El generador de frecuencia de transmisin (Bau Rate) El transmisor asncrono El receptor asncrono.

A continuacin describiremos los registros asociados a este modulo: REGISTROS ASOCIADOS: El mdulo USART dispone de una serie de registros, que son los siguientes: RCSTA: Registro de estado y control de recepcin de datos.

Bit 7

SPEN: Habilitacin del puerto serie 1= Puerto serie habilitado (configura RC7/RX/DT y RC6/TX/CK como pines del puerto serial)

Bit 6

0 = Puerto serie deshabilitado RX9: Habilita el bit 9 de recepcin 1 = Selecciona recepcin de 9 bits 0 = Selecciona recepcin de 8 bits

Bit 5

SREN: Configura la recepcin sencilla

SOFTWARE 5

INSTITUTO IDAT

Pgina 4

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


Modo asncrono no incluye: Modo sncrono maestro: 1 = Habilita recepcin sencilla 0 = Deshabilita recepcin sencilla Modo sncrono esclavo no se utiliza: Bit 4 CREN: Configura la recepcin continua. Modo asncrono: 1 = Habilita modo de recepcin continua. 0 = Deshabilita recepcin continua. Modo sncrono: 1 = Habilita recepcin continua hasta que el bit CREN es borrado. 0 = Deshabilita recepcin continua. Bit 3 ADDEN: Deteccin de direccin. Modo asncrono con 9 bits (RX9 = 1): 1 =Activa la deteccin de direccin, activa la interrupcin y descarga el buffer de recepcin al activarse RSR<8> 0 =Desactiva la deteccin de direccin, todos los bits son recibidos y el bit 9 puede ser utilizado como bit de paridad. Bit 2 FERR: Bit de error de trama. 1 = Error de trama (puede ser actualizado leyendo el registro RCREG y recibir el siguiente dato vlido.

SOFTWARE 5

INSTITUTO IDAT

Pgina 5

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


0 = No hay error de trama. Bit 1 OERR: Bit de error de sobre-escritura. 1 = Error de sobre-escritura escribiendo un 0 en el bit CREN). (puede ser borrado

0 = No hay error de sobre-escritura. Bit 0 RX9D: Bit 9 del dato recibido (Puede ser el bit de paridad).

SPBRG y TXSTA controla la velocidad de transmisin:

Bit 7 CSRC: bit de seleccin de reloj. Modo asncrono: no incluye. Modo sncrono: 1 = Modo maestro (reloj generado internamente desde BRG). 0 = Modo esclavo (reloj generado por una fuente externa). Bit 6 TX9: Habilita el bit 9 de transmisin. 1 = Selecciona transmisin de 9 bits. 0 = Selecciona transmisin de 8 bits. Bit 5 TXEN: Activa la transmisin. 1 = Transmisin activada.
SOFTWARE 5 INSTITUTO IDAT Pgina 6

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


0 = Transmisin desactivada. Nota: SREN/CREN anula TXEN en modo sncrono. Bit 4 SYNC: Bit de seleccin del modo del USART. 1 = Modo sncrono. 0 = Modo asncrono. Bit 3 Bit 2 No implementado: Ledo como '0' BRGH: Bit de seleccin de la velocidad de baudios. Modo asncrono: 1 = Alta velocidad. 0 = Baja velocidad. Modo Sncrono: No se usa en este modo. Bit 1 TRMT: Bit de estado del registro de desplazamiento de transmisin. 1= TSR vaco. 0 = TSR no vaco. Bit 0 TX9D: Bit 9 del dato a transmitir (puede ser el bit de paridad).

Para nuestro trabajo trabajaremos en baja velocidad (2400 Baudios) y un cristal de 4MHZ; bajo estas condiciones el fabricante nos da una tabla donde nos da el valor que tendremos que cargarle al registro SPBRG el cual mostraremos a continuacin, para mayores alcances
SOFTWARE 5 INSTITUTO IDAT Pgina 7

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


consultar la hoja tcnica que proporciona el fabricante http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf . en

RCREG: es el registro que almacena el carcter recibido, para capturarlo tendremos que leer este registro. TXREG: es donde tendremos que escribir el carcter que queremos enviar. En el siguiente cuadro se muestran todos los registros asociados al modulo USART.

SOFTWARE 5

INSTITUTO IDAT

Pgina 8

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


PROCEDIMIENTO Y DESCRIPCION PARA EL TRANSMISOR: El corazn de este mdulo es el registro de corrimiento (transmit shift register, TSR). La nica manera de acceder al registro TSR es a travs del registro TXREG (19H). Para transmitir un dato, el programa deber ponerlo primero en el registro TXREG. En cuanto el TSR termina de enviar el dato que tena (en cuanto transmite el bit de paro) lee el dato contenido en TXREG (si hay alguno) esto ocurre en un ciclo TCY. En cuanto el dato de TXREG es transferido al TSR el TXREG queda vaco esta condicin es indicada mediante el bit bandera TXIF (que es el bit 4 del registro PIR1 (0Ch)), el cual se pone en alto. Este bit NO puede ser limpiado por software, slo dura un instante en bajo cuando se escribe un nuevo dato a TXREG. Si se escribe un dato seguido de otro (back to back) a TXREG el primero se transfiere inmediatamente a TSR y el otro tiene que esperar hasta que el TSR termine de enviar el bit de Stop del primero. Durante esta espera TXIF permanece en bajo. Existe otro bit, llamado TRMT (TXSTA<1>), el cual muestra el estado del TSR. TRMT se pone en alto cuando TSR est vaco, y en bajo cuando TSR est transmitiendo un dato. Mientras que TXIF puede generar una interrupcin TRMT no lo puede hacer, TRMT est pensado para ser consultado por poleo (sin usar interrupciones). Diagrama de bloques del transmisor:

SOFTWARE 5

INSTITUTO IDAT

Pgina 9

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


Para habilitar el mdulo de transmisin es necesario poner en alto el bit TXEN (TXSTA<5>), mientras no se habilite el mdulo, la patita de transmisin (RC6/TX/CK) se mantiene en alta impedancia. Si TXEN es deshabilitada a la mitad de una transmisin, est ser abortada y el transmisor ser reseteado. Si se est usando un noveno bit TX9 (TXSTA<6>), ste deber ser escrito antes de escribir los 8 bits restantes a TXREG, ya que en cuanto se escribe un dato a este registro inmediatamente es transferido a TSR (si ste est vaco). De acuerdo a lo anterior, la inicializacin del mdulo de transmisin consiste en los siguientes pasos: 1. Inicializar baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit BRGH. 2. Habilitar comunicacin asncrona limpiando el bit SYNC y poniendo el bit SPEN. 3. Si se van a usar interrupciones, poner el bit TXIE (PIE<4>). 4. Poner el bit TX9 si se desea transmitir datos de 9 bits 5. Habilitar transmisin poniendo el bit TXEN, lo cual pondr el bit TXIF. 6. Colocar el noveno bit del dato en TX9D si se estn usando datos de 9 bits. 7. Cargar el dato al registro TXREG (inicia la transmisin).

PROCEDIMIENTO Y DESCRIPCION PARA EL RECEPTOR: El mdulo de recepcin es similar al de transmisin, en la siguiente figura se muestran los bloques que lo constituyen.

SOFTWARE 5

INSTITUTO IDAT

Pgina 10

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

Una vez que se ha seleccionado el modo asncrono, la recepcin se habilita poniendo en alto el bit CREN (RCSTA<4>). El dato es recibido mediante la lnea RC7/RX/DT, la cual maneja un registro de corrimiento de alta velocidad (16 veces el Baud rate). El corazn del receptor es el registro de corrimiento RSR. Este registro no es accesible por software, pero, cuando el dato recibido se ha completado (se ha recibido el bit de Stop) el dato de RSR es transferido automticamente al registro RCREG (1Ah) si ste est vaco y al mismo tiempo es puesto en alto la bandera de recepcin RCIF (PIR1<5>). La nica manera de limpiar la bandera RCIF es leyendo el los datos del registro RCREG. El registro RCREG puede contener hasta dos datos, ya que es un buffer doble que funciona como una cola de dos posiciones. Si las dos posiciones del registro RCREG estn llenas (no han sido ledas) y se detecta el bit de Stop de un tercer dato de recepcin, lo cual ocasiona un transferencia automtica del dato recibido a RCREG, esto destruir el primer dato recibido y activar el indicador de sobreescritura OERR (RCSTA<1>). Para evitar esto, se debern leer los dos datos en RCREG haciendo dos lecturas consecutivas.
SOFTWARE 5 INSTITUTO IDAT Pgina 11

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


La nica manera de limpiar el bit OERR una vez que ha sido activado es reseteando el mdulo de recepcin (limpiando CREN y volvindolo a poner a 1), si no se limpia OERR se bloquea la transferencia de datos de RSR a RCREG y no puede haber ms recepcin de datos. Si se detecta un bit nivel bajo en la posicin del bit de stop se pone el indicador de error de encuadre (frame error) FERR RCSTA<2>. Tanto este indicador como el noveno bit RX9D de los datos estn en una cola de dos posiciones al igual que los datos recibidos, de manera que al leer RCREG se actualizan FERR y RX9D con nuevos valores, por lo cual estos bits debern ser ledos antes de leer RCREG para no perder su informacin. De acuerdo a lo anterior, la inicializacin del mdulo de recepcin es como sigue: 1. Inicializar el baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit BRGH. 2. Habilitar el puerto serie asncrono limpiando el bit SYNC y poniendo el bit SPEN. 3. Si se van a usar interrupciones, poner el bit RCIE (PIE<5>). 4. Si se desea recepcin de datos de 9 bits se deber poner el bit RX9 (RCSTA<0>). 5. Habilitar la recepcin poniendo el bit CREN (RCSTA<4>). 6. El bit RCIF se pondr a 1 cuando la recepcin de un dato se complete y se generar una interrupcin si RCIE est en 1. 7. Leer el registro RCSTA para obtener el noveno bit (si se estn recibiendo datos de 9 bits) o para determinar si ha ocurrido un error de recepcin.
SOFTWARE 5 INSTITUTO IDAT Pgina 12

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


8. Leer los 8 bits del dato recibido leyendo el registro RCREG. 9. Si ocurri algn error este se limpia al poner a 0 el bit CREN, el cual deber volver a ponerse a 1 si se desea continuar la recepcin. B. VISUAL BASIC APLICACIONES PARA WINDOWS FONTS: Visual Basic es un ambiente grfico de desarrollo de aplicaciones para el sistema operativo Microsoft Windows. Las aplicaciones creadas con Visual Basic estn basadas en objetos y son manejadas por eventos. Visual Basic se deriva del lenguaje Basic, el cual es un lenguaje de programacin estructurado. Sin embargo, Visual Basic emplea un modelo de programacin manejada por eventos. En las aplicaciones manejadas por eventos, la ejecucin no sigue una ruta predefinida. En vez de esto, se ejecutan diferentes secciones de cdigo en respuesta a eventos. Los eventos se desencadenan por acciones del usuario, por mensajes del sistema o de otras aplicaciones. La secuencia de eventos determina la secuencia en que el cdigo se ejecuta. Es por esto que la ruta que sigue el cdigo de la aplicacin es diferente cada vez que se ejecuta el programa. Una parte esencial de la programacin manejada por eventos es el escribir cdigo que responda a los posibles eventos que pueden ocurrir en una aplicacin. Visual Basic facilita la implementacin del modelo de programacin manejada por eventos. El Entorno Integrado de Desarrollo (IDE): Cuando se inicia Visual Basic, se crea un proyecto nuevo con un formulario. El IDE de Visual Basic consta de los siguientes elementos:

SOFTWARE 5

INSTITUTO IDAT

Pgina 13

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


Barra de men y Barra de herramientas Diseador de Formularios Explorador de Proyectos

Cuadro de Herramientas

Cuadro de Cdigo

Cuadro de Propiedades

C. PANTALLAS LCD 16 X 2: Las pantallas de cristal lquido LCD o display LCD para mensajes (Liquid

Cristal Display) tienen la capacidad de mostrar cualquier carcter alfanumrico,

permitiendo representar la informacin que genera cualquier equipo electrnico de una forma fcil y econmica. La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos) distribuidos en una, dos, tres o cuatro lneas de 16 hasta 40 caracteres cada lnea. El proceso de visualizacin es gobernado por un microcontrolador incorporado a la pantalla, siendo el Hitachi 44780 el modelo de controlador ms utilizado.
SOFTWARE 5 INSTITUTO IDAT Pgina 14

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

Las caractersticas generales de un mdulo LCD 16x2 son las siguientes: Consumo muy reducido, del orden de 7.5mW. Pantalla de caracteres ASCII, adems de los caracteres japoneses Kanji, caracteres griegos y smbolos matemticos. Desplazamiento de los caracteres hacia la izquierda o a la derecha. Memoria de 40 caracteres por lnea de pantalla, visualizndose 16 caracteres por lnea. Movimiento del cursor y cambio de su aspecto. Permite que el usuario pueda programar 8 caracteres. Pueden ser gobernados de 2 formas principales: o Conexin con bus de 4 bits. o Conexin con bus de 8 bits. A continuacin se presenta la descripcin de seales empleadas por el mdulo LCD as como el nmero de patilla a la que corresponden.

SOFTWARE 5

INSTITUTO IDAT

Pgina 15

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

D. MORMA RS-232: Ante la gran variedad de equipos, sistemas y protocolos que existen surgi la necesidad de un acuerdo que permitiera a los equipos de varios fabricantes comunicarse entre s. La EIA (Electronics Industry Association) elaboro la norma RS-232, la cual define la interface mecnica, los pines, las seales y los protocolos que debe cumplir la comunicacin serial.

NIVELES DE TENSION NORMA RS-232:


SOFTWARE 5 INSTITUTO IDAT Pgina 16

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

Los cuadros anteriores nos describen los parmetros y caractersticas de la norma RS-232. En resumen se dira que: Un 1 lgico es un voltaje comprendido entre 5v y 15v en el transmisor y entre -3v y 25v en el receptor. Un 0 lgico es un voltaje comprendido entre +5v y +15 v en el trasmisor y entre +3v y +25 v en el receptor.

El envo de niveles lgicos (bits) a travs de cables o lneas de transmisin necesita la conversin a voltajes apropiados. En los microcontroladores para representar un 0 lgico se trabaja con voltajes inferiores a 0.8v, y para un 1 lgico con voltajes mayores a 2.0V. En general cuando se trabaja con familias TTL y CMOS se asume que un 0 lgico es igual a cero Volts y un 1 lgico es igual a cinco Volts. La importancia de conocer esta norma, radica en los niveles de voltaje que maneja el puerto serial del ordenador, ya que son diferentes a los que utilizan los microcontroladores y los dems circuitos integrados. Por
SOFTWARE 5 INSTITUTO IDAT Pgina 17

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


lo tanto se necesita de una interface que haga posible la conversin de los niveles de voltaje a los estndares manejados por los CI TTL.

E. TRANCEPTOR MAX 232: Este circuito soluciona los problemas de niveles de voltaje cuando se requiere enviar unas seales digitales sobre una lnea RS-232. Este chip se utiliza en aquellas aplicaciones donde no se dispone de fuentes dobles de +12 y 12 Volts. El MAX 232 necesita solamente una fuente de +5V para su operacin, internamente tiene un elevador de voltaje que convierte el voltaje de +5V al de doble polaridad de +12V y 12V. Cabe mencionar que existe una gran variedad de CI que cumplen con la norma RS-232 como lo son: MAX220, DS14C232, MAX233, LT1180A. La configuracin que se utilizara en este trabajo es similar a la siguiente, salvo que los capacitores que usaremos sern de 1uF: Sobre los capacitores a utilizar presentaremos un cuadro donde se indican las opciones disponibles.

SOFTWARE 5

INSTITUTO IDAT

Pgina 18

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

Adems de este CI tambin necesitaremos un cable tipo DB9 que describiremos: EL CONECTOR DB9 DEL PC En los PCs hay conectores DB9 macho, de 9 pines, por el que se conectan los dispositivos al puerto serie. Los conectores hembra que se enchufan tienen una colocacin de pines diferente, de manera que se conectan el pin 1 del macho con el pin 1 del hembra, el pin2 con el 2, etc.

La informacin asociada sobre la funcin de cada pin es:

SOFTWARE 5

INSTITUTO IDAT

Pgina 19

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


Nmero de pin 1 2 3 4 5 6 7 8 9 RX TX DTR (Data Terminal Ready) GND DSR (Data Sheet Ready) RTS (Request To Send) CTS (Clear To Send) RI (Ring Indicator) Seal DCD (Data Carrier Detect)

3. PROGRAMAS A UTILIZAR: Utilizamos los siguientes programas: Proteus v7.8: Para simular los el programa y verificar su correcto funcionamiento antes de implementar el circuito fsico. Mplab de Microchip: Editor y compilador de cdigo assembler para microcontroladores PIC de Microchip. Visual Studio 2010: Concretamente la aplicacin para Windows Fonts. Virtual Serial Ports: Emulador que se utilizo para simular con Proteus el programa. 4. CIRCUITOS A IMPLEMENTAR:

SOFTWARE 5

INSTITUTO IDAT

Pgina 20

COMUNICACIN PC A PIC CON PUERTO SERIE DB9

Configuracin del MAX 232 y del conector DB9.

5. CONCLUCIONES: Las posibilidades de control que se abren con la comunicacin PC a PIC son innumerables. El amplio rango de voltajes de la norma RS-232 responde a que se tiene que contrarrestar las perdidas en la lnea de transmisin y adems asegura el envo correcto de los datos. La transmisin serial de datos es una manera econmica y eficaz de comunicacin entre dispositivos. Las aplicaciones de Windows Fonts son una herramienta muy verstil y fcil de usar.

SOFTWARE 5

INSTITUTO IDAT

Pgina 21

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


6. ANEXOS: En esta seccin detallaremos el programa en el lenguaje assembler del compilador MPLAB para la recepcin de datos y su posterior muestra en una pantalla LCD 16x2; as como el respectivo cdigo de la aplicacin para Windows Fonts creada en Visual Studio 2010.

1.

APLICACIN DE WINDOWS FONTS:

La siguiente es la aplicacin en s que utilizaremos para este trabajo y consta de:

BOTON DETERMINAR PUERTOS: Con este botn seleccionamos el puerto serie, con el que deseemos trabajar, de una lista creada automticamente por el programa.

SOFTWARE 5

INSTITUTO IDAT

Pgina 22

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


BOTON CONECTAR: Este botn nos conecta con el puerto seleccionado y habilitando al siguiente botn que inicia la transmisin; cada vez que se cambie de puerto se tendr que conectar al mismo de lo contrario la transmisin se har por el puerto antes seleccionado. BOTON ENVIAR: Haciendo un clic en este botn iniciamos la transmisin de los datos contenidos en el TextBox, que previamente se cargaron el buffer de salida del PC, hacia el pic; cada vez que se haga un clic en este puerto se enviaran los datos. TEXT BOX: Este cuadro de texto muestra el dato o la cadena de datos que se enviaran hacia el PIC. COMBO BOX: Este es una lista que se genera al buscar todos los puertos COM del PC, asignndoles nmeros a cada uno, es decir COM1, COM2, etc.

Cdigo de programa para esta aplicacin:


Public Class Form1 Dim datotx As String Dim datorx As String //declaracion de variables

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load datotx = "" datorx = "" btn_conectar.Enabled = False btn_enviar.Enabled = False

SOFTWARE 5

INSTITUTO IDAT

Pgina 23

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


tmr_pausa.Enabled = False End Sub *********************************************************************************** Private Sub btn_det_con_Click(sender As System.Object, e As System.EventArgs) Handles btn_det_con.Click cbo_puerto.Items.Clear() For Each puertosdisponible As String In My.Computer.Ports.SerialPortNames cbo_puerto.Items.Add(puertosdisponible) Next If cbo_puerto.Items.Count > 0 Then cbo_puerto.Text = cbo_puerto.Items(0) MessageBox.Show("SELECCIONE PUERTO CON EL QUE SE DESEA TRABAJAR") btn_conectar.Enabled = True Else MessageBox.Show("NO SE ENCONTRO NINGUN PUERTO") btn_conectar.Enabled = False btn_enviar.Enabled = False cbo_puerto.Items.Clear() cbo_puerto.Text = False End If End Sub ************************************************************************************ Private Sub btn_conectar_Click(sender As System.Object, e As System.EventArgs) Handles btn_conectar.Click If btn_conectar.Text = "CONECTAR" Then sp_puertos.PortName = cbo_puerto.Text btn_conectar.Text = "DESCONECTAR" btn_enviar.Enabled = True tmr_pausa.Enabled = True sp_puertos.Open() ElseIf btn_conectar.Text = "DESCONECTAR" Then btn_conectar.Text = "CONECTAR" btn_enviar.Enabled = False tmr_pausa.Enabled = False sp_puertos.Close() End If End Sub ********************************************************************************** Private Sub btn_enviar_Click(sender As System.Object, e As System.EventArgs) Handles btn_enviar.Click sp_puertos.DiscardOutBuffer() datotx = txt_dato_tx.Text sp_puertos.WriteLine(datotx) End Sub Private Sub tmr_pausa_Tick(sender As System.Object, e As System.EventArgs) Handles tmr_pausa.Tick End Sub End Class

SOFTWARE 5

INSTITUTO IDAT

Pgina 24

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


2. DIAGRAMA DE FLUJO PARA EL PIC 16F877A: INICIO
CONFIGURO PORTB = PORTC,7 = VELOCIDAD DE PUERTOS SALIDAS ENTRADA 2400 BAUDIOS

LEE 2 VESES EL RCREG

ESCRIBRIR EN PANTALLA

GUARDA ESTE DATO EN EL BUFFER


BORRA BANDERA RCIF SELECCIONO LA SIGUIENTE DIRECCIN DE MEMORIA

INCREMETA DIRECCION DE MEMORIA

INICIA LCD MODO 4 BITS

CREACION DE BUFFER PARA RECEPCION

LLEGO LTIMO DBYTE?

ENCIENDE EL MDULO USART Y CONFIGURA PARA RECEPCION CONTINUA 8 BITS SIN BIT DE PARIDAD

ESPERA 4200 us FIN


HAY MAS DATOS?

CARGA 16 AL CONTADOR DE BYTES

CARGA 16 AL CONTADOR DE BYTES

NO
HA LLEGADO ALGN DATO?

IR A SEGUNDA LINEA PANTALLA LCD

SI

LEER PRIMERA DIRECCION DEL BUFFER

1.
SOFTWARE 5

CODIGO EN ASSEMBLER PARA EL PIC:


INSTITUTO IDAT Pgina 25

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


LIST P=16F877A INCLUDE P16F877A.INC CBLOCK 0X20 INDICE,REG,R1,R2,R3,BUFFER,BYTS

ENDC ORG 0X2007 DW 0X3F7A ORG 0 GOTO INICIO ORG 0X05 INICIO BANKSEL TRISC BSF TRISC,7 CLRF TXSTA para baja velocidad MOVLW .25 MOVWF SPBRG CLRF TRISB D BANKSEL PORTB CLRF BUFFER CLRF PORTC CLRF RCREG ;seleccionamos banco 1 ;como salida al pin 7 del puertoC ; configuracion del TXSTA como ; para trabajar a 2400 baudios ; para trabajar la pantalla por el puerto ; banco 0 ;borramos el registro buffer ; borramos el puerto D ; borramos el RCREG

CALL T_20MS CLRW MOVWF INDICE pantalla X2


SOFTWARE 5

; espara para inicial la pantalla

; primer dato de comando de inicio de

INSTITUTO IDAT

Pgina 26

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


CALL COMANDOS MOVWF REG XORLW 0XFF BZ X1 MOVFW REG MOVWF PORTB CALL ENABLE INCF INDICE,F MOVFW INDICE GOTO X2 ; configuramos: ; modo 4 bits ; borrar pantalla ;pantalla activa/cursor

parpadeo

off/no

; dos lineas ; caracter de 5 x 7 puntos ; posicion a partir del segundo cuadro ; para el titulo ; luego iremos a escribir el titulo

COMANDOS ADDWF PCL,F DT 0X20,0X20,0X20,0X80,0X00,0X60,0X00,0XC0,0X00,0X10,0X80,0X10,0XFF X1 CLRW ; borramos W MOVWF INDICE ; se mueve a indice X4 CALL TITULO MOVWF REG XORLW '&' BZ X5 ; cuando se termina de escribir el titulo MOVFW REG ; saltamos habilitar el modulo USART CALL MUESTRA SWAPF REG,W CALL MUESTRA INCF INDICE,F MOVFW INDICE GOTO X4 TITULO ADDWF PCL,F DT "TX Y RX SERIAL",'&' ; caracteres a mostrarse en pantalla
SOFTWARE 5 INSTITUTO IDAT Pgina 27

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


X5 MOVLW B'10010000' MOVWF RCSTA

NUEVO MOVLW .16 MOVWF BYTS MOVLW 0X30 MOVWF FSR S1 MOVLW .32 MOVWF INDF INCF FSR,F DECFSZ BYTS,F GOTO S1

S3

MOVLW .16 MOVWF BYTS MOVLW 0X30 MOVWF FSR BTFSS PIR1,RCIF GOTO $-1 MOVFW RCREG MOVFW RCREG MOVWF INDF BCF PIR1,RCIF INCF FSR,F CALL SERIAL CALL MAS CALL MAS BTFSS PIR1,RCIF GOTO VER DECFSZ BYTS,F GOTO S3

SOFTWARE 5

INSTITUTO IDAT

Pgina 28

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


VER la pantalla pantalla cursor los datos CALL T_1MS BCF PORTB,0 BCF PORTB,1 CALL T_1MS MOVLW 0XC0 MOVWF PORTB CALL ENABLE MOVLW 0X00 MOVWF PORTB CALL ENABLE MOVLW .16 MOVWF BYTS MOVLW 0X30 MOVWF FSR S2 MOVFW INDF MOVWF BUFFER CALL MUESTRA SWAPF BUFFER,W CALL MUESTRA INCF FSR,F DECFSZ BYTS,F GOTO S2 GOTO NUEVO ; tiempo de espera requerida por ; bits para enviar un comando a la ; para enviar la nueva pocicion del ; a la linea 2 donde se escribiran

; rutina de habilitacion de pantalla

;******* SUB RUTINA DE MUESTRA EN MODO 4 BITS POR PUERTO D ******


SOFTWARE 5 INSTITUTO IDAT Pgina 29

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


MUESTRA ANDLW 0XF0 DE LO QUE SE QUIERE MOSTRAR IORLW 0X02 MOVWF PORTB CALL ENABLE PARA PODER ESCRIBIR RETURN RUTINA ; SOLO SE VE EL NIBLE ALTO ; RS A 1 PARA ENVIAR DATO ; ENVIO A PUERTO D ; HABILITAR LA PANTALLA ; RETORNAMOS DE LA SUB

;******* ENABLE

SUB RUTINA DE HABILITACION DE LA PANTALLA ***** ; ESPERA NESESARIA

CALL T_1MS RECOMENDAD POR EL FABRICANTE BSF PORTB,0 CALL T_1MS BCF PORTB,0 YA QUE CON ESTA ACCION CALL T_1MS PANTALLA PRA RECIBIR DATOS RETURN RUTINA

; A 1 EL BIT ENABLE ; ESPERA NESESARIA ; HACEMOS 0 EL BIT ENABLE, ; ; HABILITAMOS REGRESAMOS DE A LA LA SUB

; **** TIEMPO SEGUN FABRICANTE NESESARIO PARA LA PANTALLA **** SERIAL MOVLW .4 MOVWF R3 CALL TMPO DECFSZ R3,F GOTO $-2 RETURN MAS MOVLW .24 MOVWF R3 NOP
SOFTWARE 5 INSTITUTO IDAT Pgina 30

COMUNICACIN PC A PIC CON PUERTO SERIE DB9


DECFSZ R3,F GOTO $-2 RETURN

T_1MS

MOVLW .3 MOVWF R3 CALL TMPO DECFSZ R3,F GOTO $-2 RETURN ; ****** SUB RUTINA DE 1 MILISEGUNDO APROXIMADAMENTE *-***** TMPO MOVLW .249 MOVWF R1 NOP DECFSZ R1,F GOTO $-2 RETURN ; ******** TIEMPO REQUERIDO SEGUN FABRICANTE PARA QUE LA PANTALLA INICIE *** T_20MS MOVLW .15 MOVWF R2 CALL TMPO DECFSZ R2,F GOTO $-2 RETURN END

SOFTWARE 5

INSTITUTO IDAT

Pgina 31