Вы находитесь на странице: 1из 27

Microcontroladores Programación y Simulación I

Microcontroladores
V Ciclo

Laboratorio N°05
“Programación y Simulación del Aplicativo I”
Informe
Integrantes:

Apellidos y Nombres Sección Grupo


Quispe Romero, Steven C16 B
ALEX VIZCARRA ARMACCANCCE C16 B
MANUEL FERNANDEZ AMBULAY C16 B
IVAN EDGARD PRADO LOPEZ C16 B

Profesor:

Ciriaco Martínez, Cesar Augusto

Fecha de realización: 19/09/18

Fecha de entrega: 27/09/18

Lima-Perú

2018

1
Microcontroladores Programación y Simulación I

ÍNDICE
I. Objetivos ............................................................................................................................... 3
II. Introducción ...................................................................................................................... 3
III. Marco Teórico ................................................................................................................... 3
IV. Equipos y Materiales ................................................................................................................ 6
V. Resultados de Laboratorio ................................................................................................ 7
Reto en Clase ................................................................................................................................. 7
Codigo de Programación ............................................................................................................... 8
Simulación en Proteus ................................................................................................................. 10
Desarrollo de Aplicativos............................................................................................................. 11
Grupo 1:....................................................................................................................................... 11
Código del Programa ................................................................................................................... 12
..................................................................................................................................................... 13
Simulación en Proteus ................................................................................................................. 15
Grupo 3 – Adicional por PUNTOS ................................................................................................ 18
Código de Programa .................................................................................................................... 18
Implementación en Físico Aplicativo 3........................................................................................ 20
Grupo 5 – Adicional Para Puntos................................................................................................. 22
Código del Programa ................................................................................................................... 22
Simulación en Proteus ................................................................................................................. 24
VI. Observaciones y Recomendaciones ....................................................................................... 25
VII. Conclusiones ......................................................................................................................... 26
IX. Referencias Bibliográficas ...................................................................................................... 26

Listado de Figuras
Figura 1. Estructura de la Pantalla LCD 16X2 ........................................................................................ 4
Figura 2. Memoria DDRAM del LCD 16x2.............................................................................................. 5
Figura 3. Pantalla display 2x16 .............................................................................................................. 6
Figura 4. Equipos y Materiales .............................................................................................................. 7
Figura 5. Parking de 2 pisos con LCD 16x2 .......................................................................................... 11
Figura 6. Declaración de datos del PIC16F877A .................................................................................. 12
Figura 7. Menú de inicio de Parking .................................................................................................... 13
Figura 8. Programa de Parking para cada piso .................................................................................... 13
Figura 9. Etapa Final del parking ......................................................................................................... 14
Figura 10. Parking con 4 estacionamientos ocupados ........................................................................ 17
Figura 11. Implementación en Físico .................................................................................................. 17
Figura 12. código de Programación para Grupo 3 .............................................................................. 19
Figura 13. Selección de Giro ................................................................................................................ 20

2
Microcontroladores Programación y Simulación I

Figura 14. Giro comandado por Teclado Matricial a 60 Grados ......................................................... 21


Figura 15. Finalización del Grupo 5_Cerradura Electrónica ................................................................ 25

I. Objetivos

• Utilizar las instrucciones para programar al microcontrolador PIC16F877A


• Utilizar software de desarrollo proporcionada por el fabricante
• Utilizar software de simulación digital

II. Introducción

En este laboratorio se programa el PIC16F877A teniendo como objetivo modificar las entradas y
salidas digitales de los puertos del microcontrolador utilizando registros como el PORT y TRIS, en la
actualidad los microcontroladores constituyen una forma de proveer inteligencia a equipos o
sistemas para un mejor desempeño de los mismos.

La tarea más básica que podemos hacer con un microprocesador es sustituir a un circuito
combinacional o secuencial. Podemos encender una luz para cierta combinación de entradas,
conectar una bomba cuando el nivel de un depósito sea menor de cierto umbral y pararla cuando
supere otro umbral, activar una alarma cuando se active algún sensor y la alarma esté armada, etc.
Para poder hacer estas cosas, el microprocesador necesitará tener entradas y salidas digitales, igual
que las de cualquier puerta lógica. El microprocesador PIC16F877 tiene 33 patillas que pueden ser, a
voluntad nuestra, entradas o salidas, de forma que podemos hacer, por ejemplo, 10 funciones con
15 entradas. De todos modos, el tiempo de respuesta de esas funciones es mucho mayor que el de
las funciones realizadas con puertas lógicas, aunque en la mayoría de los casos ese tiempo no es
demasiado importante; que la alarma suene 1 milisegundo después de abrir la puerta no parece
grave. Ahora bien, estas entradas y salidas digitales tienen niveles TTL, por lo que su tensión de
entrada y salida tendrá que estar comprendida entre 0 y 5. Necesitaremos unos circuitos que harán
de interface entre estos niveles TTL y los niveles con los que estemos trabajando, 220 VAC, 24 VDC o
cualquier otra tensión.

III. Marco Teórico

¿Qué es un LCD?

El LCD (Liquid Crystal Display) 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.

3
Microcontroladores Programación y Simulación I

¿Como es su conexionado?

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 además en su estructura los pines de Ánodo de led
backlight y cátodo de led backlight.

Figura 1. Estructura de la Pantalla LCD 16X2

Pines de alimentación:

Vss: Gnd
Vdd: +5V
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.

¿DDRAM y CGROM?

4
Microcontroladores Programación y Simulación I

Son las dos zonas de memoria del LCD.


La memoria DDRAM (Data Display Ram): corresponde a una zona de memoria donde se almacenan
los caracteres que se van a representar en pantalla. Es decir, es la memoria donde se almacenan los
caracteres a mostrar con su correspondiente posición.

La memoria CGROM es una memoria interna donde se almacena una tabla con los caracteres que
podemos visualizar en el lcd. En la imagen podemos ver un ejemplo de la tabla con un contenido de
192 caracteres.

Figura 2. Memoria DDRAM del LCD 16x2

La memoria CGRAM (Character Generator Ram): en ella se pueden almacenar nuestros propios
caracteres.

Pantalla LCD 2x16

Un Display de cristal líquido o también conocido por sus siglas como LCD (Liquid Crystal Display), es

un elemento que remplaza fácilmente a los Displays de segmentos que existen en el mercado, estas

pequeñas pantallas no se ven limitadas por la falta de espacio ya que actualmente se pueden

conseguir de un tamaño suficiente para cubrir cualquier necesidad, además el aumento en el tamaño

del dispositivo no significa un aumento en las conexiones eléctricas del mismo (esto es un punto a su

5
Microcontroladores Programación y Simulación I

favor). (ingenieriaelectronica.org. Recuperado de: https://ingenieriaelectronica.org/display-

decristal-liquido-lcd-definicion-caracteristicas-y-conexion/)

Figura 3. Pantalla display 2x16


IV. Equipos y Materiales

• Computadora
• Software de desarrollo
• Manual del fabricante
• Tarjeta de desarrollo

6
Microcontroladores Programación y Simulación I

Figura 4. Equipos y Materiales


Fuente: Recuperado de: http://www.microchip.com/mplab/mplab-x-ide

V. Resultados de Laboratorio

Reto en Clase

• Indicar en un Display LCD 16x2 el valor del ángulo del servomotor, que cada 1 seg. este gire
45° angulares, iniciando desde 0° y finalice en los 180°, luego regrese desde los 180°
a 0° angulares, de esa manera repite su ciclo por 10 veces.

7
Microcontroladores Programación y Simulación I

Codigo de Programación

8
Microcontroladores Programación y Simulación I

9
Microcontroladores Programación y Simulación I

Simulación en Proteus

10
Microcontroladores Programación y Simulación I

Una vez terminado los 10 ciclos como se pide en el reto, se visualizará un mensaje en el LCD
diciendo que el ciclo termino, así como se puede ver en la siguiente figura.

Desarrollo de Aplicativos

Para este laboratorio se pidió un caso de estudio propuesto por el docente, este trabajo fue
designado a cada grupo con una propuesta distinta.

Grupo 1: Programar y simular un circuito con display LCD 16X2, donde simule 6 estacionamientos
en el 1° piso y otros 6 en el 2° piso, en la pantalla LCD debe indicar los espacios disponibles y los no
disponibles.

Figura 5. Parking de 2 pisos con LCD 16x2

11
Microcontroladores Programación y Simulación I

Código del Programa

En la siguiente imagen se aprecia los datos, la librería que pertenece al PIC16F877A, también de
emplea una Macro16f877 y registros que se utilizarán en el código principal del proyecto. Estos se
digitan al encabezado de cada programa. El CBLOCK y ENDC es donde se declaran las variables y
estas inician desde el registro 0x20.

Figura 6. Declaración de datos del PIC16F877A

En la figura 7 se hace el llamado del LCD con el comando InicioLcd. También creamos el menú de
inicio de nuestro parking con el cual iniciara. La librería mensaje fue alterada con el fin de satisfacer
nuestra necesidad de programa y así mostrar los mensajes adecuados.

12
Microcontroladores Programación y Simulación I

Figura 7. Menú de inicio de Parking

Figura 8. Programa de Parking para cada piso

13
Microcontroladores Programación y Simulación I

Figura 9. Etapa Final del parking

Como se puede observar en la figura 9, se hizo uso de las librerías LCD, MENSAJE Y
ELECTRONICPIC16F877A. Puesto que estas librerías nos facilitaron la solución de este programa,
optimizando muchos recursos como tiempo, inicialización del LCD, etc.

14
Microcontroladores Programación y Simulación I

Simulación en Proteus

15
Microcontroladores Programación y Simulación I

16
Microcontroladores Programación y Simulación I

Figura 10. Parking con 4 estacionamientos ocupados

Implementación en Físico

Figura 11. Implementación en Físico

17
Microcontroladores Programación y Simulación I

´Para una mejor visualización de la aplicación, se compartió una carpeta de Drive donde
se encuentra un video de su correcto funcionamiento. →→
https://drive.google.com/drive/folders/1C4g5JqUNQncHQw8Keeev-5Wp4Ced2YyW?usp=sharing

Nombre de la Carpeta: LAB5-6 APLICATIVO GRUPO-1

Grupo 3 – Adicional por PUNTOS

Programar y simular la posición de un servomotor, indicando la posición en una pantalla LCD 16X2,
con un teclado matricial, obligando a 0° hasta 180°.

Código de Programa

18
Microcontroladores Programación y Simulación I

Figura 12. código de Programación para Grupo 3

En la librería ElectronicPIC16f877.asm se tuvo que crear un nuevo intervalo de tiempo, el cual es


10 veces lo que dura 1µs.

19
Microcontroladores Programación y Simulación I

Luego de añadir un nuevo intervalo de tiempo a la librería, en Macro16F877.INC se tuvo


que añadir un acceso rápido a este y además de que sea solo para datos, también sea
válido para registros, por lo que se creó la macro “rdelay_...” y estos podían ser en
microsegundos, milisegundos, segundos, y en lo que sería útil para la aplicación, 10 µs.

rdelay_us macro reg


movfw reg

call Microsegundo

endm

rdelay_dus macro reg

movfw reg

call Diezusegundo
endm

rdelay_ms macro reg


movfw reg
call Milisegundo
endm

rdelay_seg macro reg


movfw reg
call Segundo
endm

Implementación en Físico Aplicativo 3

Figura 13. Selección de Giro

20
Microcontroladores Programación y Simulación I

Figura 14. Giro comandado por Teclado Matricial a 60 Grados

21
Microcontroladores Programación y Simulación I

Grupo 5 – Adicional Para Puntos

Código del Programa

22
Microcontroladores Programación y Simulación I

En la siguiente imagen se aprecia los datos, la librería que pertenece al PIC16F877A, también de emplea

una Macro16f877 y registros que se utilizarán en el código principal del proyecto. Estos se digitan al

encabezado de cada programa. El CBLOCK y ENDC es donde se declaran las variables y estas inician desde

el registro 0x20. En la figura se hace el llamado del LCD con el comando CALL INICIO_LCD. También creamos

una matriz para guardar la clave que se introducirá. En el programa inicial se aprecia el mensaje de

bienvenida e “INGRESE SU CLAVE”

23
Microcontroladores Programación y Simulación I

Simulación en Proteus

24
Microcontroladores Programación y Simulación I

Figura 15. Finalización del Grupo 5_Cerradura Electrónica

VI. Observaciones y Recomendaciones

• Para la correcta realización del laboratorio, es necesario seguir todos los pasos al pie de la
letra, con el fin de prevenir errores y pérdidas de tiempo.

• El uso de librerías y macros en el desarrollo de la programación facilito la programación, ya


que, se evita hacer instrucciones que hacen perder el tiempo.

• Las configuraciones de TRIS son necesarias para definir cuáles van a ser nuestras salidas y
cuáles serán entradas.

• Se puede hacer modificaciones en la librería al gusto del proyectista, como se hizo en este
proyecto, en donde se hizo una pequeña modificación de la librería del teclado para hacer
más simple el trabajo.

• Se tiene que hacer un llamado a la subrutina con el comando CALL, la subrutina se


encuentra en la librería del teclado, esto cumple también cuando se quiere enviar un
carácter al LCD.

25
Microcontroladores Programación y Simulación I

• Se cambiaron algunos textos de la librería mensaje.asm convenientemente para mostrarlo


en el LCD

• Se tuvo que agregar una nueva unidad de tiempo a la


librería ElectronicPIC16f877.asm y para acceder a ella se tuvo que agregar una macro en
Macro16F877.INC

• Para acceder a un tiempo establecido por el valor de un registro se tuvo que modificar y
agregar una nueva función o macro a Macro16F877.INC

VII. Conclusiones

➢ Se logró utilizar las instrucciones necesarias para programar al microcontrolador


PIC16F877A, es por ello que se pudo realizar de manera exitosa la aplicación de lo aprendido
que consistía en el control de un servo motor, este control se podía visualizar en la pantalla
LCD.
➢ Por lo expresado anteriormente la elaboración de este proyecto me sirvió para comprender
un poco más la teoría de los microcontroladores y su aplicación; de ahí la importancia del
mismo, pues a través de él se puede apreciar lo interesante que es la programación en
nuestra vida cotidiana.

➢ Se determinó que los TRIS pueden ser utilizados como entradas y salidas dependiendo si
están en 1 y 0 lógico respectivamente.

➢ Se utilizó de manera correcta el software de desarrollo proporcionado por el fabricante,


gracias a ello se pudo despejar dudas y con ello se logró comprender de forma eficiente los
problemas propuestos y las utilidades que se les puede dar.

➢ Se logró trabajar en el desarrollo de la programación con la ayuda de librerías y macros,


debido a que en esta aplicación del laboratorio se trabajó con pantalla LCD, Teclado 4x4 y
por último un servomotor de radio control.

➢ Se construyó el programa de la cerradura electrónica usando el conocimiento adquirido


hasta el momento. La cerradura electrónica tiene varios intentos de acceso, pero solo se
puede teclear cuatro dígitos y se bloquea, sólo se puede acceder mediante la contraseña.
Si la clave introducida es la incorrecta se visualiza que no tiene acceso y si es lo contrario
se visualiza una ‘BIENVENIDA’.

IX. Referencias Bibliográficas

- Recuperado de:
http://www.udb.edu.sv/udb/archivo/guia/AssemblerPic/2013/i/guia-6.pdf
- Recuperado de:

26
Microcontroladores Programación y Simulación I

http://csd.newcastle.edu.au/SpanishPages/clase_slides_download/PIC16F877A.pdf

- Recuperado de:
http://www.eng.newcastle.edu.au/~jhb519/teaching/caut1/AssemblerMac .pdf

- Alfaro, V. (2006). Lenguaje Assembler para Ingenieros. M.Sc Tesis, Escuela de Ingeniería
Eléctrica, Universidad de Costa Rica.

- Calderón, A. (2010). ASSEMBLER ENFOCADO A LA INDUSTRIA. Escuela de Ingeniería


Eléctrica, Universidad de Costa Rica.

- Astróm, K. y Hagglund, T. (2009). Control de PIC16F877A. Prentice Hall, Research


Triangle Park, NC 27709, USA.

27

Вам также может понравиться