COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9

COMUNICACIÓN SERIAL ENTRE PIC’S Y PC
En la actualidad con el avance tecnológico, en lo que se refiere sistemas microcontrolados, resulta de vital importancia la comunicación 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 comunicación 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 comunicación serial de la norma RS232. Manejar Visual Basic para aplicaciones de Windows Fonts. Conocer el funcionamiento del transceptor MAX 232.

2. FUNDAMENTO TEORICO: A continuación daremos un pequeño alcance sobre el manejo del modulo USART del PIC 16F877A; también sobre la aplicación que fue diseñada 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

Página 1

COMUNICACIÓN 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 periféricos contenidos en el PIC que le permiten realizar comunicación en serie. La USART, también conocida como SCI (Serial Communications Interface) puede configurarse como una unidad de comunicación en serie para la transmisión de datos asíncrona con dispositivos tales como terminales de computadora o computadoras personales, o bien para comunicación síncrona con dispositivos tales como convertidores A/D o D/A, circuitos integrados o memorias EEPROM con comunicación serie, etc. La gran mayoría de los sistemas de comunicación de datos digitales actuales utilizan la comunicación en serie, debido a las grandes ventajas que representa esta manera de comunicar los datos:   Económica.- Utiliza pocas líneas de transmisión inclusive puede usar sólo una línea. Confiable.- Los estándares actuales permiten transmitir datos con bits de paridad y a niveles de voltaje o corriente que los hacen poco sensibles a ruido externo. Además por tratarse de información digital, los cambios en amplitud de las señales (normalmente causadas por ruido) afectan muy poco o nada a la información.  Versátil.- No está limitada a usar conductores eléctricos como medio de transmisión, pudiendo usarse también: fibra óptica, aire, vacío, etc. Además el tipo de energía utilizada puede ser diferente: luz visible, infrarroja, ultrasonido, pulsos eléctricos, radio frecuencia, microondas, etc.

SOFTWARE 5

INSTITUTO IDAT

Página 2

COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9
Este modulo puede ser configurado para trabajar de tres maneras diferentes:    Modo Asíncrono - (transmisión y recepción simultáneas), Modo Síncrono – Maestro (half duplex) Modo Síncrono – Esclavo (half duplex)

Para este trabajo solo describiremos el modo asíncrono y trabajaremos en el modo simplex, existiendo también 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 comunicación. Un canal duplex (también llamado full-duplex) soporta transferencias en ambos sentidos simultáneamente. MODO ASÍNCRONO. En este modo la USART usa un formato estándar NRZ asíncrono, el cual para la sincronización usa: 1 bit de inicio (I), 8 o 9 bits de datos y 1 bit de paro (P). Mientras no se están transmitiendo datos la USART envía continuamente un bit de marca. El modo asíncrono se selecciona limpiando el bit SYNC del registro TXSTA (98H). El modo asíncrono 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

Página 3

A continuación describiremos los registros asociados a este modulo:  REGISTROS ASOCIADOS: El módulo USART dispone de una serie de registros. Bit 7 SPEN: Habilitación 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 recepción 1 = Selecciona recepción de 9 bits 0 = Selecciona recepción de 8 bits Bit 5 SREN: Configura la recepción sencilla SOFTWARE 5 INSTITUTO IDAT Página 4 . la línea del transmisor se encuentra en esto de (idle) este quiere decir en estado alto.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Normalmente cuando no se realiza ninguna transferencia de datos. El módulo Asíncrono de la USART consta de 3 módulos fundamentales:     El circuito de muestreo El generador de frecuencia de transmisión (Bau Rate) El transmisor asíncrono El receptor asíncrono. que son los siguientes: RCSTA: Registro de estado y control de recepción de datos.

1 = Error de trama (puede ser actualizado leyendo el registro RCREG y recibir el siguiente dato válido. Bit 2 FERR: Bit de error de trama.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Modo asíncrono no incluye: Modo síncrono maestro: 1 = Habilita recepción sencilla 0 = Deshabilita recepción sencilla Modo síncrono esclavo no se utiliza: Bit 4 CREN: Configura la recepción continua. 0 = Deshabilita recepción continua. SOFTWARE 5 INSTITUTO IDAT Página 5 . Modo síncrono: 1 = Habilita recepción continua hasta que el bit CREN es borrado. 0 = Deshabilita recepción continua. activa la interrupción y descarga el buffer de recepción al activarse RSR<8> 0 =Desactiva la detección de dirección. Modo asíncrono con 9 bits (RX9 = 1): 1 =Activa la detección de dirección. Modo asíncrono: 1 = Habilita modo de recepción continua. Bit 3 ADDEN: Detección de dirección. todos los bits son recibidos y el bit 9 puede ser utilizado como bit de paridad.

SPBRG y TXSTA controla la velocidad de transmisión: Bit 7 CSRC: bit de selección de reloj. SOFTWARE 5 INSTITUTO IDAT Página 6 . Bit 0 RX9D: Bit 9 del dato recibido (Puede ser el bit de paridad). Bit 5 TXEN: Activa la transmisión. 1 = Transmisión activada. Bit 1 OERR: Bit de error de sobre-escritura. Modo síncrono: 1 = Modo maestro (reloj generado internamente desde BRG). 1 = Selecciona transmisión de 9 bits. 1 = Error de sobre-escritura escribiendo un 0 en el bit CREN). (puede ser borrado 0 = No hay error de sobre-escritura. Modo asíncrono: no incluye. 0 = Modo esclavo (reloj generado por una fuente externa).COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 0 = No hay error de trama. 0 = Selecciona transmisión de 8 bits. Bit 6 TX9: Habilita el bit 9 de transmisión.

Bit 4 SYNC: Bit de selección del modo del USART. Bit 0 TX9D: Bit 9 del dato a transmitir (puede ser el bit de paridad).COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 0 = Transmisión desactivada. 1 = Modo síncrono. 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 continuación. 0 = TSR no vacío. 1= TSR vacío. Nota: SREN/CREN anula TXEN en modo síncrono. 0 = Modo asíncrono. Para nuestro trabajo trabajaremos en baja velocidad (2400 Baudios) y un cristal de 4MHZ. Bit 3 Bit 2 No implementado: Leído como '0' BRGH: Bit de selección de la velocidad de baudios. para mayores alcances SOFTWARE 5 INSTITUTO IDAT Página 7 . Bit 1 TRMT: Bit de estado del registro de desplazamiento de transmisión. Modo asíncrono: 1 = Alta velocidad. 0 = Baja velocidad. Modo Síncrono: No se usa en este modo.

SOFTWARE 5 INSTITUTO IDAT Página 8 . En el siguiente cuadro se muestran todos los registros asociados al modulo USART.microchip.pdf . en RCREG: es el registro que almacena el carácter recibido.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 consultar la hoja técnica que proporciona el fabricante http://ww1.com/downloads/en/devicedoc/39582b. para capturarlo tendremos que leer este registro. TXREG: es donde tendremos que escribir el carácter que queremos enviar.

el programa deberá ponerlo primero en el registro TXREG. Durante esta espera TXIF permanece en bajo. 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. En cuanto el TSR termina de enviar el dato que tenía (en cuanto transmite el bit de paro) lee el dato contenido en TXREG (si hay alguno) esto ocurre en un ciclo TCY. TSR). Diagrama de bloques del transmisor: SOFTWARE 5 INSTITUTO IDAT Página 9 . el cual muestra el estado del TSR.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9  PROCEDIMIENTO Y DESCRIPCION PARA EL TRANSMISOR: El corazón de este módulo es el registro de corrimiento (transmit shift register. Este bit NO puede ser limpiado por software. y en bajo cuando TSR está transmitiendo un dato. Existe otro bit. el cual se pone en alto. TRMT se pone en alto cuando TSR está vacío. TRMT está pensado para ser consultado por “poleo” (sin usar interrupciones). sólo dura un instante en bajo cuando se escribe un nuevo dato a TXREG. Para transmitir un dato. En cuanto el dato de TXREG es transferido al TSR el TXREG queda vacío esta condición es indicada mediante el bit bandera TXIF (que es el bit 4 del registro PIR1 (0Ch)). llamado TRMT (TXSTA<1>). La única manera de acceder al registro TSR es a través del registro TXREG (19H). Mientras que TXIF puede generar una interrupción TRMT no lo puede hacer.

la patita de transmisión (RC6/TX/CK) se mantiene en alta impedancia. Habilitar transmisión poniendo el bit TXEN. Cargar el dato al registro TXREG (inicia la transmisión). poner el bit TXIE (PIE<4>). Habilitar comunicación asíncrona limpiando el bit SYNC y poniendo el bit SPEN.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Para habilitar el módulo de transmisión es necesario poner en alto el bit TXEN (TXSTA<5>). la inicialización del módulo de transmisión consiste en los siguientes pasos: 1º. Poner el bit TX9 si se desea transmitir datos de 9 bits 5º. 2º. Si TXEN es deshabilitada a la mitad de una transmisión. 3º. está será abortada y el transmisor será reseteado. 6º. Si se está usando un noveno bit TX9 (TXSTA<6>). 4º. Si se van a usar interrupciones. 7º. Inicializar baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit BRGH. Colocar el noveno bit del dato en TX9D si se están usando datos de 9 bits. SOFTWARE 5 INSTITUTO IDAT Página 10 . mientras no se habilite el módulo. De acuerdo a lo anterior. éste deberá ser escrito antes de escribir los 8 bits restantes a TXREG.  PROCEDIMIENTO Y DESCRIPCION PARA EL RECEPTOR: El módulo de recepción es similar al de transmisión. en la siguiente figura se muestran los bloques que lo constituyen. lo cual pondrá el bit TXIF. ya que en cuanto se escribe un dato a este registro inmediatamente es transferido a TSR (si éste está vacío).

esto destruirá el primer dato recibido y activará el indicador de sobreescritura OERR (RCSTA<1>).COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Una vez que se ha seleccionado el modo asíncrono. Para evitar esto. El registro RCREG puede contener hasta dos datos. El corazón del receptor es el registro de corrimiento RSR. cuando el dato recibido se ha completado (se ha recibido el bit de Stop) el dato de RSR es transferido automáticamente al registro RCREG (1Ah) si éste está vacío y al mismo tiempo es puesto en alto la bandera de recepción RCIF (PIR1<5>). Este registro no es accesible por software. La única manera de limpiar la bandera RCIF es leyendo el ó los datos del registro RCREG. Si las dos posiciones del registro RCREG están llenas (no han sido leídas) y se detecta el bit de Stop de un tercer dato de recepción. la cual maneja un registro de corrimiento de alta velocidad (16 veces el Baud rate). ya que es un buffer doble que funciona como una cola de dos posiciones. se deberán leer los dos datos en RCREG haciendo dos lecturas consecutivas. lo cual ocasiona un transferencia automática del dato recibido a RCREG. la recepción se habilita poniendo en alto el bit CREN (RCSTA<4>). pero. SOFTWARE 5 INSTITUTO IDAT Página 11 . El dato es recibido mediante la línea RC7/RX/DT.

Si se desea recepción de datos de 9 bits se deberá poner el bit RX9 (RCSTA<0>). Tanto este indicador como el noveno bit RX9D de los datos están en una cola de dos posiciones al igual que los datos recibidos. El bit RCIF se pondrá a “1” cuando la recepción de un dato se complete y se generará una interrupción si RCIE está en “1”.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 La única manera de limpiar el bit OERR una vez que ha sido activado es reseteando el módulo de recepción (limpiando CREN y volviéndolo a poner a 1). Si se van a usar interrupciones. si no se limpia OERR se bloquea la transferencia de datos de RSR a RCREG y no puede haber más recepción de datos. 2º. 5º. Leer el registro RCSTA para obtener el noveno bit (si se están recibiendo datos de 9 bits) o para determinar si ha ocurrido un error de recepción. 3º. 7º. de manera que al leer RCREG se actualizan FERR y RX9D con nuevos valores. por lo cual estos bits deberán ser leídos antes de leer RCREG para no perder su información. la inicialización del módulo de recepción es como sigue: 1º. Habilitar el puerto serie asíncrono limpiando el bit SYNC y poniendo el bit SPEN. 6º. poner el bit RCIE (PIE<5>). Si se detecta un bit nivel bajo en la posición del bit de stop se pone el indicador de error de encuadre (frame error) FERR RCSTA<2>. Inicializar el baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit BRGH. 4º. SOFTWARE 5 INSTITUTO IDAT Página 12 . De acuerdo a lo anterior. Habilitar la recepción poniendo el bit CREN (RCSTA<4>).

se crea un proyecto nuevo con un formulario. El Entorno Integrado de Desarrollo (IDE): Cuando se inicia Visual Basic. Visual Basic facilita la implementación del modelo de programación manejada por eventos. La secuencia de eventos determina la secuencia en que el código se ejecuta. Es por esto que la ruta que sigue el código de la aplicación es diferente cada vez que se ejecuta el programa. el cual deberá volver a ponerse a “1” si se desea continuar la recepción. Si ocurrió algún error este se limpia al poner a “0” el bit CREN. se ejecutan diferentes secciones de código en respuesta a eventos. el cual es un lenguaje de programación estructurado. Una parte esencial de la programación manejada por eventos es el escribir código que responda a los posibles eventos que pueden ocurrir en una aplicación. Las aplicaciones creadas con Visual Basic están basadas en objetos y son manejadas por eventos. Visual Basic emplea un modelo de programación manejada por eventos. El IDE de Visual Basic consta de los siguientes elementos: SOFTWARE 5 INSTITUTO IDAT Página 13 . la ejecución no sigue una ruta predefinida. En vez de esto. Leer los 8 bits del dato recibido leyendo el registro RCREG. Los eventos se desencadenan por acciones del usuario. por mensajes del sistema o de otras aplicaciones.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 8º. En las aplicaciones manejadas por eventos. B. Visual Basic se deriva del lenguaje Basic. VISUAL BASIC APLICACIONES PARA WINDOWS FONTS: Visual Basic es un ambiente gráfico de desarrollo de aplicaciones para el sistema operativo Microsoft Windows. Sin embargo. 9º.

PANTALLAS LCD 16 X 2: Las pantallas de cristal líquido LCD o display LCD para mensajes (Liquid Cristal Display) tienen la capacidad de mostrar cualquier carácter alfanumérico. SOFTWARE 5 INSTITUTO IDAT Página 14 . La pantalla consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos) distribuidos en una. tres o cuatro líneas de 16 hasta 40 caracteres cada línea. permitiendo representar la información que genera cualquier equipo electrónico de una forma fácil y económica.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Barra de menú y Barra de herramientas Diseñador de Formularios Explorador de Proyectos Cuadro de Herramientas Cuadro de Código Cuadro de Propiedades C. siendo el Hitachi 44780 el modelo de controlador más utilizado. El proceso de visualización es gobernado por un microcontrolador incorporado a la pantalla. dos.

5mW. Desplazamiento de los caracteres hacia la izquierda o a la derecha. A continuación se presenta la descripción de señales empleadas por el módulo LCD así como el número de patilla a la que corresponden. caracteres griegos y símbolos matemáticos. Movimiento del cursor y cambio de su aspecto. Pueden ser gobernados de 2 formas principales: o Conexión con bus de 4 bits.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Las características generales de un módulo LCD 16x2 son las siguientes:   Consumo muy reducido. además de los caracteres japoneses Kanji.      SOFTWARE 5 INSTITUTO IDAT Página 15 . visualizándose 16 caracteres por línea. del orden de 7. Pantalla de caracteres ASCII. o Conexión con bus de 8 bits. Permite que el usuario pueda programar 8 caracteres. Memoria de 40 caracteres por línea de pantalla.

La EIA (Electronics Industry Association) elaboro la norma RS-232.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 D. los pines. la cual define la interface mecánica. sistemas y protocolos que existen surgió la necesidad de un acuerdo que permitiera a los equipos de varios fabricantes comunicarse entre sí. MORMA RS-232: Ante la gran variedad de equipos. las señales y los protocolos que debe cumplir la comunicación serial. NIVELES DE TENSION NORMA RS-232: SOFTWARE 5 INSTITUTO IDAT Página 16 .

 El envío de niveles lógicos (bits) a través de cables o líneas de transmisión necesita la conversión a voltajes apropiados.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Los cuadros anteriores nos describen los parámetros y características de la norma RS-232. Un “0” lógico es un voltaje comprendido entre +5v y +15 v en el trasmisor y entre +3v y +25 v en el receptor. En resumen se diría que:  Un “1” lógico es un voltaje comprendido entre –5v y –15v en el transmisor y entre -3v y –25v en el receptor. y para un 1 lógico con voltajes mayores a 2. Por SOFTWARE 5 INSTITUTO IDAT Página 17 . En los microcontroladores para representar un “0” lógico se trabaja con voltajes inferiores a 0.0V. En general cuando se trabaja con familias TTL y CMOS se asume que un “0” lógico es igual a cero Volts y un “1” lógico es igual a cinco Volts. ya que son diferentes a los que utilizan los microcontroladores y los demás circuitos integrados. radica en los niveles de voltaje que maneja el puerto serial del ordenador. La importancia de conocer esta norma.8v.

E. La configuración que se utilizara en este trabajo es similar a la siguiente. salvo que los capacitores que usaremos serán de 1uF: Sobre los capacitores a utilizar presentaremos un cuadro donde se indican las opciones disponibles. TRANCEPTOR MAX 232: Este circuito soluciona los problemas de niveles de voltaje cuando se requiere enviar unas señales digitales sobre una línea RS-232. Cabe mencionar que existe una gran variedad de CI que cumplen con la norma RS-232 como lo son: MAX220. El MAX 232 necesita solamente una fuente de +5V para su operación. Este chip se utiliza en aquellas aplicaciones donde no se dispone de fuentes dobles de +12 y –12 Volts. SOFTWARE 5 INSTITUTO IDAT Página 18 . LT1180A. DS14C232. internamente tiene un elevador de voltaje que convierte el voltaje de +5V al de doble polaridad de +12V y – 12V. MAX233.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 lo tanto se necesita de una interface que haga posible la conversión de los niveles de voltaje a los estándares manejados por los CI TTL.

etc. el pin2 con el 2. de manera que se conectan el pin 1 del macho con el pin 1 del hembra. de 9 pines.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Además de este CI también necesitaremos un cable tipo DB9 que describiremos: EL CONECTOR DB9 DEL PC En los PCs hay conectores DB9 macho. Los conectores hembra que se enchufan tienen una colocación de pines diferente. por el que se conectan los dispositivos al puerto serie. La información asociada sobre la función de cada pin es: SOFTWARE 5 INSTITUTO IDAT Página 19 .

COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Número 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) Señal DCD (Data Carrier Detect) 3. PROGRAMAS A UTILIZAR: Utilizamos los siguientes programas:     Proteus v7. CIRCUITOS A IMPLEMENTAR: SOFTWARE 5 INSTITUTO IDAT Página 20 . 4.8: Para simular los el programa y verificar su correcto funcionamiento antes de implementar el circuito físico. Visual Studio 2010: Concretamente la aplicación para Windows Fonts. Virtual Serial Ports: Emulador que se utilizo para simular con Proteus el programa. Mplab de Microchip: Editor y compilador de código assembler para microcontroladores PIC de Microchip.

COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 Configuración del MAX 232 y del conector DB9. Las aplicaciones de Windows Fonts son una herramienta muy versátil y fácil de usar. CONCLUCIONES:   Las posibilidades de control que se abren con la comunicación PC a PIC son innumerables. SOFTWARE 5 INSTITUTO IDAT Página 21 .   La transmisión serial de datos es una manera económica y eficaz de comunicación entre dispositivos. El amplio rango de voltajes de la norma RS-232 responde a que se tiene que contrarrestar las perdidas en la línea de transmisión y además asegura el envío correcto de los datos. 5.

así como el respectivo código de la aplicación para Windows Fonts creada en Visual Studio 2010.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 6. de una lista creada automáticamente por el programa. 1º. SOFTWARE 5 INSTITUTO IDAT Página 22 . APLICACIÓN DE WINDOWS FONTS: La siguiente es la aplicación en sí que utilizaremos para este trabajo y consta de:  BOTON “DETERMINAR PUERTOS”: Con este botón seleccionamos el puerto serie. con el que deseemos trabajar. ANEXOS: En esta sección detallaremos el programa en el lenguaje assembler del compilador MPLAB para la recepción de datos y su posterior muestra en una pantalla LCD 16x2.

EventArgs) Handles MyBase. hacia el pic.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9  BOTON CONECTAR: Este botón nos conecta con el puerto seleccionado y habilitando al siguiente botón que inicia la transmisión. que previamente se cargaron el buffer de salida del PC.Enabled = False btn_enviar. cada vez que se haga un clic en este puerto se enviaran los datos.  BOTON ENVIAR: Haciendo un clic en este botón iniciamos la transmisión de los datos contenidos en el TextBox. asignándoles números a cada uno.Load datotx = "" datorx = "" btn_conectar.Enabled = False SOFTWARE 5 INSTITUTO IDAT Página 23 .  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.Object. es decir COM1. Código de programa para esta aplicación: Public Class Form1 Dim datotx As String Dim datorx As String //declaracion de variables Private Sub Form1_Load(sender As System. etc. e As System. cada vez que se cambie de puerto se tendrá que conectar al mismo de lo contrario la transmisión se hará por el puerto antes seleccionado. COM2.

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

COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 2º. DIAGRAMA DE FLUJO PARA EL PIC 16F877A: INICIO CONFIGURO PORTB = PORTC. SOFTWARE 5 CODIGO EN ASSEMBLER PARA EL PIC: INSTITUTO IDAT Página 25 .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 DIRECCIÓN DE MEMORIA INCREMETA DIRECCION DE MEMORIA INICIA LCD MODO 4 BITS CREACION DE BUFFER PARA RECEPCION ¿LLEGO ÚLTIMO DBYTE? ENCIENDE EL MÓDULO 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 ALGÚN DATO? IR A SEGUNDA LINEA PANTALLA LCD SI LEER PRIMERA DIRECCION DEL BUFFER 1º.

como salida al pin 7 del puertoC .25 MOVWF SPBRG CLRF TRISB D BANKSEL PORTB CLRF BUFFER CLRF PORTC CLRF RCREG .seleccionamos banco 1 .borramos el registro buffer . para trabajar la pantalla por el puerto .R2.R1.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 LIST P=16F877A INCLUDE P16F877A.BUFFER. configuracion del TXSTA como .REG.INC CBLOCK 0X20 INDICE.7 CLRF TXSTA para baja velocidad MOVLW . banco 0 .BYTS ENDC ORG 0X2007 DW 0X3F7A ORG 0 GOTO INICIO ORG 0X05 INICIO BANKSEL TRISC BSF TRISC. espara para inicial la pantalla . borramos el RCREG CALL T_20MS CLRW MOVWF INDICE pantalla X2 SOFTWARE 5 . primer dato de comando de inicio de INSTITUTO IDAT Página 26 .R3. para trabajar a 2400 baudios . borramos el puerto D .

dos lineas . saltamos habilitar el modulo USART CALL MUESTRA SWAPF REG. cuando se termina de escribir el titulo MOVFW REG .'&' .0X20.0X80. caracter de 5 x 7 puntos .0X00. borramos W MOVWF INDICE . posicion a partir del segundo cuadro .0X00.F DT 0X20.COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 CALL COMANDOS MOVWF REG XORLW 0XFF BZ X1 MOVFW REG MOVWF PORTB CALL ENABLE INCF INDICE.0XC0.0X20.0X80. para el titulo .F DT "TX Y RX SERIAL". luego iremos a escribir el titulo COMANDOS ADDWF PCL.0X60. se mueve a indice X4 CALL TITULO MOVWF REG XORLW '&' BZ X5 . configuramos: . caracteres a mostrarse en pantalla SOFTWARE 5 INSTITUTO IDAT Página 27 .F MOVFW INDICE GOTO X2 .0X10.0X10. borrar pantalla .0XFF X1 CLRW .pantalla activa/cursor parpadeo off/no .W CALL MUESTRA INCF INDICE.0X00. modo 4 bits .F MOVFW INDICE GOTO X4 TITULO ADDWF PCL.

RCIF INCF FSR.F CALL SERIAL CALL MAS CALL MAS BTFSS PIR1.F GOTO S1 S3 MOVLW .F DECFSZ BYTS.16 MOVWF BYTS MOVLW 0X30 MOVWF FSR BTFSS PIR1.RCIF GOTO $-1 MOVFW RCREG MOVFW RCREG MOVWF INDF BCF PIR1.32 MOVWF INDF INCF FSR.RCIF GOTO VER DECFSZ BYTS.16 MOVWF BYTS MOVLW 0X30 MOVWF FSR S1 MOVLW .COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 X5 MOVLW B'10010000' MOVWF RCSTA NUEVO MOVLW .F GOTO S3 SOFTWARE 5 INSTITUTO IDAT Página 28 .

W CALL MUESTRA INCF FSR. para enviar la nueva pocicion del .F DECFSZ BYTS.******* SUB RUTINA DE MUESTRA EN MODO 4 BITS POR PUERTO D ****** SOFTWARE 5 INSTITUTO IDAT Página 29 . rutina de habilitacion de pantalla .16 MOVWF BYTS MOVLW 0X30 MOVWF FSR S2 MOVFW INDF MOVWF BUFFER CALL MUESTRA SWAPF BUFFER. tiempo de espera requerida por . bits para enviar un comando a la . a la linea 2 donde se escribiran .F GOTO S2 GOTO NUEVO .COMUNICACIÓN 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 .

24 MOVWF R3 NOP SOFTWARE 5 INSTITUTO IDAT Página 30 . SOLO SE VE EL NIBLE ALTO .0 CALL T_1MS BCF PORTB. HABILITAR LA PANTALLA . **** TIEMPO SEGUN FABRICANTE NESESARIO PARA LA PANTALLA **** SERIAL MOVLW . RETORNAMOS DE LA SUB .0 YA QUE CON ESTA ACCION CALL T_1MS PANTALLA PÁRA RECIBIR DATOS RETURN RUTINA . ESPERA NESESARIA CALL T_1MS RECOMENDAD POR EL FABRICANTE BSF PORTB. . HABILITAMOS REGRESAMOS DE A LA LA SUB . HACEMOS 0 EL BIT ENABLE. ESPERA NESESARIA . RS A 1 PARA ENVIAR DATO .******* ENABLE SUB RUTINA DE HABILITACION DE LA PANTALLA ***** . ENVIO A PUERTO D .F GOTO $-2 RETURN MAS MOVLW .COMUNICACIÓN 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 . A 1 EL BIT ENABLE .4 MOVWF R3 CALL TMPO DECFSZ R3. .

****** SUB RUTINA DE 1 MILISEGUNDO APROXIMADAMENTE *-***** TMPO MOVLW .COMUNICACIÓN PC A PIC CON PUERTO SERIE DB9 DECFSZ R3. ******** TIEMPO REQUERIDO SEGUN FABRICANTE PARA QUE LA PANTALLA INICIE *** T_20MS MOVLW .15 MOVWF R2 CALL TMPO DECFSZ R2.3 MOVWF R3 CALL TMPO DECFSZ R3.F GOTO $-2 RETURN T_1MS MOVLW .F GOTO $-2 RETURN .F GOTO $-2 RETURN .F GOTO $-2 RETURN END SOFTWARE 5 INSTITUTO IDAT Página 31 .249 MOVWF R1 NOP DECFSZ R1.

Sign up to vote on this title
UsefulNot useful