UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
PRÁCTICA #2
PARTE A_CONFIGURACIÓN DE PUERTOS Y
ENCENDIDO DE LEDS
PARTE B_ ENCENDIDO Y APAGADO DE LEDS EN
PORTB USANDO COMUNICACIÓN UART ENTRE DOS
PIC
MATERIA:
LABORATORIO DE MICROCONTROLADORES
INTEGRANTES:
o BACILIO GUALE NEREIXI
o BASILIO WELLINGTON
o RAMIREZ MORLA INES
o ROCAFUERTE ANDREA
DOCENTE:
ING. SENDEY VERA
CURSO:
8° SEMESTRE
2018 - 2019
LABORATORIO DE MICROCONTROLADORES PRÁCTICA 1
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
PRÁCTICA CON MICROCONTROLADOR 16F887
CONFIGURACIÓN DE PUERTOS Y ENCENDIDO DE LEDS
ENCENDIDO Y APAGADO DE LEDS EN PORTB USANDO COMUNICACIÓN
UART ENTRE DOS PIC
OBJETIVO DE LA PRÁCTICA:
Desarrollar 2 codigos para la comunicación entre 2 microcontroladores
PIC16F887 utilizando el software de simulación MikroBasic Pro for PIC, el
cual permita encender los leds; mediante el uso de instrucciones y
elementos requeridos para dicha función.
OBJETIVOS ESPECÍFICOS:
Utilizar la comunicación uart para establecer el enlace entre 2
microcontroladores y asi confirmar la comunicación por medio del
encendido de los leds establecidos.
Desarrollar los programa en lenguaje MikroBasic, compilarlo, depurarlo y
simular el comportamiento en el simulador Proteus.
Comprender el datasheet del microcontrolador del PIC16F887, para
realizar la conexión correcta en la implementación del circuito, tomando
en cuenta que uno servirá para transmisión y otro para recepción.
Implementar el circuito y grabar el programa diseñado para integrar el
software y hardware, observando el funcionamiento correcto del mismo.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
INTRODUCCIÓN:
Los microcontroladores son diseñados con el objetivo que tengan todos los
componentes integrados en el mismo chip, de tal manera que se puede
manejar su funcionamiento, adaptándose a las necesidades requeridas; es
decir que su comportamiento depende de las órdenes que se graban en su
memoria, en este caso está el encendido y apagado de leds con el uso de la
comunicación uart, en donde forman parte principal 2 microcontroladores, los
cuales serán los medios de transmisión y recepción del dato que permita
cumplir dicho pedido de funcionamiento. El uart es el componente importante
de un subsistema de comunicaciones que toma bytes de datos y transmite los
bits individuales de manera secuencial, es importante saber y usar los registros
indicados para el control de la parte receptora, la generación de frecuencia para
la transmisión, el registro de datos de recepción, en este caso si al dar
funcionamiento uno de los pulsadores, enseguida se debe encender uno de los
leds y luego mandarse apagar, en el lenguaje de programación se establecen
los puertos a utilizarse y las salidas, junto con ello se establece el proceso que
cumplirá el encendido y apagado, facilitando el entendimiento al momento de
realizar la simulación en el Proteus, cargando el programa realizado y
ejecutarlo para observar el comportamiento de los leds, y concluir en como la
parte teórica se cumple en la parte práctica y simulada de este laboratorio de
microcontroladores.
PROCEDIMIENTOS UTILIZADOS EN LA PRÁCTICA:
1) Revisar las características, propiedades y hojas técnicas de los
dispositivos (PIC16F887). (Ir a Anexos1)
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
2) Revisar en la opción HELP (UART_LIBRARY) del software MikroBasic
Pro For PIC el diagrama de conexión entre los PICS e Interconectar los
dispositivos:
a. Se utilizará el código de UART_LIBRARY. (Ver código de
programación en Anexo_3)
b. Practica a realizar. (Ir a Anexos_4)
3) Utilizar PICKIT2 para quemar el programa en el PIC. (Descripción de
cómo utilizar el PICKIT3_Ir a Anexos_5)
4) Demuestre el funcionamiento de la práctica realizada.
Realizamos las modificaciones necesarias
en el código UART_LYBRARY, para así obtener la comunicación entre 2 pic
Realizamos 2 códigos, un código que me permitiera transmitir una señal hacia
un segundo pic, y el otro código que me permitiera la recepción de la señal
enviada por el primer pic.
Cargamos el [Link] al pic 16f887, armamos el circuito con los pic 16f887 y
realizamos las conexiones para que los 2 pic puedan comunicarse.
Para confirmar que los pics se comunican utilizaremos 2 leds
De esta manera se cumple con las siguientes condiciones.
o Al presionar el primer pulsador cumple con la condición de encender el
primer led
o Al presionar el segundo pulsador cumple con la condición de encender
el segundo leds
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
5) Se solicita realizar las siguientes modificaciones del código
generado por HELP (UART_LIBRARY) del software MikroBasic Pro
For PIC. (Ir a Anexos_6)
6) ¿En qué parte o en que sección en general se hace la modificación
del código?
En el primer código:
Para que el primer código funcione como transmisión de señal, modificamos la
parte del while, y por medio de sentencia if preguntamos qué puerto está
enviando señales de 1 mediante el puerto A (PORTA) y de acuerdo a la
condición que le demos permita escribir una letra.
En el segundo código.
Para que el segundo código funcione como recepcion de señal, modificamos la
parte del while, primeramente colocamos la señal uart_rd = UART1_Read()
para que nos permita leer la señal enviada por el primer código, luego por
medio de sentencia IF preguntamos qué letra estamos recibiendo, para así
definir que leds se va a encender por medio del puerto B PORTB.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
CONCLUSIONES
Utilizando la comunicación uart, podemos llegar a comprender el enlace que
existe entre la recepción de datos y el medio de transmisión, a su vez también
podremos distinguir los datos, señales de sincronización y registros de control
una vez finalizado esto pudimos establecer el código para el cumplimiento de
los casos tanto encendido como apagado de los leds, todo esto al dar un toque
en el pulsador, gracias a esto se pudo demostrar la simulación correspondiente
en el proteus.
Realizamos distintos códigos para las partes de tx y rx, logramos hacer un
proceso diferente para cada llamado, obviamente ya teniendo la respectiva
conexión con todos los puertos habilitados del PIC16F887, gracias a las
indicaciones precisas en el código se verifico su óptima ejecución y esto lo
podemos ver en una de sus principales instrucciones la cual es la escritura de
datos y la lectura la cual esta es realizada por el pic.
Cuando procedemos a ejecutar la función de guardar, primero se compila para
que pueda ser grabada correctamente en el pic debido a esto utilizamos un
quemador.
En el proteus se realizó el esquema utilizando el PIC16F887 además 2
pulsadores los cuales se encienden y apagan respectivamente cuando reciban
el llamado gracias a todo esto podemos decir la gran importancia que tiene la
comunicación uart para la transmisión de datos.
Los microcontroladores poseen un datasheet el cual nos permite cumplir la
función de una buena conexión de puertos ya sean estos de entrada o salida,
para abastecer el suministro eléctrico del circuito procedemos a utilizar la
alimentación de un arduino, gracias a todos estos ajustes que hicimos pudimos
observar los resultados al momento de usar los respectivos pulsadores ya que
estos permitían observar el resultado a través del encendido de los leds.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
ANEXOS
ANEXO 1
SIMULADORES MIKROBASIC Y PROTEUS
- MIKROBASIC
MikroBasic PRO para PIC: es un compilador BASIC con todas las
características para microcontroladores PIC de Microchip, está diseñado
para desarrollar, construir y depurar aplicaciones embebidas basadas en
PIC. Este entorno de desarrollo cuenta con una amplia variedad de
características tales como: una sintaxis BASIC fácil de aprender, IDE fácil de
usar, un código muy compacto y eficiente, muchos equipos y bibliotecas de
software, la documentación completa, el simulador de software, un
depurador de hardware, la generación de archivos COFF, etc. Además
incluye muchos ejemplos prácticos que permiten un rápido inicio en la
programación de microcontroladores PIC.
- PROTEUS
Proteus es una compilación de programas en un entorno integrado
diseñado para la realización completa de proyectos de construcción de
equipos electrónicos en todas sus etapas: diseño, simulación, depuración y
construcción. Desarrollado por Labcenter Electronics que consta de los dos
programas principales: Ares e Isis, y los módulos VSM y Electra.
- GRABADOR PICKIT3
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
Se trata de un programador originalmente desarrollado por Microchip que
permite realizar una conexión directa entre el circuito y MPLAB-X, pudiendo
ver en el ordenandor lo que va ocurriendo en los registros del Pic (In Circuit
Debugging). En esta ocasión, solamente lo usaremos para cargar el
programa en un Pic.
- MICROCONTROLADOR PIC 16F887
Los PIC que suelen usarse son de 8, 16 y 32 bits, estos microcontroladores
según el modelo disponen de diferentes sistemas de comunicación con el
exterior como puertos UART, USB y conversores de analógico a digital.
- CARACTERISTICAS DEL PIC 16F887
1. El microcontrolador cuenta con solo 35 instrucciones diferentes.
2. Todas las instrucciones son uni-ciclo excepto por las de ramificación.
3. Frecuencia de operación 0-20 MHz.
4. Oscilador interno de alta precisión.
5. Calibrado de fábrica.
6. Rango de frecuencia de 8MHz a 31KHz seleccionado por software.
7. Voltaje de la fuente de alimentación de 2.0V a 5.5V.
8. Consumo: 220uA (2.0V, 4MHz), 11uA (2.0 V, 32 KHz) 50nA (en modo de
espera).
9. Ahorro de energía en el Modo de suspensión.
10. Brown-out Reset (BOR) con opción para controlar por software.
11. 35 pines de entrada/salida.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
12. Alta corriente de fuente y de drenador para manejo de LED.
13. Resistencias pull-up programables individualmente por software.
14. Interrupción al cambiar el estado del pin.
15. Memoria ROM de 8K con tecnología FLASH.
16. El chip se puede re-programar hasta 100.000 veces.
17. Opción de programación serial en el circuito.
18. El chip se puede programar incluso incorporado en el dispositivo
destino.
19. 256 bytes de memoria EEPROM.
20. Los datos se pueden grabar más de 1.000.000 veces.
21. 368 bytes de memoria RAM.
22. Convertidor A/D.
23. 14 canales.
24. Resolución de 10 bits.
25. 3 temporizadores/contadores independientes.
26. Temporizador perro guardián.
27. Módulo comparador analógico con dos comparadores analógicos.
28. Referencia de voltaje fija (0.6V).
29. Referencia de voltaje programable en el chip.
30. Módulo PWM incorporado.
31. Módulo USART mejorado.
32. Soporta las comunicaciones seriales RS-485, RS-232 y LIN2.0.
33. Auto detección de baudios.
34. Puerto Serie Síncrono Maestro (MSSP).
35. Soporta los modos SPI e I2C.
- APLICACIONES:
Construcción de robots (seguidores de líneas, sumobot, teleoperados,
exploradores, soccer, etc.).
Aplicaciones de Telemetría y radiocontrol.
Implementación de sistemas de control.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
Tarjeta de adquisición de datos.
Placa de desarrollo de ejercicios de programación con microcontroladores.
ENTRADAS / SALIDAS EN PUERTOS A, B, C,D
PORTA (0,1,2,3,4,5,6,7)
PORTB (0,1,2,3,4,5,6,7)
PORTC (0,1,2,3,4,5,6,7)
PORTD (0,1,2,3,4,5,6,7)
PORTE(0,1,3)
ENTRADAS ANALÓGICAS
AN0=RA0, AN1=RA1, AN2=RA2, AN3=RA3, AN4=RA5, AN5=RE0,
AN6=RE1, AN7=RE2,
AN8=RB2, AN9=RB3, AN10=RB1, AN11=RB4, AN12=RB0,
AN13=RB5
- PULSADORES
Los pulsadores habilitan la señal enviada para presentar.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
- RESISTENCIAS DE 1KΩ
Las resistencias nos ayuda a habilitar la señal.
- ARDUINO
- LEDS
- ANEXO 2
- QUEMADOR PICKIT3
El MPLAB ID PICkit 3 permite la depuración y programación de PICK y dsPICK.
Se conecta a la PC utilizando una interfaz USB de velocidad completa.
CONEXIONES:
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
El programa PICKIT3 nos ayuda a grabar en el PIC el archivo hexadecimal
generado por el código creado en MikroBasic. Para poder grabar la información
en el PIC realizamos los siguientes pasos:
a) Conectamos el USB al quemador y abrimos el programa PICKT3
V3.10
b) Teniendo correctamente conectado el PIC en la tarjeta del
programador se pulsa la pestaña TOOLS y del menú desplegable
se selecciona Check Comunication para verificar la comunicación
del pic y el software.
c) Tras realizar esto el programador nos otorgara información sobre el
tipo de PIC y se habilitara el botón Read que nos servirá para leer la
memoria del PIC, el botón Write el cual una vez cargado el
programa deseado en el buffer del software nos servirá para
proceder a programar nuestro PIC, el botón Verify sirve para
verificar el PIC conectado, el botón Erase nos sirve para borrar la
memoria del PIC y dejarlo en blanco.
d) Para programar un código previamente creado es necesario pulsar
la pestaña File y en el menú seleccionamos Import Hex.
e) Una vez realizado esto podremos observar que el código se cargo
correctamente y procedemos a pulsar el botón Write para grabar el
PIC.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
ANEXO 3
Para programar el PIC16F887 se utilizara el código generado por HELP
(UART_LIBRARY) del software MikroBasic Pro For PIC que se muestra a
continuación
program UART
dim uart_rd as byte
main:
UART1_Init(9600) ' Initialize UART module at
9600 bps
Delay_ms(100) ' Wait for UART module to
stabilize
while (TRUE) ' Endless loop
if (UART1_Data_Ready() <> 0) then ' If data is received,
uart_rd = UART1_Read() ' read the received data,
UART1_Write(uart_rd) ' and send data via UART
end if
wend
end.
ANEXO 4
Se utilizara el código generado por la opción HELP (UART_LIBRARY) para
luego realizar las respectivas modificaciones a dicho código., el cual con la
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
ayuda de PICKIT3 grabamos en el PIC la información para observar su
funcionamiento por medio de encendido de leds,
ANEXO 5
El programa PICKIT3 nos ayuda a grabar en el PIC el archivo hexadecimal
generado por el código creado en MikroBasic. Para poder grabar la información
en el PIC realizamos los siguientes pasos:
f) Conectamos el USB al quemador y abrimos el programa PICKT3
V3.10
g) Teniendo correctamente conectado el PIC en la tarjeta del
programador se pulsa la pestaña TOOLS y del menú desplegable
se selecciona Check Comunication para verificar la comunicación
del pic y el software.
h) Tras realizar esto el programador nos otorgara información sobre el
tipo de PIC y se habilitara el botón Read que nos servirá para leer la
memoria del PIC, el botón Write el cual una vez cargado el
programa deseado en el buffer del software nos servirá para
proceder a programar nuestro PIC, el botón Verify sirve para
verificar el PIC conectado, el botón Erase nos sirve para borrar la
memoria del PIC y dejarlo en blanco.
i) Para programar un código previamente creado es necesario pulsar
la pestaña File y en el menú seleccionamos Import Hex.
j) Una vez realizado esto podremos observar que el código se cargo
correctamente y procedemos a pulsar el botón Write para grabar el
PIC.
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
ANEXO 6
El código generado por la opción HELP (UART_LIBRARY) se le realizara
modificaciones para obtener los resultados deseados. La práctica consiste en
realizar la comunicación entre 2 pics, el cual el primer pic realice la transmisión
del mensaje y el segundo pic realice la recepción del mensaje. Para esto
añadimos al codigo 2 entradas (pulsadores) que al accionar cada uno de los
pulsadores estos realicen las siguientes funciones:
a) Al accionar el pulsador_1 se encenderá el diodo 1 (D1)
b) Al accionar el pulsador_2, se encenderá el diodo 2 (D2)
CÓDIGO PARA LA RECEPCIÓN DEL MENSAJE
program uarttrans
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
dim uart_rd as byte
' Declarations section
main:
TRISA = %00000011
PORTA = %00000000
TRISB = %00000000
PORTB = %00000000
OSCCON= 0X75
ANSEL = 0x00
ANSELH = 0X00
UART1_Init(9600)
Delay_ms(100)
while (TRUE)
if (PORTA.0 = 1) then
UART1_Write("A")
end if
if (PORTA.1 = 1) then
UART1_Write("B")
end if
if (PORTA.0 = 0) then
UART1_Write("C")
end if
if (PORTA.1 = 0) then
UART1_Write("C")
end if
wend
end.
CÓDIGO PARA LA RECEPCIÓN DEL MENSAJE
program uartrecep
dim uart_rd as byte
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
' Declarations section
main:
TRISA = %00000011
PORTA = %00000000
TRISB = %00000000
PORTB = %00000000
OSCCON= 0X75
ANSEL = 0x00
ANSELH = 0X00
UART1_Init(9600)
Delay_ms(100)
while (TRUE)
if (UART1_Data_Ready() <> 0) then
uart_rd = UART1_Read()
if (uart_rd = "A" ) then
PORTB.7 =1
end if
if (uart_rd = "B" ) then
PORTB.6 =1
end if
if (uart_rd = "C" ) then
PORTB.7 =0
PORTB.6 =0
end if
end if
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
wend
end.
PROTEUS
Se puede notar las conexiones que permiten ver el funcionamiento del
programa
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
IMPLEMENTACIÓN
alimentando el circuito con Arduino uno
Encendido del primer leds, pulsando el pulsador 1
UNIVERSIDAD ESTATAL PENÍNSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO DE MICROCONTROLADORES
Encendido del segundo leds, pulsando el pulsador 2