sábado, 25 de marzo de 2017

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

Hola nuevamente ha Artes Electrónicas Pachani, continuando con la serie programación en componentes PIC, tutorial dirigido a lectores novatos, aficionados (hobbistas), estudiantes, que deseen implementar programas para microcontroladores en lenguaje ensamblador (ASM), para el desarrollo de aplicaciones.
Mi primer programa: “Hola Mundo”


¡Tal vez parezca extraño pero los microcontroladores pueden hablar!
Me imagino que debe ser en unos y ceros.
¿De alguna manera podemos ver esto?
Si lo veremos en primer Hola Mundo.

Para empezar diremos que los microcontroladores tienen Puertos (A, B, C, D y E) los cuales son salidas por donde el microcontrolador se puede comunicar con el exterior o bien recibir información, por tanto nuestro primer programa “Hola Mundo” sera el siguiente:

Problema 1: Se desea desarrollar un programa que controle el encendido y apagado de un juego de LED’s por el Puerto A y se muestre por el Puerto B. Desarrollar dicho programa en ensamblador.
Respuesta.- Bueno para empezar básicamente este programa es el encendido y apagado de LED’s el cual sera nuestro primer programa, básicamente todos se inician en la programación en ensamblador con este tipo de programas, por esa razón decidí comenzare el tutorial explicando precisamente un programa que realice tal acción ademas de una posible aplicación cosa que nos puede ser útil mas adelante.
1er paso).- Primero en papel o bien un block de notas empecemos por plantearnos el programa que controle el encendido de los LED en nuestra mente. Partamos de una plantilla, primer describiremos el programa para revisar y actualizar el programa según sea necesario:


 
2do Paso).- Continuemos con las librerías necesarias para que el simulador en este caso Mplab puede trabajar, esta librerías también se encuentran en MikroBasic y Proteus.



 
La primera línea se utiliza simplemente para indicarle al programa el modelo de PIC que vamos a utilizar.
La segunda línea es para agregar a nuestro programa la librería del PIC 16F877A que contiene datos de direccionamiento para que no tengamos que escribirlos manualmente.
3er Paso).- Configuramos los puertos como entrada o salida en la siguiente imagen:

 
a).- Notamos que inicia desde la dirección org 0x00, para el comienzo del programa principal.
b).- Empecemos por acceder a los bancos. Para moverse de un banco a otro debemos utilizar el registro STATUS. En este registro tenemos RP0 y RP1, los cuales deben tener un 0 o un 1 para poder posicionarnos en un determinado banco. La siguiente tabla (extraída de la datasheet) muestra la configuración que debe tener RP0 y RP1 para moverse a un determinado banco:


 
4to Paso).- El código completo  aquí :



 
LA SIMULACIÓN EN MPLAB
Ahora que tenemos nuestro programa iremos simulando en el IDE Mplab.
1).- Creamos un proyecto nuevo para nuestro simulación, si no recuerdas el procedimiento puedes ingresar al anterior tutorial donde se toco este tema.


 
2).- una vez creado el proyecto tendremos el siguiente sumario acerca de nuestro proyecto:



 
3).- Creamos una hoja en blanco con toda la configuración para el IDE Mplab:


 
Nuestra hoja en blanco indica que hemos diseñado un buen proyecto , ahora escribamos el código anterior y verifiquemos que compile



 
Una vez compilado tendremos lo siguiente:


 
Una vez compilado ahora vamos a la carpeta donde se a guardado el programa y buscamos nuestro archivo ejercicio01.hex y lo vamos a guardar de modo que podamos utilizarlo con proteus 7.9.


 
SIMULACIÓN EN PROTEUS 7.9
Ahora lego el momento de la prueba en el simulador de Proteus 7.9,:
1).- Generamos un proyecto y lo guardamos en la carpeta donde realizamos nuestro ejercicio01 de Mplab, como vemos en la siguiente imagen:



 
2).- Ahora armamos en Proteus el microcontrolador de modo que podamos realizar nuestros simulaciones de manera adecuada:



 
Ahora agreguemos nuestro archivo ejercicio01.hex al microcontrolador de la siguiente manera, haciendo un click derecho y vamos a la parte de agregar código fuente al final de la ventana , similar a la imagen.


 
Buscamos nuestro código hex y lo cargamos de acuerdo a la imagen:


 
Le damos a abrir y luego ejecutamos en el botón de run de proteus:


 
Al final confirmamos el buen funcionamiento de nuestro código y su simulación en Proteus, la implementación en protoboard ya puede ser efectiva con lo cual nuestro código es funcional, ahora para lo siguientes ejercicios vamos a realizar la misma metodología pero ya con menos pasos y mas imágenes, por tanto este tema como tal sera como referencia para iniciar los proyectos tanto en Proteus y MPlab.

Espero que todo el material que se presenta le sea de utilidad y así el siguiente tutorial sea de gran ayuda para los que iniciamos en el mundo de la programación en microcntroladores.



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...