Sie sind auf Seite 1von 16

DEPARTAMENTO DE CIENCIAS DE LA ENERGÍA Y MECÁNICA

CARRERA DE INGENIERÍA MECATRÓNICA

Práctica No. 5

COMUNICACIÓN SERIAL ENTRE PIC16F877A.

Grupo De Laboratorio:

Andrés Marcelo Sampedro

Jefferson Paúl Pichucho


Richard Santiago Cangui

Latacunga, 05 de Enero del 2018


1. OBJETIVOS:

1.1. Objetivo General.


 Estudiar el funcionamiento del PIC 16F877A, en cuento a la comunicación
serial con la programación en PIC C.

1.2. Objetivos Específicos.


 Realizar la comunicación serial entre dos microcontroladores.
 Estudiar el funcionamiento de los puertos dedicados a la comunicación serial
que se pueden realizar en la programación del PIC16F877a.
 Realizar la correcta conexión del PIC en la en la protoboard y analizar sus
diferentes aspectos.

2. MARCO TEÓRICO:

2.1. PIC16F877A
Los PIC16F87X forman una subfamilia de microcontroladores PIC (Peripheral Interface
Controller) de gama media de 8 bits, fabricados por Microchip Technology Inc.
Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos fácilmente usando un dispositivo programador de PIC. Esta característica
facilita sustancialmente el diseño de proyectos, minimizando el tiempo empleado en
programar los microcontroladores (µC). Esta subfamilia consta de los siguientes
modelos que varían de acuerdo a prestaciones, cantidad de terminales y encapsulados:
 PIC16F870
 PIC16F871
 PIC16F872
 PIC16F873A
 PIC16F874A
 PIC16F876A
 PIC16F877A
La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A
indica que estos modelos cuentan con módulos de comparación analógicos. El hecho de
que se clasifiquen como microcontroladores (MCU) de 8 bits hace referencia a la
longitud de los datos que manejan las instrucciones, y que se corresponde con el tamaño
del bus de datos y el de los registros de la CPU.

Se trata de versiones mejoradas del caballo de batalla PIC16F84, muy empleado en


proyectos sencillos, de educación y de entrenamiento. (Jiménez, 2013)
Las características principales de estos dispositivos son:
 CPU de arquitectura RISC (Reduced Instruction Set Computer).
 Set de 35 instrucciones.
 Frecuencia de reloj de hasta 20MHz (ciclo de instrucción de 200ns).
 Todas las instrucciones se ejecutan en un único ciclo de instrucción, excepto las
de salto.
 Hasta 8K x 14 palabras de Memoria de Programa FLASH (ver tabla a
continuación).
 Hasta 368 x 8 bytes de Memoria de Datos tipo RAM (ver tabla a continuación).
 Hasta 256 x 8 bytes de Memoria de Datos tipo EEPROM (ver tabla a
continuación).
 Hasta 15 fuentes de Interrupción posibles.
 8 niveles de profundidad en la Pila hardware.
 Modo de bajo consumo (Sleep).
 Tipo de oscilador seleccionable (RC, HS, XT, LP y externo).
 Rango de voltaje de operación desde 2,0V a 5,5V.345
 Conversor Analógico/Digital de 10 bits multicanal.
 3 Temporizadores.
 Watchdog Timer o Perro Guardián.
 2 módulos de captura/comparación/PWM.
 Comunicaciones por interfaz USART (Universal Synchronous Asynchronous
Receiver Transmitter).
 Puerto Paralelo Esclavo de 8 bits (PSP).
 Puerto Serie Síncrono (SSP) con SPI e I²C.

ILUSTRACIÓN 1: PIC16F628A
ILUSTRACIÓN 2: DISTRIBUCION DE PINES DEL PIC

2.2. Resistencia
El símbolo de la resistencia es:

Una resistencia también llamado resistor es un elemento que causa oposición al paso de
la corriente, causando que en sus terminales aparezca una diferencia de tensión (un
voltaje).

La máxima cantidad de corriente que puede pasar por una resistencia, depende del
tamaño de su cuerpo. Los valores de potencia comunes de las resistencias son: 1/4, 1/2,
1 watt, aunque hay de valores mayores.

ILUSTRACIÓN 3: R ESISTENCIA
2.3. LCDs

El LCD(Liquid Crystal Dysplay) o pantalla de cristal líquido es un dispositivo empleado


para la visualización de contenidos o información de una forma gráfica, mediante
caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado
por un microcontrolador el cual dirige todo su funcionamiento.

En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2
filas de 16 caracteres cada una. Los píxeles de cada símbolo o carácter, varían en
función de cada modelo. (Isaxan, 2014)

En la siguiente imagen de Proteus se puede observar la estructura de sus pines.

Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus
de datos bidireccional. Por lo general podemos encontrar ademas en su estructura los
pines de Anodo de led backlight y cátodo de led backlight.

ILUSTRACIÓN 4. LCD DE 16 X2 EN PROTEUS. (AUTOR )


Pines de alimentación:
Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K
conectado a Vdd.

Pines de control:
RS: Corresponde al pin de selección de registro de control de datos (0) o registro de
datos(1). Es decir el pin RS funciona paralelamente a los pines del bus de datos. Cuando
RS es 0 el dato presente en el bus pertenece a un registro de control/instrucción. y
cuando RS es 1 el dato presente en el bus de datos pertenece a un registro de datos o un
carácter.
RW: Corresponde al pin de Escritura(0) o de Lectura(1). Nos permite escribir un dato
en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E(0) esto quiere decir que el LCD no
está activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o
leer desde el LCD.
Pines de Bus de datos:
El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la
comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de datos(D0 a
D7) o empleando los 4 bits más significativos del bus de datos(D4 a D7). En este caso
vamos a explicar la comunicación con el bus de 4 bits. (Isaxan, 2014)

3. MATERIALES:

 Fuente de 5V
 2 PIC16F877A
 Conectores (Jumpers)
 Resistencias
 Protoboard
 SUPERPRO Model 3000U
 Software SUPERPRO
 Potenciómetros
 Crystal 4MHz
 LCD 16x2
4. PROCEDIMIENTO:

a) Asegurarse de que la mesa de trabajo se encuentre en buen estado, al igual que


todos los dispositivos a utilizarse.

ILUSTRACIÓN 5. M ESA DE TRABAJO .

b) Abrir la simulación en Proteus Professional 8.0.

ILUSTRACIÓN 6. C ONFIGURACIÓN PARA EL PRIMER CIRCUITO .


c) Realizar la conexión de los dispositivos que se encuentran en la simulación.

ILUSTRACIÓN 7. C ONEXIÓN PARA EL CIRCUITO 1, 2 Y 3.

d) Se coloca el PIC en el quemador SUPERPRO.

ILUSTRACIÓN 8. QUEMADOR SUPERPRO.


e) Se abre el software del quemador de PIC.

ILUSTRACIÓN 9. SUPERPRO S OFTWARE .

f) Un clic en erase.

Ilustración 10. SUPERPRO Software.


g) Se da un clic en Blank Check.

Ilustración 11. SUPERPRO Software.

h) Se carga el archivo .hex con la programación antes ya construido en el software


PIC C.

Ilustración 12. SUPERPRO Software.


i) Se verifica las configuraciones en DEV-CONFIG.

Ilustración 13. SUPERPRO Software.

j) Se da un clic en Program.

Ilustración 14. SUPERPRO Software.


k) Cuando da un OK se puede retirar el PIC.
l) Se empieza a realizar la conexión del PIC en el protoboard con os elementos
correspondientes de cuerdo la simulación realizada en Proteus.
m) Se alimenta el entrenador por medio del cable USB conectándolo a este en el
computador del laboratorio.

I LUSTRACIÓN 15. ALIMENTACIÓN DEL ENTRENADOR .


n) Se estudia los resultados obtenidos.

5. ANÁLISIS DE RESULTADOS:

CIRCUITO 1

Mostrar en un LCD un contador del 1 al 4, mediante un PIC realizar el conteo y


por medio de otro mostrar los resultados en el LCD.

Circuito – Comunicación serial entre dos PIC


La comunicación serial entre dos dispositivos se la realiza enlazando un programa
emisor al programa receptor, en este caso el emisor envía valores numéricos del 1 al 4
en orden descendente, al receptor el mismo que imprime los valores en un display que
muestra la cadena de caracteres “Valor:”, y el número en descenso del 4 al 1.

Programación del emisor en PIC C:


//#include "C:\Users\Marcelo\Documents\UNIVERSIDAD\7. SEPTIMO\MICROPROC.
MICROCONTROLADORES\segunda unidad\pic_emisor_poten.h"
#include <16F877A.h>
#device adc=10;
#include <stdlib.h>
#fuses XT,NOWDT
#use delay (clock=4M)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7)

char cadena[];
int16 x;
float valor;
int i;
void main()
{
setup_adc_ports(0);
setup_adc(adc_clock_internal);
while(true)
{
set_adc_channel(0);
x=read_adc();
valor=5.0*x/1023.0;
//printf(lcd_putc,"Voltaje: %1.2f",y);
printf("%01.2f",valor);
//printf(cadena,"%1.2f",y);
printf("\r");
sprintf(cadena,"%01.2f", valor);
}
for(i=0;i<=5;i++)
{
putc(cadena[i]);
delay_ms(150);
}
Programación del receptor en PIC C:
#include <16F877A.h>
#include <stdlib.h>
#fuses XT, NOWDT
#use delay (clock=4M)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7)
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_ENABLE_PIN PIN_B2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include <LCD.c>
char cadena[];
int i;
float valor;
#int_RDA
rda_uno()
{
cadena[i]=getc();
i++;
lcd_init();
if(i==6)
{
i=0;
valor = atof(cadena);
lcd_gotoxy(1,1);
printf(lcd_putc,"\fVoltaje recibido");
printf(lcd_putc,"\n%01.2fV",valor);
}

delay_ms(200);
}

void main()
{
enable_interrupts(int_rda);
enable_interrupts(global);

/*
while(true)
{
//lcd_gotoxy(1,1);

//printf(lcd_putc,"%c",dato);
//delay_ms(5);
}
*/
}

6. CONCLUSIONES:

 Se analizó los programas que se cargaron en el PIC, La comunicación serial se la


realizó entre dos microcontroladores, tomando en cuenta que un dispositivo es el
emisor y el otro el receptor, en el mismo está conectado el display que es el
medio de visualización de datos.
 Se analizó el correcto funcionamiento de los puertos dedicados a la
comunicación serial en la programación de un PIC, están se ven reflejadas a que
se puede pasar información tomada en un PIC o al mismo tiempo dar órdenes al
otro PIC para que accione otros circuitos secundarios.
 Se realizó la conexión correcta del PIC en el protoboard, dándose que el único
problema que hubo fue cuando se quiso conectar los puertos RX y TX ya que
estos van cruzados de PIC a PIC.

7. RECOMENDACIONES:

 Es óptimo al momento de realizar la programación ir colocando líneas de


comentario para luego al compilar el programa, si llegará a existir errores
poderlos detectar fácilmente.
 Conocer cómo se coloca el PIC en el programador la manera de colocar los
pines para que el mismo no posea un fallo o deje de funcionar.
 Poseer los materiales necesarios para realizar el montaje del circuito que se
desee comprobar.
8. BIBLIOGRAFÍA:

England, S. B. (30 de Mayo de 2012). tecnologiayeducacion. Obtenido de


http://www.tecnologiayeducacion.com/%C2%BFque-es-luz-led/
Isaxan. (22 de abril de 2014). elcajondeardu. Obtenido de
http://elcajondeardu.blogspot.com/2014/04/display-de-7-segmentos-1-
digito.html
Jiménez, S. G. (4 de febrero de 2013). apuntes-electronicos. Obtenido de http://apuntes-
electronicos.blogspot.com/2013/02/caracteristicas-generales-del-pic-
16f877.html