Vous êtes sur la page 1sur 17

MICROPROCESADORES Y MICROCONTROLADORES

INFORME DE PRACTICA DE LABORATORIO


TEMA:
PROGRAMACIN Y COMPROBACIN DE LA COMUNICACIN
SERIAL DE DOS MICROCONTROLADORES 16F877A
NOMBRES:
SEMANATE CLINTON
TOALOMBO INTI

FECHA:
LATACUNGA, 18 DE ENERO DEL 2016

NIVEL:
SPTIMO MECATRNICA

INDICE
1.

OBJETIVOS .................................................................................................................................. 3

3.

INFORMACIN BSICA SOBRE EL TEMA ........................................................................... 3

4.

PROCEDIMIENTO ..................................................................................................................... 11

5.

ANLISIS DE RESULTADOS .................................................................................................. 15

6.

CONCLUSIONES....................................................................................................................... 15

7.

RECOMENDACIONES ............................................................................................................. 16

8.

BIBLIOGRAFA ........................................................................................................................... 16

|2

1. OBJETIVOS
1.1.
1.2.
1.3.
1.4.
1.5.

Operar y Reconocer las caractersticas del PIC 16F877A


Aprender la distribucin de pines del PIC16F877A
Realizar la comunicacin serial entre dos PIC 16F877A
Realizar dos programas para cada PIC para trasmitir y receptar los datos
Realizar el montaje de circuitos en el Protoboard para observar la comunicacin serial
visualizando en dos LCD

2. EQUIPOS QUE SE UTILIZARON


2.1. 2 PIC 16F877A
2.2. 2 LCD 16x2
2.3. 2 Osciladores de 4Mhz
2.4. 4 Potenciometros
2.5. 8 Resistencias de 4.7k
2.6. 1 LM35
2.7. Multmetro
2.8. Cables de conexin
2.9. Programador de PIC
2.10. Fuente de Voltaje
2.11. Computador

3. INFORMACIN BSICA SOBRE EL TEMA


Microcontrolador PIC 16F877A
Microcontrolador

Ilustracin 1 Microcontroladores estructura Fsica. [1]

Un microcontrolador es un circuito integrado, que posee la arquitectura de un computador, osea que


tiene CPU, Memoria RAM, Memoria EEPROM, Circuitos de entrada y salida, conversores A/D D/A. [1]
Adems, es programable mediante una tarjeta electrnica llamada PROGRAMADOR, la cual nos
ayudara a grabar el cdigo (que hemos realizado previamente y compilado el computador) hacia el
integrado (microcontrolador).
|3

Tambin hay que tener en cuenta que un Microcontrolador no es un PIC, pero un PIC si es un
Microcontrolador, es bueno aclarar este detalle.
En la categora de microcontroladores existen diversas marcas que fabrican estos circuitos integrados,
los ms reconocidos estn Microchip(PIC), Atmel(AVR), Freescale, Parallax, Texas Instruments, entre
otros fabricantes.
Funcin de un Microcontrolador
Un microcontrolador al ser programable, puede llevar a cabo cualquier tarea para la cual haya sido
programado, desde un simple oscilador digital hasta un complejo sistema digital programable. [1]
PIC
Un microcontrolador PIC (Interfaz de Control de Perifricos), son fabricados por la empresa
MICROCHIP Techology, esta empresa ocupa el primer lugar en ventas de microcontroladores de 8 bits.
[1]

Uno de los microcontroladores ms populares de todos los tiempos ha sido el legendario PIC16F84,
pero en la actualidad es el PIC16F628A, este microcontrolador soporta hasta 100.000 ciclos de
escritura en su memoria flash, y 1'000.000 de ciclos en su memoria EEPROM y se puede reescribir un
sin nmero de veces.
Nota: hay que tener en cuenta que los microcontroladores PIC tienen tecnologa CMOS, esto quiere
decir que consume muy poca corriente, pero a la vez es susceptible a daos por esttica, se
recomienda utilizar pinzas para manipular y as poder transportar desde el grabador al protoboard o
viceversa, o a su vez utilizar una pulsera anti esttica.
En este proyecto se utiliz el PIC 16F877. Este microcontrolador es fabricado por MicroChip familia a
la cual se le denomina PIC. El modelo 16F877 posee varias caractersticas que hacen a este
microcontrolador un dispositivo muy verstil, eficiente y prctico para ser empleado en la aplicacin
que posteriormente ser detallada.
Algunas de estas caractersticas se muestran a continuacin:

Soporta modo de comunicacin serial, posee dos pines para ello.


Amplia memoria para datos y programa.
Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este tipo de
memoria se puede borrar electrnicamente (esto corresponde a la "F" en el modelo).
Set de instrucciones reducido (tipo RISC), pero con las instrucciones necesarias para facilitar
su manejo.

Caractersticas Principales del PIC 16F877A

|4

Ilustracin 2 Distribucin de Pines del PIC 16F877A

En siguiente tabla de pueden observar las caractersticas ms relevantes del dispositivo [2]:
CARACTERSTICAS
Frecuencia mxima

16F877
DX-20MHz

Memoria de programa flash palabra de 14 bits

8KB

Posiciones RAM de datos

368

Posiciones EEPROM de datos

256

Puertos E/S

A,B,C,D,E

Nmero de pines

40

Interrupciones

14

Timers

Mdulos CCP

Comunicaciones Serie
Comunicaciones paralelo
Lneas de entrada de CAD de 10 bits
Juego de instrucciones
Longitud de la instruccin
Arquitectura
CPU

MSSP, USART
PSP
8
35 Instrucciones
14 bits
Harvard
Risc

Canales Pwm

Pila Harware

Ejecucin En 1 Ciclo Mquina

Descripcin de los puertos [2]:


Puerto A:
|5

Puerto de e/s de 6 pines


RA0 RA0 y AN0
RA1 RA1 y AN1
RA2 RA2, AN2 y VrefRA3 RA3, AN3 y Vref+
RA4 RA4 (Salida en colector abierto) y T0CKI(Entrada de reloj del modulo Timer0)
RA5 RA5, AN4 y SS (Seleccin esclavo para el puerto serie sncrono)

Puerto B:

Puerto e/s 8 pines


Resistencias pull-up programables
RB0 Interrupcin externa
RB4-7 Interrupcion por cambio de flanco
RB5-RB7 y RB3 programacion y debugger in circuit

Puerto C:
Puerto e/s de 8 pines

RC0 RC0, T1OSO (Timer1 salida oscilador) y T1CKI (Entrada de reloj del mdulo Timer1).
RC1-RC2 PWM/COMP/CAPT
RC1 T1OSI (entrada osc timer1)
RC3-4 IIC
RC3-5 SPI
RC6-7 USART

Puerto D:

Puerto e/s de 8 pines


Bus de datos en PPS (Puerto paralelo esclavo)
Puerto E:
Puerto de e/s de 3 pines
RE0 RE0 y AN5 y Read de PPS
RE1 RE1 y AN6 y Write de PPS
RE2 RE2 y AN7 y CS de PPS

Dispositivos perifricos [2]:

Timer0: Temporizador-contador de 8 bits con preescaler de 8 bits


Timer1: Temporizador-contador de 16 bits con preescaler que puede incrementarse en modo
sleep de forma externa por un cristal/clock.
Timer2: Temporizador-contador de 8 bits con preescaler y postescaler.
Dos mdulos de Captura, Comparacin, PWM (Modulacin de Anchura de Impulsos).
Conversor A/D de 1 0 bits.
Puerto Serie Sncrono Master (MSSP) con SPI e I2C (Master/Slave).
USART/SCI (Universal Syncheronus Asynchronous Receiver Transmitter) con 9 bit.

APLICACIN

|6

El proyecto presentado tendr como objetivo principal, disear un controlador de temperatura


usando un microcontrolador.
Se parte del hecho de que para realizar el control, hay que sensar la variable de proceso en primer
lugar, posteriormente se debe enviar las seales e instrucciones respectivas al elemento de control
(microcontrolador) para que este actu en consecuencias realizando la accin de control.
Se tiene como elemento principal un microcontrolador PIC16F877, el cual recibir a travs de
pulsadores, el valor de Setpoint que desee el usuario.
Se utilizar una pantalla de LCD, donde se visualizarn los valores de Setpoint. El manejo de dicha
pantalla se realizar a travs de los puertos de salida del microcontrolador.
Software
Los softwares que utilizaremos son los siguientes:
PIC C copiler
PIC C Compiler es un inteligente y muy optimizado compilador C que contienen operadores estndar
del lenguaje C y funciones incorporados en bibliotecas que son especficas a los registros de PIC,
proporcionando a los desarrolladores una herramienta poderosa para el acceso al hardware las
funciones del dispositivo desde el nivel de lenguaje C. [3]
El compilador CCS contiene ms de 307 funciones integradas que simplifiquen el acceso al hardware,
mientras que la produccin eficiente y altamente optimizado cdigo. Se incluyen funciones de
hardware del dispositivo de caractersticas tales como:

Temporizadores y mdulos PWM


Convertidores A / D
de datos on-chip EEPROM
LCD controladores
Memoria externa buses

Ilustracin 3 Ventana del Programa PIC C copiler para escribir el Cdigo. [3]

|7

Proteus
Proteus es una compilacin de programas de diseo y simulacin electrnica, desarrollado por
Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los mdulos VSM y
Electra. [4]
Isis
El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente)
permite disear el plano elctrico del circuito que se desea realizar con componentes muy variados,
desde simples resistencias, hasta alguno que otro microprocesador o microcontrolador, incluyendo
fuentes de alimentacin, generadores de seales y muchos otros componentes con prestaciones
diferentes. [4]
Es una herramienta indispensable para la simulacin de circuitos electrnicos ya que evita quemar el
microcontrolador y armar el circuito en el protoboard. [5]

Ilustracin 4 Ventana del Programa Isis Profesional-Proteus para simular. [5]

LCD 16x2

Ilustracin 5 LCD 16x2. [6]

|8

El LCD (Liquid Crystal Dysplay) o pantalla de cristal lquido es un dispositivo empleado para la
visualizacin de contenidos o informacin de una forma grfica, mediante caracteres, smbolos o
pequeos dibujos dependiendo del modelo. Est gobernado por un microcontrolador el cual dirige
todo su funcionamiento. [7]
En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2 filas de 16 caracteres
cada una. Los pxeles de cada smbolo o carcter, varan en funcin de cada modelo.
Caractersticas principales:

Pantalla de caracteres ASCII, adems de los caracteres Kanji y Griegos.


Desplazamiento de los caracteres hacia la izquierda o la derecha.
Proporciona la direccin de la posicin absoluta o relativa del carcter.
Memoria de 40 caracteres por lnea de pantalla.
Movimiento del cursor y cambio de su aspecto.
Permite que el usuario pueda programar 8 caracteres.
Conexin a un procesador usando un interfaz de 4 u 8 bits [8]

Conexin:
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos dividir en los Pines de alimentacin, pines de control y los pines del bus de datos
bidireccional. Por lo general podemos encontrar adems en su estructura los pines de nodo de led
backlight y ctodo de led backlight. [9]

Ilustracin 6 LCD 16x2 en proteus. [9]

Tabla 1. Pines de Distribucin

|9

Comunicacin Serial

Ilustracin 7 Comunicacin Serial entre Dos PIC [10]

La comunicacin serial es un protocolo muy comn (no hay que confundirlo con el Bus Serial de
Comunicacin, o USB) para comunicacin entre dispositivos que se incluye de manera estndar en
prcticamente cualquier computadora. La mayora de las computadoras incluyen dos puertos seriales
RS-232. La comunicacin serial es tambin un protocolo comn utilizado por varios dispositivos para
instrumentacin; existen varios dispositivos compatibles con GPIB que incluyen un puerto RS-232.
Adems, la comunicacin serial puede ser utilizada para adquisicin de datos si se usa en conjunto
con un dispositivo remoto de muestreo. [11]
El concepto de comunicacin serial es sencillo. El puerto serial enva y recibe bytes de informacin un
bit a la vez. Aun y cuando esto es ms lento que la comunicacin en paralelo, que permite la
transmisin de un byte completo por vez, este mtodo de comunicacin es ms sencillo y puede
alcanzar mayores distancias. Por ejemplo, la especificacin IEEE 488 para la comunicacin en paralelo
determina que el largo del cable para el equipo no puede ser mayor a 20 metros, con no ms de 2
metros entre cualesquier dos dispositivos; por el otro lado, utilizando comunicacin serial el largo del
cable puede llegar a los 1200 metros. [11]
RS-232
RS-232 (Estndar ANSI/EIA-232) es el conector serial hallado en las PCs IBM y compatibles. Es utilizado
para una gran variedad de propsitos, como conectar un ratn, impresora o modem, as como
instrumentacin industrial. Gracias a las mejoras que se han ido desarrollando en las lneas de
transmisin y en los cables, existen aplicaciones en las que se aumenta el desempeo de RS-232 en lo
que respecta a la distancia y velocidad del estndar. RS-232 est limitado a comunicaciones de punto
a punto entre los dispositivos y el puerto serial de la computadora. El hardware de RS-232 se puede
utilizar para comunicaciones seriales en distancias de hasta 50 pies. [11]
Handshaking (o intercambio de pulsos de sincronizacin)
El mtodo de comunicacin usado por RS-232 requiere de una conexin muy simple, utilizando slo
tres lneas: Tx, Rx, y GND. Sin embargo, para que los datos puedan ser transmitidos correctamente
ambos extremos deben estar sincronizados a la misma velocidad. Aun y cuando este mtodo es ms
que suficiente para la mayora de las aplicaciones, es limitado en su respuesta a posibles problemas
que puedan surgir durante la comunicacin; por ejemplo, si el receptor se comienza a sobrecargar de
informacin. Es en estos casos cuando el intercambio de pulsos de sincronizacin, o handshaking, es
til. En esta seccin se describirn brevemente las tres formas ms populares de handshaking con RS232: handshaking for software, handshaking por hardware, y XModem. [11]
| 10

4. PROCEDIMIENTO
4.1. Previo a comprobar su funcionamiento de forma real se realiza la programacin para el PIC
en nuestro caso el microcontrolador 16F877A, los diferentes programas se realizan con
ayuda del compilador para lenguaje C.
a) Programa del PIC nmero 1- En este Pic se lee el dato del LM35 que va a transmitir
al Pic 2, al mismo tiempo recibir el dato de voltaje ledo por el Pic 2
CODIGO:
#include <16F877A.h>
#fuses XT, NOWDT
#device ADC=10
#use delay (clock=4M)
#include <lcd.c>
#use rs232(baud=9600,bits=9,xmit=pin_c6,rcv=pin_c7)
int Dato;
//Dato a transmitir
int16 Temp; //leer el valor del conversor
float v;
#int_RDA
void RDA_isr(){
Dato=getc();
}

//Interrupcin por recepcin de datos


//En "valor" el dato recibido via RS232

void main(){
enable_interrupts(INT_RDA); //Habilitacin interrupcin por recepcin RS232
enable_interrupts(GLOBAL);
// Activar el adc
setup_adc_ports(0);
setup_adc(adc_clock_internal);
lcd_init();
while(true){
set_adc_channel(0);
Temp=read_adc();
v=((5.0*Dato)/1023.0);
putc(Temp);//Envia este dato al PIC2
lcd_gotoxy(1,1);
printf(lcd_putc,"Voltaje Recibido");
lcd_gotoxy(1,2);
printf(lcd_putc,"PIC#2: %1.2f (V)",v);
delay_ms(200);
printf(lcd_putc,"\f");
}
| 11

}
b) Programa del PIC nmero 2- En este Pic se lee el dato de Voltaje del limitado por el
Potencimetro que va a transmitir al Pic 1, al mismo tiempo recibir el dato de
temperatura ledo por el Pic 1
CODIGO
#include <16F877A.h>
#fuses XT, NOWDT
#device ADC=10
#use delay (clock=4M)
#include <lcd.c>
#use rs232(baud=9600,bits=9,xmit=pin_c6,rcv=pin_c7)
int16 Dato;
//Dato a transmitir
int16 Voltaje; //leer el valor del conversor
float t;
#int_RDA
//Interrupcin por recepcin de datos
void RDA_isr(){
Dato=getc();
//En "valor" el dato recibido via RS232
}
void main(){
enable_interrupts(INT_RDA); //Habilitacin interrupcin por recepcin RS232
enable_interrupts(GLOBAL);
// Activar el adc
setup_adc_ports(0);
setup_adc(adc_clock_internal);
lcd_init();
while(true){
set_adc_channel(0);
Voltaje=read_adc();
t=((500.0*Dato)/1023.0);
putc(Voltaje);//Envia este dato al PIC1
lcd_gotoxy(1,1);
printf(lcd_putc,"Temperatura Recibida:");
lcd_gotoxy(1,2);
printf(lcd_putc,"PIC#1: %1.2f (C)",t);
delay_ms(200);
printf(lcd_putc,"\f");
}
}

| 12

4.2. Compilar cada uno de los programas del paso 4.1 y verificar que no existan errores de
sintaxis y de programacin.

4.3. Simular el circuito con ayuda del software Proteus, cargar el programa y verificar el
funcionamiento de forma visual.

4.4. Ubicar el PIC en el programador y verificar que este correctamente colocado.

| 13

4.5. Esperar que el microcontrolador 16F877A sea identificado.

4.6. Una vez reconocido el PIC, se procede a borrar cualquier programa que haya estado en PIC
anteriormente.
4.7. Una vez verificado el correcto funcionamiento del programa, se procede a cargar el
programa .hex al PIC y se programa en el PIC el cdigo.

4.8. Realizar las conexiones pertinentes de forma real en el protoboard, importante tomar en
cuenta las polarizaciones del PIC.

| 14

4.9. Alimentar el circuito con 5 voltios de corriente continua


4.10.
Observar y anotar los resultados para el posterior anlisis.

5. ANLISIS DE RESULTADOS
5.1. Es necesario realizar la comprobacin del programa con ayuda de un compilador para
lenguaje C y simular de manera visual el circuito esto se los puede realizar con el simulador
proteus, se realiza esto para evitar cometer errores en la implementacin real del circuito en
el protoboard.
5.2. Para cargar el programa en el PIC 16F877A es necesario utilizar un software para el efecto
en este caso el Software K150 que es instalado en una mquina virtual, se debe asegurar a
dems que al momento de ubicar el PIC en el programador est seguro ,y borrar cualquier
programa que haya estado grabado en la memoria del PIC con el fin de cargar el nuevo
programa ,siempre elegir el programa con la extensin .hex.
5.3. Cuando se realiza el cdigo es obligatorio asignar fuses, y se debe configurar los puertos A y
B como entradas o salidas, segn la conveniencia del programador, indispensable establecer
la frecuencia del oscilador interno del PIC ya que sin este no ser posible el funcionamiento
del PIC.
5.4. Una vez montado el circuito en el protoboard se pudo comprobar el correcto funcionamiento
del PIC 16F877A y su comunicacin serial, se trabaj con una alimentacin de 5Vcc.

6. CONCLUSIONES
6.1. El PIC utilizado en la prctica se puede programar y reprogramar (escribir y borrar) muchas
veces, siempre que se lo utiliza de forma correcta, el fabricante especifica el nmero mximo
de escritura y borrado.
6.2. La comunicacin serial necesitan la librera #int_RDA y #uses rs232 necesarias para su
compilacin correcta y se debe establecer una frecuencia del oscilador.
6.3. La parte visual se lo comprueba en el simulador proteus pero no siempre funciona tal cual
una vez que se monta el circuito de forma fsica, porque se debe tomar en cuenta muchos
parmetros que el simulador ya lo hace por default como por ejemplo la polarizacin.
| 15

7. RECOMENDACIONES
7.1. Es recomendable alimentar el PIC con un voltaje no mayor a Voltios de corriente continua
para obtener un funcionamiento ptimo del PIC.
7.2. Tomar en cuenta todos los parmetros tales como la polarizacin que el en simulador Poteus
no lo considera.
7.3. Se recomienda borrar cualquier programa que haya estado grabado en el microcontrolador
con el fin de guardar el nuevo programa.

8. BIBLIOGRAFA
Bibliografa
[1] M. Angel, Blogspot, 10 Diciembre 2014. [En lnea]. Available: http://microcontroladoresdev.blogspot.com/2010/12/microcontroladores.html. [ltimo acceso: 10 11 2015].
[2] D. Herrera, Monografas, 08 06 2015. [En lnea]. Available:
http://www.monografias.com/trabajos18/descripcion-pic/descripcionpic.shtml#ixzz3xcMJGsmr.
[3] Electrox, Electrox, 24 05 2008. [En lnea]. Available:
https://sites.google.com/site/ielectrox/home/programas-1/pic-c-compiler. [ltimo acceso: 10
11 2015].
[4] Wikipedia, Wikipedia, [En lnea]. Available:
https://es.wikipedia.org/wiki/Proteus_(electr%C3%B3nica). [ltimo acceso: 10 11 2015].
[5] EPN, Biblioteca Digital, [En lnea]. Available:
http://bibdigital.epn.edu.ec/bitstream/15000/2207/1/CD-1982.pdf. [ltimo acceso: 10 11
2015].
[6] E. Experimental, Gravitech, 06 11 2014. [En lnea]. Available:
http://www.gravitech.us/16chbllcdwib.html.
[7] Annimo, Wikipedia, 18 11 2015. [En lnea]. Available:
https://es.wikipedia.org/wiki/Pantalla_de_cristal_l%C3%ADquido#Especificaciones. [ltimo
acceso: 15 12 2015].
[8] L. Rosero, Scribd, 05 09 2013. [En lnea]. Available:
https://es.scribd.com/doc/44252680/LCD-16X2. [ltimo acceso: 16 12 2015].
[9] T. Electrodo, Blogspot, 10 02 2013. [En lnea]. Available:
http://todoelectrodo.blogspot.com/2013/02/lcd-16x2.html. [ltimo acceso: 15 12 2015].
[10] RobotyPIC. [En lnea]. Available: http://robotypic.blogspot.com/2011/03/comunicacion-rs232entre-dos-pic.html. [ltimo acceso: 18 01 2016].

| 16

[11] N. Instrument. [En lnea]. Available:


http://digital.ni.com/public.nsf/allkb/039001258CEF8FB686256E0F005888D1. [ltimo acceso:
18 01 2016].

| 17

Vous aimerez peut-être aussi