Hola nuevamente a
los tutoriales de Artes Electrónicas Pachani, hoy
continuaremos con la serie programación en componentes
PIC, este tutorial está dirigido a lectores novatos,
aficionados (hobbistas), estudiantes, que deseen implementar
programas para microcontroladores en lenguaje ensamblador (ASM), para
el desarrollo de aplicaciones.
¡Sigamos esforzándonos!
Sin duda la programación como tal es un arte que muy pocos siguen
debido a que es largo y moroso, pero la verdad es que un ciencia
apasionante, el fruto se lo ve al momento de la implementación de
nuestros prototipos. Bien continuemos con nuestro estudio, ahora
imaginemos que nos encargan el siguiente trabajo:
Problema 3.-
Se desea realizar un juego de
interruptores para el manejo de las luces de un ambiente, se tiene
tres interruptores que controlan el encendido de las
luces, uno se encuentra en la puerta, el segundo al
fondo del ambiente y el tercero en medio del ambiente.
Respuesta: Ahora
primero tratemos de imaginarnos un ambiente con tres interruptores,
ahora reduzcamos
las dimensiones para nuestro prototipo imaginemos en versión
microcontrolador donde cada elemento se adecue a nuestro dispositivo,
los interruptores pueden ser switches , ahora
hay que mandarlos a un puerto
que puede ser el puertoA , ahora la salida que seria las luces del
ambiente son solo una por lo que podemos utilizar LOGICPROBE ( o bien
el led )
para que salga como resultado de los interruptores por
el puertoB.
Quedando de la siguiente manera en nuestro prototipo Proteus:
Primero notamos que la entrada de datos es por el PUERTOA , donde
podemos utilizar switches, ahora la lógica que necesitamos tener en
mente para las condiciones del problema es que solo dos interruptores
estén habilitados y si están los tres interruptores las lamparas
deben estar apagadas, construyamos nuestra tabla de condiciones:
Según las condiciones del enunciado solo dos interruptores habilitan
a las luces, ahora realicemos un pseudocódigo que represente las
instrucciones que escribiremos en el ensamblador.
1.- Inicio
2.- Lee el Numero
3.- Si (Numero =3) Entonces
Se enciende las luces
fin Si
4.- Si (Numero=5) Entonces
Se enciende las luces
fin Si
5.- Si (numero=6) Entonces
Se enciende las luces
Si no
Luces apagadas
fin Si
6.- Fin de programa
Ahora empecemos a transcribir esto en Mplab de modo que represente la
idea que nos hemos planteado con el pseudocódigo.
1er Paso.- Comenzamos por la descripción de nuestro código,
configuración de puertos , así como modelo de microcontrolador a
utilizar para el programa:
Bien también tenemos la descripción de la configuración del
puertoA para entrada de datos digital, el uso de un auxiliar llamado
DATO.
Aquí hemos configurado el puertoA para entrada de datos de manera
similar al anterior tutorial, ahora el puertoB para la salida de
datos, en el banco 0 , ahora empezaremos a escribir nuestro
código según la siguiente imagen:
Analicemos las instrucciones un momento, cuando ingresamos un valor a
la variable DATO, por el puertoA , este se compara con nuestras
contraseñas/clave para poder generar la sentencia IF,
de modo que tenemos la condicional que compara un numero y salta si
es verdad pero continua por falsedad ,
se habrán dado cuenta cuando la comparación no es igual en el
primer interruptor por
falsedad continua a la etiqueta INT2 .
Ahora en INT2 continua con las instrucciones de la misma manera y
vuelve a realizar la misma comparación para el segundo interruptor y
por verdad salta a la etiqueta ENCENDIDO , y por falsedad salta a la
etiqueta INT3.
Ya en el tercer interruptor nuevamente se realiza la comparación y
ahora par falsedad continua a la etiqueta APAGADO y por verdad a la
etiqueta ENCENDIDO.
Ahora para verificar nuestro código
realizamos la compilación de nuestro código en nuestro IDE MPlab y
resulta lo siguiente:
Simulación en
Proteus
Ahora de igual manera cargamos el archivo HEX generado de la
compilación del anterior código y lo cargamos en el
microcontrolador para realizar la simulación.
Vemos como los interruptores 1 y 3 encienden el LOGICPROBE, de igual
manera vamos a ver todos los casos que nos hemos propuesto.
Aquí los interruptores 1 y 2 encienden el LOGICPROBE, de igual manera
vamos a ver todos los casos que nos hemos propuesto según la tabla.
Aquí los interruptores 2 y 3 encienden el LOGICPROBE, hasta aquí
las condiciones según la tabla.
Que sucede con los otros casos que se suponen deberían ser cero,
veamos las siguientes imágenes:
Ahora
cuando todos los interruptores están habilitados, las luces están
apagadas de modo que cumplimos con las condiciones de nuestro
enunciado. Veamos también el caso cuando ningún interruptor esta
activado:
En conclusión el programa, cumple con las necesidades de nuestro
cliente por lo cual podemos grabarlo en el microcontrolador e
instalarlo como un sistema de control de luces ya de manera mas
adecuada con los elementos apropiados que manejen potencia AC 220V.
Este tipo de aplicaciones lo podemos realizar ya con calma mas
adelante, ya que este tutorial se enfoca de momento a la parte
académica de resolución y aplicación de software para
microcontroladores PIC.
Bien espero que este material les sirva de ayuda para conocer las
capacidades de los microcntroladores, ya mas adelante cuando tengamos
las bases necesarias vamos a realizar proyectos mas serios con
aplicación por lo cual estudien y repasen los demas tutoriales.
Gracias por su tiempo hasta el siguiente tutorial.
Todo el material que aquí se encuentra es de mi autoría, ademas de
una recopilación de información de Internet de recursos que se
pueden descargar como libros los cuales son usados como referencia
para los ejercicios y los ejemplos. Cualquier consulta la puedes
realizar en la parte de comentarios.
Bibliografia:
1.- Enrique Palacios , Fernando Ramiro y Lucas J. López,
Microcontrolador PIC16F84 Editorial Alfa Omega; Publicado el año
2004;[Fecha de consulta 10 de Marzo de 2017].
2.-Christian Bodignton Estava; Mikro Basic ; descargada de
WWW.CONEXIONELECTRONICA.COM;
Publicado el año 2010; [Fecha de consulta 5 de Marzo de 2017].
Software
utilizados:
1.- MpLab version 8.52 descargado de la pagina oficial de Microchip;
No hay comentarios.:
Publicar un comentario
Hola, con tu comentario puedes aportar para mejorar la calidad de mi trabajo