ELECTRONICA Y COMPUTACION - ESTRUCTURA DE UN PROGRAMA PARA PIC 16F84
   
  Esta nota tiene por objeto mostrarle a los que recién se inician en el campo de los microcontroladores cómo se ejecuta una instrucción dentro de la Unidad Aritmética y Lógica del uP. Las imágenes fueron capturadas del video: "Todo Sobre PICs"
   
 
   
  - DESARROLLO
   
  El PIC16F84, como otros microcontroladores de la misma clase, pueden programarse por medio de un set reducido de instrucciones (son 35 instrucciones), tal como hemos explicado en diferentes artículos de Saber Electrónica.

En el video Todo Sobre PICs volumen 1 (que está disponible en versiones VHS, en VCD para computadora y en DVD para reproductores hogareños) se explica todas las instrucciones del set y cómo se la estructura básica de un programa, indicando cómo se realizan las operaciones en forma gráfica, para que sea comprensible por el lector.

En dicho video se dice que una memoria es como una cajonera (figura 1), cada cajón de esa cajonera corresponde a una posición de memoria, el microcontrolador entiende a la posición de memoria que nosotros llamamos "A" con un determinado número expresado en hexadecimal denominado posición de memoria.

En el ejemplo de la figura 1 tenemos una memoria de 4 palabras (cajonera de 4 cajones) y cada palabra puede tener un contenido expresado en bits.
   
 
   
 
Supongamos que yo quiero sumar en número 5 con el número 7 y debo guardar el resultado en una posición de memoria.

Cargo el número 5 en la posición de memoria, correspondiente a la variable "A" (figura 2) y el número 7 lo cargo en la posición correspondiente a "B" (figura 3), y digo que voy a sumar los números en A y B (figura 4) y expresar el resultado en la unidad C.
   
 
   
 

Lo que hace la unidad aritmética y lógica es sumar el contenido de A y B y guarda el resultado donde el programa se lo indique, en este caso en C quiere decir que dentro de esa posición tenemos el número 12 correspondiente a la suma de la variable A y B respectivamente (figura 5).

Expresado gráficamente vemos una memoria RAM compuesta de varias posiciones (figura 6), obviamente en un microcontrolador la capacidad de memoria está dada por la serie a la cual nos referimos en el PIC 16F84 tenemos 64 posiciones de memoria y en cada uno de ellas se pueden colocar 14 bits.

En nuestro caso si son los datos y tenemos palabras de 8 bits, en la posición que corresponde a la variable "A" cargamos el número 5 (figura 7), en la posición que corresponde a la variable B el número 7 (figura 8), luego mediante la instrucción correspondiente, la ALU recibe la instrucción de sumar, y se hace la operación entre los contenidos de las posiciones A y B y se guarda el resultado en la posición de memoria correspondiente a la variable C (figura 9). Matemáticamente:

A + B = C

Pero ésto no es algo comprensible por el microcontrolador, debemos entonces saber cuál es la estructura del programa, para que sea comprensible por nuestro controlador, tema que se explica en el video Todo Sobre PICs 1 y que también analizaremos en futuras ediciones.

   
 
   
 
 
   
  Lo que acabamos de ver no es una estructura comprensible con nuestro microcontrolador, ni siquiera está expresado de forma tal para que yo luego pueda ensamblarlo, para que sí lo comprenda nuestro procesador.

La instrucción que permite la suma entre contenidos de registros (o posiciones de memoria y registro W) es ADDWF que significa que suma los contenidos del registro de trabajo con los cierres pendientes a una variable y aloja los resultados en el contenido de trabajo o en otra variable (figura 10).
   
 
 
  Lo que hacemos es sumar el contenido del registro W con el contenido de la variable A que corresponde a una posición de memoria y alojar el resultado en otra posición de memoria que nosotros hemos denomiando R.

Veremos en otra nota que podrá expresar el programa de forma tal que sea comprendido por el usuario para que podamos ensamblarlo y así que el programa sea comprendido por el microcontrolador. Dicho de otra manera, tenemos que saber cómo es la estructura que vamos a utilizar para habilitar un programa.

Daremos ejemplos reales, como ser el programa correspondiente al encendido del bit menos significativo del port B, lo que estamos haciendo es colocando un 1 lógico en el bit menos significativo de ese port.

Aclaramos que existe abundante bibliografía sobre el tema, que por ser lector, Ud. puede acceder desde nuestra web con la clave: todopics (diríjase a www.webelectronica.comm.ar, haga click en el ícono password e ingrese la clave mencionada). Editorial Quark ha producido tres videos (figura 11) en formato VHS:

1- PICs para Estudiantes y Aficionados
2- Todo Sobre PICs
3- Curso Completo de PICs

El primer video está destinado a quienes comienzan con el tema, en él se explica por medio de placas, la estructura de un microcontrolador, el diagrama de terminales, para qué sirve un PIC, ejemplos de cargadores de memoria, etc. Los temas se dan con una profundidad relativa a quienes poseen conocimientos escasos de electrónica y representa el punto de partida para quienes dsean introducirse en el apasionante mundo de los microcontroladores.

El video "Todo Sobre PICs" ya es un poco más avanzado; en él puede ver la diferencia entre microcontroladores y microprocesadores, el diagrama en bloques del 16F84, el set de instrucciones, la estructura de un programa, etc, mientras que en el video "Curso Completo de PICs" se da por supuesto que el lector ya tiene conocimientos sobre estos circuitos integrados, razón por la cual se comienzan desarrollando ejemplos de programación, se enseña el uso del MPLAB y cómo es la edición de un programa, se muestra cómo debe armarse y conectarse un circuito cargador y se brindan ejemplos sobre circuitos reales.

Cabe aclarar que los videos "Todo Sobre PICs" y "Curso Completo de PICs" también se presentan en formatos VCD y DVD (figura 12). Obviamente ambos formatos pueden verse en un reproductor de DVD hogareño y puede navegar por los menúes de cada video, seleccionando el tema de su interés. La diferencia entre cada formato está dada especilamente por la definición, siendo mucho mejor la calidad de imagen en DVD. Si lo desea, puede obtener mayor información sobre estos productos en la clave dada anteriormente o contactándonos vía e-mail a: ateclien@webelectronica.com.ar o por teléfono al: (011) 4301-8804.
   
 
   
 
Autor: Ing. Horacio Daniel Vallejo - e-mail: hvquark@ar.inter.net