sábado, 11 de marzo de 2017

Análisis y diseño de programas en ensamblador para PIC ( PARTE 1 )



Bienvenidos a los tutoriales de Artes Electrónicas Pachani, hoy vamos a iniciar la serie de tutoriales dedicados a los microcontroladores PIC, este tutorial está dirigido a lectores novatos, aficionados (hobbistas), estudiantes, que deseen implementar programas para microcontroladores en lenguaje ensamblador (ASM).

¿Que es un PIC?
Vayamos definiendo que entendemos por PIC: Los PIC son una familia de microcontroladores desarrollados y fabricados por la empresa Microchip Technologies Inc., diseñados en una tecnología del tipo RISC (“Reduced Instruction Set Computer” Set de instrucciones reducido para computadora) y con arquitectura interna característica que varían según el modelo de PIC que deseamos utilizar.



Figura 1.1.- Elementos de un microcontrolador.

De principio de podemos decir que los microcontroladores se asemejan a una computadora, de tamaño muy reducido y compacto, ya que cuentan con los mismos recursos que una computadora, es decir, poseen memoria de programa, memoria RAM, memoria de datos, puertos de entrada o salida, temporizadores y en algunos casos cuentan con recursos adicionales como conversores A/D, comparadores, USART (Universal Synchronous/Asynchronous Receiver/Transmitter), comunicación serie I2C, entre otros.

Las herramientas


Figura 1.2.- Bienvenida e Inicio del curso. 
(me parecio un hermosa manera de iniciar la clase)


 Primero consideremos las herramientas necesarias para empezar este curso:

Lenguaje Ensamblador
Primero conozcamos mas a fondo que necesitamos para poder iniciar nuestro trabajo en los microcontroladores PIC, entendamos primero que puede hacer un microcontrolador PIC:

Por si mismo no puede hacer nada”

-¿Entonces donde se encuentra la magia de los microcontroladores PIC?
De igual manera que nosotros utilizamos un lenguaje para comunicarnos entre nosotros, los Microcontroladores necesitan de un lenguaje para poder interactuar con nosotros. Ahí es donde tiene mayor importancia un lenguaje de programación llamado Ensamblador, es la manera mas directa con la que podemos trabajar con un microcontrolador.
Lenguaje de Bajo Nivel (Ensamblador), a diferencia de Alto Nivel que son interpretes de lenguaje de bajo nivel como lo son: C, Basic, VisualBasic, Fortran, etc . La capacidad del lenguaje de bajo nivel se halla en que podemos trabajar con un puerto bit a bit.
Siendo mas estrictos diremos que los microcontroladores entienden un lenguaje formado por los ceros y unos en sistema binario. Es decir ualquier instrucción que deba ser ejecutada por el microcontrolador debe estar expresada en binario. Ahí es donde mas importancia tiene el Ensamblador pues este interpreta a Código Máquina las instrucciones que necesitemos indicarle al microcontrolador.

Por ejemplo. Cuando el microcontrolador PlC lee el código maquina " 1111100011101” , esta recibiendo la siguiente instrucción:

"suma 58 al registro de trabajo W y guarda el resultado en este mismo registro W".

Dicha codificación binaria resulta incomoda para trabajar ( ademas que visualmente parece algo desconcertante), por lo que muchas veces se utiliza la codificación hexadecimal para facilitar la interpretación de los códigos maquina y no saturar las pantallas (ni los cerebros) de unos y ceros.



Figura 1.3.- Programación del microcontrolador.

Diremos que el lenguaje ensamblador utiliza nemonicos que son grupos de caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar con cada instrucción. Los nemonicos se corresponden con las iniciales del nombre de la instrucción en inglés, de forma que "recuerdan" la operación que realiza la instrucción, lo que facilita su memorización.

Por ejemplo:
Instrucción: "suma 58 al registro de trabajo W y guarda el resultado en este mismo registro W"
Ensamblador: addlw d’58’
Máquina: ‘11111000111010’ (expresado en binario).
3 E3 A (expresado en hexadecimal).

Programa ensamblador
Por lo que hemos visto hasta ahora podemos decir que un programa escrito en lenguaje ensamblador recibe la denominación de código fuente, archivo fuente o fichero fuente. Suele tener la extensión *.asm . El archivo fuente debe ser traducido a código maquina, de lo cual se encarga el programa ensamblador, en nuestro caso sera IDE de MikroC, IDE MpLab u otro que pueda interpretar a código fuente . La mayoría de los ensambladores proporcionan a su salida ademas un fichero que suele tener la extensión *.hex . Este fichero puede ser grabado en la memoria de programa mediante la utilización de un grabador de microcontroladores como por ejemplo Pickit2, Pickit3 o un grabador universal, etc .


Figura 1.4.- Inicio de IDE MpLab.


Figura 1.5.- Inicio IDE MikroC.

Para espesar vamos a iniciar nuestras practicas con el IDE de MpLab, y luego en MikroC pero dentro del código C vamos a colocar en Ensamblador las instrucciones que así necesitemos.

Bien hasta aquí la parte introductoria para lo que sera nuestro tutorial de programación en ensamblador para microcontroladores , espero les sea de utilidad todo este material aquí presentado y es libre de ser utilizado como material de apoyo y no se olviden de mencionar la fuente de este materia.
Espero les sea de utilidad a las personas que sienten esa inquietud de aprender, para resolver sus necesidades, por el momento hasta la próxima entrega.

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 21 de Febrero 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.- MikroC_PRO_PIC_2016_Build.6.6.3 descargado de la pagina oficial de Microchip;

2.- MpLab version 8.92 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...