PROGRAMACIN DE
MICROCONTROLADORES
IV CICLO
LABORATORIO N4
PUERTOS DE ENTRADA Y SALIDA PARTE II
Profesor: Rubn Gil Chacaltana
Seccin: A
Integrantes:
Lovatn Anthony
Quinto Inti Alonso
Lazo.
2016 - I
INTRODUCCIN
Este laboratorio tiene como finalidad realizar cierta secuencia de pasos para
establecer entradas y salidas en el PIC16F877A, ya que nos va a permitir
desarrollar ciertas aplicaciones para el uso del display de 7 segmentos de
nodo comn o ctodo comn bajo ciertas libreras que vamos a crear y vamos
a usar a lo largo del desarrollo del laboratorio explicando cada algoritmo
desarrollado en el MPLAB. A continuacin, explicaremos el uso de la librera
[Link] realizada en el Assembler como base del uso del
display y pantalla LCD de 16x2.
Marco Terico
PIC16F877:
Es un microcontrolador de Microchip Technology fabricado en tecnologa CMOS, su
consumo de potencia es muy bajo y adems es completamente esttico, esto quiere
decir que el reloj puede detenerse y los datos de la memoria no se pierden. Adems
tiene memoria de programa tipo FLASH, lo que representa gran facilidad en el
desarrollo de prototipos y en su aprendizaje ya que no se requiere borrarlo con luz
ultravioleta como las versiones EPROM, sino que permite reprogramarlo nuevamente
sin ser borrado con anterioridad.
Imagen1. PIC16F877A
Instrucciones de Programador:
Estos microcontroladores responden a una serie de instrucciones o cdigos que se
deben grabar en su memoria de programa, en total son 35. A continuacin se
encuentra una tabla con la lista completa y despus una descripcin de cada una de
ellas con el fin de facilitar su aprendizaje.
Imagen2. Comando MPLAB.
PROCEDIMIENTO PARTE1: Display
de 7 Segmentos
Esta parte del laboratorio est hecha para hacer que mediante 1 pulso en UP
el Display de 7 segmentos empiece a contar en orden ascendente y un pulso en
DOWN el conteo sea en orden descendente siendo el mximo valor 9 y el
mnimo valor 0.
Al copiar el cdigo de programacin del PIC16F877A vemos que se
logr con xito la compilacin del programa.
Imagen3. Build all
Ojo: Antes de intentar incluir una librera, primero revisar si esta
librera existe y est guardada en el mismo documento en el que se
guarda los proyectos.
A continuacin, analizaremos cada bloque de comandos.
En Inicio, se definen las salidas en el banco 1 mandando a 0 el
PORTB (TRISB), luego empiezo a programar en el banco 0; haciendo
que, al iniciar el conteo, en el display aparezca el nmero 0
Imagen4. Inicio
El TesteaUp y TesteaDown, son las entradas que vienen a ser
analizadas al presionar el botn UP o DOWN haciendo un salto a
IncrementarCuenta si el bit 0 de PORTD es 1; y si no, salta a
TesteaDowm que hace el mismo anlisis, pero ahora analizando el bit
1 del PORTD, saltando a DecrementarCuenta si el bit 1 es 1.
Imagen5. Testeo
En esta parte del programa se encuentra la mayor parte de
comandos, ya que consiste en hacer prender los leds
correspondientes a los nmeros en orden creciente o decreciente
haciendo un llamado(call) de libreras y adecuando el tiempo de
respuesta.
Imagen6. Incremente y Decremento de cuenta.
Se ponen las condiciones del inicio en 0 y al momento que llega a 9 y
se quiere seguir pulsando UP, vuelve a 0.
Imagen7. Condiciones
SIMULACIN:
Imagen8. Simulacin
Al ponerle PLAY, el display comienza siempre con el nmero 0.
Imagen9. Simulacin
El mximo nmero del conteo.
2. Qu encontramos en la librera [Link]?
Sirve para generar retardos en el sistema para evitar estar
poniendo comandos de ms al momento de aumentar el tiempo.
PROCEDIMIENTO PARTE2:
LCD 16X2
Esta actividad consiste en programar una pantalla LCD de 16X2 para
que muestre cierto mensaje a travs de un PIC16F877A.
Imagen10. Buid all
Vemos que la compilacin fue exitosa. No olvidarse de tener la
librera LCD.
Comprobacin del funcionamiento del programa en Proteus 8
Professional.
Imagen11. Simulacin
Desde el inicio del programa se llama a las libreras(call) y se ve que
va variando el valor de W por cada llamada que se hace, ese tipo de
configuracin es utilizada al momento de configuracin de una
pantalla LCD.
Imagen12. Primera parte de la programacin.
Imagen13. Parte final de la programacin.
Tener en cuenta que al final del programa se trabajan con dos
libreras, [Link] y [Link].
2. Qu encontramos en la librera [Link]?
Cumple la funcin de Ordenar y Simular los caracteres que se
ponen en la pantalla LCD 16X2 que son colocados respecto al
valor que se le da a W, en este caso se visualiza la palabra
CURSO PIC
3. En esta actividad te piden copiar un cdigo y analizarlo.
Se ve que se cumpli con xito la compilacin.
Imagen14. Build all
La compilacin de este programa te manda una simulacin parecida
a la anterior, pero al nombrar la librera [Link] se acorta la
cantidad de comandos y se logra colocar un texto de mayores dgitos
parpadeando cada cierto tiempo.
Imagen15. Simulacin con librera [Link].
4. En qu consiste el programa realizado?
Tiene la misma funcin que la simulacin anterior, pero al final el
haber agregado la librera [Link] logr un mayor resultado
al tener ms dgitos mostrados en la pantalla LCD y hacer que el
mensaje parpadee cada cierto tiempo.
[Link] encontramos en la librera [Link]?
Enva datos que prximamente son convertidos en un texto que
se va a mostrar en la pantalla LCD.
Imagen16. Primera parte de la programacin.
Imagen17. ltima parte de la programacin con librera [Link]
6. Qu contiene la librera [Link]?
Contiene pasos que acortan el traslado de informacin y contiene
procesos de retardo en milisegundos y a la vez contiene
direcciones para controlar una pantalla LCD 16X2.
APLICACIN DE LO APRENDIDO
1. Primera parte de la cuenta del 0 al 99
Se estable entradas y salidas en el banco 1 mediante BSF
mandando al bit 5 al set. Se estable TRISC como salida al igual
que TRISB. Luego volvemos al banco 0 haciendo clear (0) el bit 5.
Se hace llamado a CUENTA y SEG.
2. Hacer un programa con implementacin elctrica de control de tres
focos de 220v.
Implementacin elctrica en Proteus Professional 8.
Figura1.
elctrica de
Parte
potencia y
control
Ya que el microcontrolador tiene en su salida un valor pequeo de
voltaje incapaz de prender un foco de 220v se hace un circuito de
potencia mediante transistores para tener una ganancia de corriente
que va a accionar al relee y este activara el foco.
Observaciones:
Guardar todas las libreras necesarias para poder ser incluidas al
momento de realizar la compilacin, ya que te puede mandar error por
no existir la librera.
Fijarse del rango de trabajo del PIC16F877A est en 20MHZ, ya que se
cambia el valor del CRYSTAL, esto puede causar confusin en la primera
parte del laboratorio, porque al hacer un pulso en UP o DOWN se
demora en realizar la respuesta en el display.
Tomar en cuenta con qu tipo de DISPLAY se est trabajando sea en
nodo comn y ctodo comn.
Ver cules son las entradas y salidas que nombras en el PIC en el
banco1 al momento de hacer la implementacin.
Calcular el tiempo de respuesta del proceso para que pueda ser visible
lo que se quiera lograr, por eso se agregan las libreras de RETARDO.
Conclusiones:
Se logr programas el PIC16F877A y a la vez lograr una
implementacin exitosa en la simulacin.
Se logr hacer cuentas en un display de 7 segmentos sea en orden
ascendente o descendente mediante un pulso.
Se logr visualizar mensajes en la pantalla LCD 16X2 acomodando las
palabras en el orden que desebamos y logrando hacer que aparezca y
desaparezca como un letrero de anuncio.
Se logr hacer un circuito de control y a la vez de potencia al lograr el
encendido de un foco de 220v mediante transistores y relees.
Se logr identificar los diferentes tipos de libreras que adjuntbamos
en la programacin en MPLAB.