USART PIC ejemplos


Compartir: Share on Facebook1Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on LinkedIn0

Anterior: USART PIC Comunicación Serial.

USART PIC ejemplos, en esta sección se realizarán algunos ejemplos sencillos realizados con el XC8 sobre la utilización del módulo USART PIC en modo asíncrono, esta es la parte práctica de lo que se vio aquí, por lo que se recomienda antes de continuar visitar el enlace indicado. Se utilizará el archivo de cabecera usart.h que se obtuvo para la transmisión y recepción de datos con el módulo USART PIC, el microcontrolador PIC para realizar el USART PIC ejemplos será el PIC16F887A en un inicio, luego se complementará con otros PICS.

😉 Puedes descargar este contenido en PDF desde aquí.

El archivo de cabecera usart.h que se obtuvo para ser utilizado con el PIC16F877A en el que la Fosc=4Mhz y la velocidad de comunicación será a 9600 baudios es el siguiente, con algunas pequeñas modificaciones se puede utilizar en cualquier otro PIC16xxx, si se utiliza otra Fosc y/o otra velocidad de comunicación hay que hacer los cálculos con SPBRG=(Fosc/(16*baudios))-1 para el nuevo valor a cargar en SPBRG.

USART PIC EJEMPLOS

USART PIC ejemplos 1 En este primer ejemplo se  realizará la comunicación serial entre 2 microcontroladores PIC16F877A, mediante dos pulsadores conectados en los pines RA0 y RA1 de uno de los PIC se podrá encender o apagar un led conectado en el pin RB1 del otro PIC.

Para utilizar los pines RA0 y RA1 como entradas digitales, aparte configurarlos con el registro TRISA, es necesario poner el registro ADCON1 del módulo ADC a 6, esto es ADCON1=6.

El ejemplo es sencillo para no complicar el código, pero  se puede hacer lo que se quiera mediante la comunicación serial, la idea será la misma si se quiere hacer cualquier tipo de control de un microcontrolador con otro microcontrolador.

En este ejemplo lo que se busca es que se vea como utilizar el archivo de cabecera usart.h ya que será el utilizado en los siguientes USART PIC ejemplos.

En la siguiente imagen se ha creado un proyecto llamado usart1, con el archivo fuente llamado usart_pic_ejemplos1.c, el la parte resaltada Header Files se hace click derecho y en New se selecciona C Header File…,en la ventana que aparece dentro de File Name se le da el nombre de usart en Extension debe estar selecciona da la opción h, y se pulsa sobre Finish así se creará el archivo llamado usart.h, luego se hace doble  click sobre el archivo usart.h creado para que abrir el editor usart.h, se borra todo lo que el programa genere, que quede limpio, se copia el contenido mostrado lineas arriba y se pega dentro de usart.h, el resultado debe ser similar al que se ve en la siguiente imagen.

Usart pic ejemplos 1 usart.h

A partir de este momento ya se puede utilizar el archivo de cabecera usart.h para realizar la comunicación serial con el módulo USART PIC

El circuito utilizado para el USART PIC ejemplos 1 es el siguiente:

Usart pic ejemplos 1 circuito ec

Con el pulsador del pin RA0 del PIC 1 se encenderá el led del pin RB1 del PIC 2, con el pulsador del pin RA1 del PIC 1 se apagará el led del pin RB1 del PIC 2.

En el código para el PIC 1 se tiene que hacer que al presionar el pulsador para encender el led se transmitirá el caracter ‘e’ al PIC 2, al presionar el pulsador para apagar el led se transmitirá el caracter ‘a’ al PIC 2, el siguiente será el código para el PIC 1.

En el código para el PIC 2 se tiene que hacer que cuando reciba el  caracter ‘e’ el led se encienda y cuando reciba el caracter ‘a’ el led se apague. El siguiente será el código para el PIC 2

USART PIC ejemplos 2 En este segundo ejemplo se  realizará la comunicación serial entre 2 microcontroladores PIC, uno de ellos será el PIC16F88 y el otro será el PIC16F877A, en el PIC16F88 se creará una variable cuyo valor aumentará en una unidad cada medio segundo, el tiempo estará controlado por la interrupción por desborde del timer1 del PIC16F88, cada 2 segundos se transmitirá un caracter que puede ser ‘1’, ‘2’, ‘3’ o ‘4’ al PIC16F877A, de acuerdo al caracter recibido por el PIC16F877A se encenderá un led en el puerto D de este.

Para el PIC16F88 será necesario modificar en el archivo de cabecera usart.h dentro de la función iniciar_usart() la ubicación de los pines TX y RX del PIC16F88, modificando el registro tris correspondiente, el pin RX está en el pin RB2 y el pin TX está en el pin RB5.

El circuito utilizado para el USART PIC ejemplos 2 es el siguiente:

Usart pic ejemplos 2 circuito

En el código para el PIC16F88 se creará la variable que aumentará en una unidad cada medio segundo, cuando aumente en cuatro unidades se transmitirá un caracter al PIC16F877A, el código es el siguiente:

En el código para el PIC16F877A se encenderá un led en el puerto D dependiendo del caracter recibido del PIC16F88, el código para el  PIC161F877A es el siguiente:

USART PIC ejemplos 3 En este tercer ejemplo se  realizará la comunicación serial entre el microcontrolador PIC16F877A y el ordenador utilizando el archivo de cabecera usart.h, en este caso solo se enviará un mensaje para ser visto en el ordenador.

Se necesitará una ventana conocida como terminal donde se podrá ver lo que se transmite del microcontrolador al ordenador, y también para ver los datos que se transmiten del ordenador al microcontrolador.

Si se esta programando en Windows XP se utilizará el hyper terminal, si se esta programando en el Windows 7 u 8 no se tendrá el hyper terminal, y habrá que buscarse algún programa que cumpla la función del hyper terminal, en nuestro caso se está programando en Windows 8 y este no tiene el hyper terminal, por lo que se utilizará el TERA TERM el que se puede descargar desde aquí, en la siguiente imagen se puede ver el tera term.

Usart pic ejemplos 3 tera term

Se utilizará el conversor serial-usb para la comunicación entre el PIC16F877A y el ordenador; en el  tera term se irá a setup luego a serial port para configurar el puerto serial donde se ubica el conversor serial-usb, normalmente lo detecta solo, también se puede establecer la comunicación serial utilizando el visual basic, el java, el matlab y muchos mas, pero para empezar se usará el tera term.

El circuito a utilizar será el siguiente, hay que ser muy  cuidadoso en cuanto a las conexiones a realizar entre el ordenador, el conversor serial-usb, la compuerta inversora, las resistencias y el microcontrolador.

Usart pic ejemplos 3 circuito serie

La imagen siguiente es el circuito montado en el protoboar con el conversor serial-usb

Usart pic ejemplos 3 circuito en protoboard

En el código realizado en el XC8 para este ejemplo se enviará un mensaje al ordenador mediante la función enviar_cadena_usart() que se encuentra dentro del archivo de cabecera usart.h, el código es el siguiente:

La siguiente es la imagen del  mensaje visto en pantalla en el tera term

Usart pic ejemplos 3 mensaje en tera term

USART PIC ejemplos 4 En este cuarto ejemplo se  realizará la comunicación serial entre el microcontrolador PIC16F877A y el ordenador utilizando el archivo de cabecera usart.h, se encenderá y apagará un led conectado en el microcontrolador, al presionar la tecla + del ordenador se encenderá el led, al presionar la tecla – del ordenador se apagará el led, se utilizará el TERA TERM para realizar la comunicación.

El circuito a utilizar será el siguiente, hay que ser muy  cuidadoso en cuanto a las conexiones a realizar entre el ordenador, el conversor serial-usb, la compuerta inversora, las resistencias y el microcontrolador.

Usart pic ejemplos 4 circuito

En el código realizado en el XC8 se utilizará la función recibe_caracter_usart() que está dentro de la función de cabecera usart.h para recibir el caracter transmitido por el ordenador, cuando el caracter sea ‘+’ se encenderá el led conectado al pin RD1, cuando el caracter sea ‘-‘ se apagará el led. El código es el siguiente:

La siguiente es la imagen del caracter enviado por el ordenador y del mensaje visto en pantalla en el tera term, para poder ver el caracter enviado, en el tera term hay que ir a setup -> terminal y habilitar Local echo.

Usart pic ejemplos 4 ventana tera term

El módulo USART PIC también puede ser utilizado mediante interrupciones, la forma de proceder en este caso se puede ver aquí.

Si he podido ayudarte con USART PIC ejemplos, comparte este enlace para poder ayudar a muchas personas mas. Muchas Gracias.

Atte: MrElberni.

Compartir: Share on Facebook1Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on LinkedIn0