entorno de desarrollo integrado para la programacion de micro control adores pic16f84
TRANSCRIPT
Abstract—Este artículo pretende dar a conocer una nueva herramienta computacional diseñada y desarrollada para la
programación integrada de los microcontroladores PIC16F84A. Este software se basa en el uso de diagramas de flujo, a partir de
los cuales se generan las instrucciones necesarias para ser
ejecutadas en los microcontroladores. El software implementa
tres fases de desarrollo: diseño de la solución, simulación del
resultado y grabación del microcontrolador. Esta herramienta ha sido desarrollada en el lenguaje de programación Java y hace uso
de MPASM de Microchip y IC-PROG para el compilado del
código fuente a código máquina y la grabación del
microcontrolador respectivamente.
Palabras clave—Microcontrolador, PIC16F84A, flujograma, diagrama de flujo, grabación, simular.
I. INTRODUCCIÓN
ON este proyecto se pretende dar solución a las
dificultades que los usuarios presentan en el uso de
microcontroladores, problema que consiste en el aprendizaje
de la sintaxis y la lógica del lenguaje Ensamblador, necesario
para la programación de estos, y por ser un lenguaje de bajo
nivel y en consecuencia difícil de entender, representa una
complicación y un punto de interrupción en la práctica con
microcontroladores.
El proyecto tiene como finalidad desarrollar un Entorno de
Desarrollo Integrado (IDE), que facilitará la programación de
microcontroladores aportando herramientas gráficas que
permitan representar un programa determinado sin tener que
escribirlo en lenguaje Ensamblador, además de presentar una
interfaz amigable para el usuario y un proceso de compilación
que asegure la correcta estructura sintáctica y lógica del
código en ensamblador.
De esta manera se pretende que el usuario pueda
programar microcontroladores sin la necesidad de aprender el
lenguaje Ensamblador, preocupándose únicamente por el
análisis y la interpretación gráfica (a través de diagramas de
flu jo) de los programas, contando con una herramienta
completa que garantice un proceso completo de grabado
obteniendo un circuito funcional.
Este artículo está organizado de la siguiente manera: a
continuación, se estudia la fundamentación teórica sobre los
microcontroladores. Luego, se describen las características
básicas de los microcontroladores PIC16F84A.
Posteriormente, se explica la manera en que se desarrollan los
proyectos para ser implementados por estos dispositivos
utilizando el software diseñado. Siguiendo con una breve
descripción de las funcionalidades del software propuesto.
Finalmente, se expondrán las conclusiones de este artículo.
II. FUNDAMENTACION TEÓRICA
El microcontrolador se puede definir como un dispositivo
electrónico programable que contiene todos los componentes
necesarios para controlar el funcionamiento de procesos
lógicos. Estos procesos o acciones son programados en
Lenguaje Ensamblador. Un sistema con microcontrolador
debe disponer de una memoria donde se almacena el programa
que gobierna el funcionamiento del mismo, y una vez
programado y configurado, únicamente se emplea para
realizar el proceso asignado.
Al hacer uso de un microcontrolador en un circuito, se
logra reducir notablemente el tamaño y número de
componentes utilizados, y de esta forma se pueden disminuir
el número de desperfectos, el volumen y el peso de los
equipos, entre otras ventajas.
Existe una gran variedad de proyectos que pueden llevarse
a cabo haciendo uso de microcontroladores. Numerosos
trabajos de tesis han explorado las ventajas y las opciones
ilimitadas que proporcionan los microcontroladores, con
proyectos como la creación de un cortafuegos (firewall)
basado en un microcontrolador, un sistema de mensajería
celular usando microcontroladores, la elaboración de un robot
explorador de ductos, que hace uso de microcontroladores
para controlar el desplazamiento del robot, y el desarrollo de
un sistema de sensores para el monitoreo de variables
climatológicas, que permite registrar variables tales como
temperatura, velocidad y dirección del viento, y las almacena
en una base de datos.
En los últimos años han tenido un gran auge los
microcontroladores PIC fabricados por Microchip Technology
Inc. Los PIC (Peripheral Interface Controller) son una familia
de microcontroladores que ha tenido gran aceptación y
desarrollo en los últimos años gracias a que sus buenas
características, bajo precio, pequeño tamaño, gran calidad,
fiabilidad y abundancia de información, lo convierten en muy
fácil, cómodo y rápido de utilizar [1].
III. CARACTERÍSTICAS BÁSICAS DEL PIC16F84A
ENTRO de los microcontroladores de Microchip (PIC),
existen cuatro gamas: gama enana, gama baja, gama
media y gama alta.
El PIC16F84A pertenece a la gama media. Esta gama es la
más variada y completa de los PIC. Abarca modelos con
encapsulado desde 18 patas hasta 68, cubriendo varias
opciones que integran abundantes periféricos. Dentro de esta
gama se halla el famoso PIC16X84 y sus variantes.
Entorno de desarrollo integrado para la
programación de microcontroladores PIC16F84A
Marlon E. Garrizano , Stephanie C. Guadrón, Guillermo A. Morán, Manuel N. Cardona Gutiérrez
Facultad de Ingeniería y C.C. N.N, Universidad de Sonsonate, Sonsonate, El Salvador C.A.
C
D
El ancho de la memoria de programa es de 14 bits,
pudiendo ser ROM, EPROM o EEPROM. Incluyen
interrupciones, conversores A/D, mayor número de
temporizadores y otras características según el modelo. Su
juego de instrucciones es de 35.
Fig. 1. Gama Media PIC16F8X
Todo microcontrolador incluye las siguientes
características básicas:
A. Procesador
Es el elemento principal del microcontrolador, determina
sus principales características, tanto a nivel de hardware como
de software. Se encarga de direccionar a la memoria de
instrucciones, así como busca los operandos y almacena el
resultado.
B. Memoria
Puede ser de varios tipos, pero los de la gama media como
los PIC16F84A, implementan una memoria ROM, EPROM o
EEPROM.
1) Memoria ROM
Es una memoria no volát il de sólo lectura cuyo contenido
se graba durante la fabricación del chip.
2) Memoria EPROM
(Erasable Programmable Read Only Memory) puede
borrarse y grabarse muchas veces . La grabación se realiza con
un grabador manejado desde un ordenador. Si, posteriormente,
se desea borrar el contenido, disponen de una ventana de
cristal en su superficie por la que se somete a la EPROM a
rayos ultravioleta durante varios minutos.
3) Memoria EEPROM
(Electrical Erasable Probrammable Read Only Memory),
se trata de una memoria de sólo lectura, programable y
borrable eléctricamente.
C. Puertas de entrada/salida
Las puertas de entrada y salida permiten comunicar al
procesador con el mundo exterior, a través de interfaces, o con
otros dispositivos. Estas puertas, también llamada puertos, son
la principal utilidad de las patas de un microcontrolador.
D. Reloj principal
Todos los microcontroladores disponen de un circuito
oscilador que genera una onda cuadrada de alta frecuencia,
que configura los impulsos de reloj usados en la
sincronización de todas las operaciones del sistema. Esta señal
del reloj es el motor del sistema y la que hace que el programa
y los contadores avancen.
E. Temporizador o Timer
Controlan períodos de tiempo (temporizadores) y llevan la
cuenta de acontecimientos que suceden en el exterior
(contadores).
F. Perro guardián o Watchdog
Consiste en un contador que, cuando llega al máximo,
provoca un reset automáticamente en el sistema.
G. Protección ante fallo de alimentación o Brownout
Resetea al microcontrolador cuando el voltaje de
alimentación (VDD) es inferior o un voltaje mínimo
(brownout).
H. Estado de reposo o de bajo consumo (Sleep mode)
Estado al cual los requerimientos de potencia son mínimos.
I. Conversor A/D (Analógico -> Digital)
Provee la capacidad de procesar señales analógicas.
J. Conversor D/A (Digital -> Analógico)
Transforma los datos digitales a su correspondiente señal
analógica.
K. Comparador analógico
Amplificador Operacional que actúa como comparador
entre una señal fija de referencia y otra variable que se aplica
por una de las patitas de la cápsula.
L. Modulador de anchura de impulsos o PWM (Pulse Wide
Modulation)
Proporcionan impulsos de anchura variable.
M. Puertas de Entrada/Salida digitales
Todos los microcontrolador destinan parte de su patillaje a
soportar líneas de entrada y salida digitales.
N. Puertas de comunicación
Dotan al microcontrolador de la posibilidad de comunicarse
con otros dispositivos externos [2].
IV. DESARROLLO DE PROYECTOS PARA
MICROCONTROLADORES
L proceso a seguir para desarrollar proyectos que
implementará microcontroladores PIC16F84A en el
software diseñado, conlleva una serie de pasos sistematizados
como se muestra en la Fig. 2:
E
Fig. 2. Esquema del proceso de creación y grabación de un microcontrolador.
El usuario diseña la solución como un diagrama de flujo o
flu jograma en papel con el fin de representar las instrucciones
que el microcontrolador realizará de una forma estructurada.
Posteriormente, ese mismo d iagrama deberá ser diseñado
en el software, ya que este provee las herramientas necesarias
para dicha tarea.
Luego de haber realizado el diagrama en el software, el
IDE compila y genera el código en lenguaje ensamblador cuyo
resultado puede ser simulado para verificar si este realiza las
instrucciones deseadas.
Luego de haber sido comprobado y verificado el
funcionamiento del proyecto desarrollado, la siguiente fase es
el compilado del archivo en lenguaje ensamblador. Este
proceso hace uso del compilador de Microchip l lamado
MPASM. El IDE envía los parámetros necesarios al
compilador y este realiza el procedimiento. El resultado de
esta fase es la obtención del archivo en código hexadecimal o
en código máquina.
Al final, luego de haber obtenido el archivo en código
hexadecimal, es posible realizar la fase de grabación del
microcontrolador. Esta etapa utiliza el grabador llamado IC-
PROG. El IDE envía los parámetros necesarios al grabador y
este, al verificar que existe el hardware grabador conectado al
ordenador y que a la vez este posee incorporado un
microcontrolador PIC16F84A, realiza la grabación del
proyecto desarrollado.
Si no han surgido problemas de grabación, el resultado
final es un microcontrolador grabado con el proyecto que se
ha diseñado y desarrollado en el software presentado.
V. MANUAL DEL USUARIO
A utilización del software propuesto implica poseer
ciertos conocimientos acerca de el, es por esta razón que a
continuación se describe la funcionalidad de este y de cómo se
realizan las tareas básicas para las que fue creado.
A. Crear nuevo proyecto
Al hacer clic en el botón Nuevo Fig .3:
Fig. 3. Botón Nuevo Proyecto.
Luego aparecerá un cuadro de dialogo Fig. 4 donde
introduciremos el Nombre del proyecto y su Ubicación dentro
de Windows.
Fig. 4. Cuadro de dialogo de nuevo proyecto.
Para buscar la Ubicación del proyecto dar clic en
Examinar… y luego aparecerá el cuadro de dialogo donde se
buscará la ubicación deseada, luego dar clic al botón Abrir.
Como últ imo paso se dará clic en Crear.
B. Agregar figuras
El proceso de agregar figuras es necesario para crear los
programas; cada figura es una representación gráfica de un
bloque de código en ensamblador.
El conjunto de figuras ayuda a crear una representación
gráfica lógica, o mejor dicho un flujograma; a continuación se
presentan cada figura, su aplicación y sus asistentes
respectivos. Cabe mencionar que para la creación de
flu jogramas es necesario un conocimiento previo de lógica
computacional o diagramación de procesos.
Para insertar cada figura es necesario dar clic y arrastrar
manteniendo presionado el botón izquierdo del mouse hasta
ubicar la figura sobre el lugar donde queremos insertarla; el
programa muestra el lugar donde se insertará la figura
cambiando el bloque de la línea de negro a azu l, como se
muestra en la Fig. 5:
Fig. 5. Modo de inserción de figuras
Los tipos de figuras que se pueden insertar son:
1) Proceso
Representación gráfica de una operación de variables.
2) Retardo
Representación grafica de un tiempo de espera en el
L
programa.
3) Hacer mientras
Representa un ciclo condicional, o sea que se realizará un
determinado número de operaciones mientras se cumpla esta
condición, en lógica computacional se les llama bucles.
4) Condición
Representa una condición que puede ser cumplida o no, es
una sección donde el programa en base a su lógica puede
tomar uno de dos caminos.
5) Salida
Representación gráfica de la activación de uno o varios
pines del microcontrolador.
C. Simular resultado
Para simular un programa lo único que debemos hacer es
dar clic en el botón que se muestra en la Fig. 6.
Fig. 6. Botón Simular.
Inmediatamente aparecerá una ventana de simulación, en
la cual se presenta un botón de Play para simular el flujograma
Fig. 7.
Fig. 7. Ventana de simulación.
El botón Stop sirve para detener la simulación, y cuando se
desee puede cancelarse la simulación dando clic en el botón
Aceptar.
D. Generar código ensamblador
Para convertir un diagrama a código ensamblador debemos
dar clic en el botón mostrado en la Fig. 8.
Fig. 8. Botón Generar ASM.
Durante el proceso aparecerá un cuadro de diálogo, que
especifica la conversión de cada figura, como el que
representa la Fig. 9. Terminado el proceso dar clic en el botón
Cerrar.
Fig. 9. Compilación de proyecto.
E. Mostrar código Ensamblador
Para mostrar en pantalla el código ensamblador de un
diagrama creado, dar clic en el botón de la Fig. 10.
Fig. 10. Botón Ver Código ASM.
Inmediatamente aparecerá un block de notas mostrando el
código ensamblador del diagrama creado, de la forma que se
muestra en la Fig. 11, exp licando con breves comentarios cada
bloque de código.
Fig. 11. Código en ensamblador generado.
Nota: No olvidar generar el código ensamblador antes, de
lo contrario estaría mostrándose un código erróneo. Para
generar un código ensamblador revisar el tema anterior.
F. Grabar un Proyecto en Microcontrolador
Para grabar un microcontrolador es muy sencillo, solo se
debe dar clic en el botón mostrado en la Fig. 12.
Fig. 12. Botón Grabar Microcontrolador.
Inmediatamente aparecerá una ventana como la mostrada
en la Fig. 13 en donde se dará clic en el botón Grabar.
Fig. 13. Cuadro de diálogo Grabar Microcontrolador.
El proceso de grabación puede tardarse minutos o
segundos, luego el sistema mostrará un mensaje de
confirmación de la grabación.
Se tiene la opción de generar un archivo .HEX, para
utilización que el usuario pueda utilizarlo en lo que estime
conveniente. Para generar el archivo .HEX se debe dar clic en
el botón Generar archivo .HEX únicamente, inmediatamente
se mostrará una ventana con la ubicación donde se generó el
archivo como se muestra en la Fig. 14.
Fig. 14. Fin del proceso de grabación.
VI. REFERENCIAS
[1] Palacios Municio, E.; Remiro Domínguez, F; López Pérez, LJ. "Microcontrolador PIC16F84: Desarrollo de proyectos", 1ª edición, Mexico: Alfa Omega Grupo Editor, 2004, p. 1.
[2] Cser Aedo, FA, "Sistema de control mediante mensajes SMS y
microcontroladores", Universidad Católica de Temuco, Examen de Título, 2006, p. 7-12.