domingo, 26 de marzo de 2017

Diseño de programas en ensamblador para PIC ( PARTE 4 )


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

Microcontroladores PIC – Curso de Programación en MikroC (Parte 6 )

Microcontroladores PIC – Curso de Programación en MikroC Bienvenido nuevamente a los tutoriales de Artes Electrónicas Pachani , con...