Sie sind auf Seite 1von 149

UNIVERSIDAD DE SONSONATE

FACULTAD DE INGENIERÍA Y CIENCIAS NATURALES

TEMA: CREACIÓN DE UN ENTORNO DE DESARROLLO


INTEGRADO (IDE) PARA LA PROGRAMACIÓN DE
MICROCONTROLADORES UTILIZANDO MPASM DE
MICROCHIP E IC-PROG

TRABAJO DE GRADUACIÓN PARA OPTAR AL TÍTULO DE:


INGENIERO EN SISTEMAS COMPUTACIONALES
PRESENTADO POR:

STEPHANIE CAROLINE GUADRÓN MAGAÑA


GUILLERMO ARNOLDO MORÁN PORTILLO
MARLON ENRIQUE GARRIZANO ZEPEDA

ASESOR:
ING. SAMUEL ALFONSO MARGUÉIS GUZMÁN

MAYO DE 2009
SONSONATE, EL SALVADOR, CENTRO AMÉRICA.
ÍNDICE GENERAL

CONTENIDO
PÁGINA
ÍNDICE GENERAL ................................................................................................... i
ÍNDICE DE TABLAS ............................................................................................... vi
ÍNDICE DE GRÁFICOS ......................................................................................... vii
ÍNDICE DE ANEXOS ............................................................................................. vii
INTRODUCCIÓN .................................................................................................. viii
CAPITULO I. PLANTEAMIENTO DEL PROBLEMA ............................................... 1
A. El problema de Investigación .............................................................................. 1
B. Antecedentes y Situación Actual......................................................................... 2
1. Antecedentes ................................................................................................... 2
2. Situación Actual ............................................................................................... 3
a. Utilización de microcontroladores en la Universidad de Sonsonate ............. 3
b. Tipo de microcontrolador utilizado en la Universidad de Sonsonate ............ 4
C. Preguntas de Investigación................................................................................. 4
CAPÍTULO II. FUNDAMENTACIÓN TEÓRICA ....................................................... 5
A. Revisión de Literatura ......................................................................................... 5
1. Importancia de los microcontroladores ............................................................ 5
2. Proyectos desarrollados con microcontroladores ............................................ 5
3. Entorno de Desarrollo Integrado ...................................................................... 6
a. Definición ..................................................................................................... 6
b. IDEs para la programación de Microcontroladores ...................................... 7
I. MPLAB ...................................................................................................... 7
II. PICAXE Programming Editor .................................................................... 7
III. LOGICATOR for PIC Micros .................................................................... 8
IV. Flowcode ................................................................................................. 8
4. Teoría General sobre Microcontroladores ....................................................... 8
a. Definición ..................................................................................................... 8
b. Componentes de un microcontrolador ......................................................... 9
I. Procesador ................................................................................................ 9
i
i. CISC..................................................................................................... 10
ii. RISC .................................................................................................... 10
iii. SISC ................................................................................................... 10
II. Memoria.................................................................................................. 10
i. ROM con máscara ............................................................................... 10
ii. OTP ..................................................................................................... 11
iii. EPROM ............................................................................................. 11
iv. EEPROM, E2PROM o E²PROM......................................................... 11
v. FLASH ................................................................................................. 12
III. Puertas de entrada y salida (E/S) del microcontrolador......................... 12
IV. Reloj principal ........................................................................................ 12
V. Recursos especiales .............................................................................. 13
b. La familia de los PIC .................................................................................. 15
I. Introducción ............................................................................................. 15
II. La familia PIC ......................................................................................... 15
i. Gama enana. PIC12CXXX ................................................................... 15
ii. Gama baja. PIC16C5XX con instrucciones de 12 bits......................... 16
iii. Gama media. PIC16CXXX con instrucciones de 14 bits .................... 16
iv. Gama alta: PIC17CXXX con instrucciones de 16 bits ........................ 17
5. Generalidades sobre el Lenguaje Ensamblador ............................................ 17
a. Definición ................................................................................................... 17
b. Características ........................................................................................... 18
6. Generalidades sobre Compilación ................................................................. 18
a. El Proceso de Compilación ........................................................................ 18
I. Análisis léxico .......................................................................................... 19
II. Análisis sintáctico ................................................................................... 19
III. Análisis semántico ................................................................................. 19
IV. Generación de código intermedio.......................................................... 20
V. Optimización de código .......................................................................... 20
VI. Fase de síntesis .................................................................................... 20
b. Traductor .................................................................................................... 21

ii
I. Intérpretes ............................................................................................... 22
II. Compiladores ......................................................................................... 22
7. Proceso de grabación de un microcontrolador .............................................. 23
a. Programa Ensamblador ............................................................................. 25
I. Definición ................................................................................................. 25
II. Ensamblador a utilizar en el Proyecto .................................................... 25
b. Programador .............................................................................................. 26
I. Definición ................................................................................................. 26
II. Programador a utilizar en el Proyecto..................................................... 26
B. Hipótesis ........................................................................................................... 27
CAPÍTULO III. JUSTIFICACIÓN Y OBJETIVOS ................................................... 27
A. Justificación ...................................................................................................... 27
B. Objetivos ........................................................................................................... 28
1. Objetivo General ............................................................................................ 28
2. Objetivos Específicos..................................................................................... 28
C. Alcances y Limitaciones.................................................................................... 28
CAPÍTULO IV. METODOLOGÍA DE LA INVESTIGACIÓN ................................... 29
A. Tipo de Investigación ........................................................................................ 29
B. Unidades de Análisis ........................................................................................ 29
C. Variables y su Medición .................................................................................... 30
1. Definición de las variables ............................................................................. 30
2. Indicadores y su medición u observación ...................................................... 31
a. Instrumentos de Medición .......................................................................... 32
b. Técnicas y procedimientos para la recopilación de información ............... 32
D. Análisis e Interpretación de los Resultados ...................................................... 33
1. Recopilación de Información.......................................................................... 33
2. Interpretación de Resultados ......................................................................... 34
E. Plan de Proyecto ............................................................................................... 39
F. Plan de Utilización de los Resultados ............................................................... 39
CAPÍTULO V. PROPUESTA TÉCNICA ................................................................ 40
A. Modelado del negocio ....................................................................................... 40

iii
1. Generalidades de la empresa ........................................................................ 40
2. Diagrama de subsistemas de la empresa ...................................................... 40
B. Requisitos ......................................................................................................... 40
1. Oportunidad del negocio ................................................................................ 40
2. Definición del problema ................................................................................. 41
3. Requerimientos funcionales........................................................................... 41
a. Identificación de los actores .................................................................... 41
b. Identificación de escenarios ....................................................................... 42
c. Definición de los casos de uso ................................................................... 43
I. Modelo de casos de uso .......................................................................... 43
II. Diagrama de estados.............................................................................. 44
III. Descripción de los casos de uso ........................................................... 47
4. Beneficios del cliente ..................................................................................... 52
5. Requerimientos no funcionales ...................................................................... 53
a. Matriz de Componentes ............................................................................. 54
b. Requerimientos de Hardware y Software ................................................... 55
I. Requerimientos de Hardware .................................................................. 55
II. Requerimientos de Software .................................................................. 55
c. Requerimientos de Entrada ........................................................................ 56
d. Requerimientos de Salida .......................................................................... 57
f. Requerimientos de Almacenamiento........................................................... 57
C. Análisis ............................................................................................................. 58
1. Análisis de casos de uso ............................................................................... 58
a. Identificación de clases entidad, interfaz y control ..................................... 58
b. Diagrama de clases.................................................................................... 60
c. Diagrama de colaboración.......................................................................... 63
d. Flujo de eventos ......................................................................................... 65
2. Análisis de clases .......................................................................................... 67
a. Identificación de las responsabilidades ...................................................... 67
3. Análisis de la Decisión ................................................................................... 70
a. Especificar las Soluciones Alternativas ...................................................... 70

iv
b. Analizar la Viabilidad de las Soluciones Alternativas ................................. 71
c. Determinar el Diseño de la Alternativa Propuesta ...................................... 73
D. DISEÑO ............................................................................................................ 74
1. Objetivos del Sistema .................................................................................... 74
a. Objetivo General ........................................................................................ 74
b. Objetivos Específicos ................................................................................. 74
2. Diseño de la arquitectura ............................................................................... 74
a. Arquitectura del Sistema ............................................................................ 74
b. Distribución del Sistema ............................................................................. 75
I. Capa de Datos ......................................................................................... 75
II. Capa de Procesos .................................................................................. 75
III. Capa de Presentación ........................................................................... 75
c. Identificación de nodos y configuraciones .................................................. 76
d. Identificación de clases relevantes ............................................................. 76
3. Diseño de Casos de Uso ............................................................................... 77
a. Identificación de clases de diseño .............................................................. 77
b. Interacción entre objetos ............................................................................ 81
4. Identificación de operaciones de clases de diseño ........................................ 86
5. Diseño de prototipo ........................................................................................ 88
E. CONSTRUCCIÓN E IMPLANTACIÓN ............................................................. 91
1. Construcción del software .............................................................................. 91
a. Implementación de clases de diseño ......................................................... 91
I. Generación de código fuente ................................................................... 91
II. Implementación de operaciones ............................................................. 91
b. Pruebas y corrección de errores ................................................................ 92
I. Pruebas de Unidad .................................................................................. 92
II. Pruebas de Integración........................................................................... 93
III. Pruebas del sistema .............................................................................. 93
c. Integración del sistema ........................................................................... 93
2. Implantación del Software .............................................................................. 94
a. Implantación de la arquitectura .................................................................. 94

v
I. Diagrama de componentes ...................................................................... 94
b. Plan de Implantación .................................................................................. 94
c. Capacitación a Usuarios............................................................................. 95
CAPITULO VI. ESTUDIO ECONÓMICO .............................................................. 96
A. Generalidades sobre la evaluación del proyecto .............................................. 96
B. Factibilidad del proyecto ................................................................................... 96
C. Determinación de los costos del proyecto ........................................................ 97
1. Costos fijos .................................................................................................... 97
2. Costos variables ............................................................................................ 98
3. Análisis Costo / Beneficio .............................................................................. 99
E. Determinación de beneficios del sistema ........................................................ 100
CAPITULO VII. CONCLUSIONES Y RECOMENDACIONES. ........................... 101
A. Conclusiones .................................................................................................. 101
B. Recomendaciones .......................................................................................... 101
Referencias Bibliográficas ................................................................................... 103
ANEXOS ............................................................................................................. 105

ÍNDICE DE TABLAS

Tabla 1. Problemática y su solución ........................................................................ 1


Tabla 2. Principales recursos que incorporan los microcontroladores .................. 13
Tabla 3. Definición de las variables ....................................................................... 30
Tabla 4. Relación entre variables y sus indicadores para la unidad de análisis
Estudiantes............................................................................................................ 31
Tabla 5. Relación entre variables y sus indicadores para la unidad de análisis
Instructores............................................................................................................ 31
Tabla 6. Relación entre variables y sus indicadores para la unidad de análisis
Catedráticos .......................................................................................................... 32
Tabla 7. Cronograma de actividades ..................................................................... 39

vi
ÍNDICE DE GRÁFICOS

Gráfico 1. Planteamiento del problema ................................................................... 1


Gráfico 2. Gama Enana PIC12F675 ...................................................................... 15
Gráfico 3. Gama Media PIC16F8X ........................................................................ 16
Gráfico 4. Esquema preliminar de un traductor ..................................................... 21
Gráfico 5. Esquema de traducción/ejecución de un programa ejecutado ............. 22
Gráfico 6. Proceso de grabación del ASM en el microcontrolador ........................ 25
Gráfico 7. Diagrama de Gantt................................................................................ 39

ÍNDICE DE ANEXOS

Anexo 1. Matriz de Congruencia ......................................................................... 105


Anexo 2. Cuestionario ......................................................................................... 107
Anexo 3. Entrevista Estructurada ........................................................................ 109
Anexo 4. Manual de Usuario ............................................................................... 111

vii
INTRODUCCIÓN

El presente proyecto contempla la creación de un software para facilitar la


programación de dispositivos denominados microcontroladores, los cuales son
utilizados por los estudiantes de la Universidad de Sonsonate en la realización de
prácticas orientadas a la electrónica.

Con esta investigación se pretende dar solución a las dificultades que los
estudiantes presentan durante el desarrollo con microcontroladores, problema que
consiste en el aprendizaje de la sintaxis y la lógica del lenguaje Ensamblador,
necesario para la programación de microcontroladores. Este, por ser un lenguaje
de bajo nivel y en consecuencia dificultoso de entender, representa una
complicación y un punto de estanque en la práctica con microcontroladores.

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

Con esto, el usuario podrá programar microcontroladores sin la necesidad de


aprender el lenguaje Ensamblador, preocupándose únicamente por el análisis y la
interpretación gráfica de los programas, contando con una herramienta completa
que garantice un proceso completo de grabado obteniendo un circuito funcional.

En el capítulo uno del presente trabajo se determina la problemática de la


investigación, estableciendo los antecedentes y la situación actual, y planteando
las preguntas que se pretenden resolver en el desarrollo del estudio.

El capítulo dos reúne la teoría sobre la que se fundamenta la investigación, que


constituye la base para comprender el funcionamiento y el propósito del software a
viii
crear, además de aportar diferente información y definiciones del dispositivo
microcontrolador PIC16F84, para el cual será desarrollado el software en estudio.

El capítulo tres establece la justificación y los objetivos del proyecto, y en el


capítulo cuatro se designa la metodología a utilizar en el proceso de investigación,
incluyendo las variables a medir y las técnicas a emplear para ello.

El capítulo cuatro establece la metodología de investigación, se mencionan las


técnicas y las herramientas usadas para la recopilación y el análisis de datos, se
muestran los resultados obtenidos de la unidad en estudio y también se presenta
un cronograma de actividades a desarrollar en el transcurso de la investigación.

El capítulo cinco plasma la propuesta técnica, se desarrolla un análisis y diseño


del proyecto, que muestran la estructura e interacción del sistema, también se
muestra parte de la implantación que despliega el tipo de arquitectura y pruebas.

El capítulo seis desarrolla el estudio económico del proyecto, mostrando la


factibilidad técnica, operativa y económica, así como un breve análisis
costo/beneficio.

El séptimo y último capítulo muestra las conclusiones y recomendaciones para la


investigación desarrollada, enfocadas al proyecto y a los usuarios finales.

ix
CAPITULO I. PLANTEAMIENTO DEL PROBLEMA

A. El problema de Investigación

¿Resultará beneficioso el uso de un software para la programación de


microcontroladores en el proceso de enseñanza/aprendizaje de los estudiantes de
Ingeniería en Sistemas Computaciones e Ingeniería Eléctrica de la Universidad de
Sonsonate?

A continuación se muestra de forma gráfica el planteamiento del problema, donde


se representan dos estados, la problemática y la posible solución después de un
proceso de estudio.

Gráfico 1. Planteamiento del problema

INICIAL PROCESO FINAL

Tabla 1. Problemática y su solución


Problemática Solución
Falta de conocimiento de la sintaxis y Utilización de controles gráficos
estructura del lenguaje de (Diagrama de Flujo), para el desarrollo
programación Ensamblador, por parte lógico de la programación de
de los estudiantes. microcontroladores.
Tardanza en el desarrollo de bloques Herramienta que convierta veloz y
de código ensamblador, para la automáticamente, un esquema lógico
programación de microcontroladores. en bloques de código ensamblador
Escasa enseñanza práctica de equivalentes.
utilización de microcontroladores. Enseñanza práctica de utilización de
microcontroladores por medio de la
herramienta antes mencionada.

1
B. Antecedentes y Situación Actual

1. Antecedentes

Aunque en el mercado de la microinformática la mayor atención la acaparan los


desarrollos de los microprocesadores, lo cierto es que se venden cientos de
microcontroladores por cada uno de aquéllos.

Existe una gran diversidad de microcontroladores. Quizá la clasificación más


importante sea entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las
prestaciones de los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8
bits, la realidad es que los microcontroladores de 8 bits dominan el mercado y los de
4 bits se resisten a desaparecer. La razón de esta tendencia es que los
microcontroladores de 4 y 8 bits son apropiados para la gran mayoría de las
aplicaciones, lo que hace innecesario emplear microcontroladores más potentes y
consecuentemente más caros. Uno de los sectores que más hace uso del mercado
del microcontrolador es el mercado automovilístico. De hecho, algunas de las
familias de microcontroladores actuales se desarrollaron pensando en este sector,
siendo modificadas posteriormente para adaptarse a sistemas más genéricos. El
mercado del automóvil es además uno de los más exigentes: los componentes
electrónicos deben operar bajo condiciones extremas de vibraciones, choques,
ruido, entre otros, y seguir siendo fiables. El fallo de cualquier componente en un
automóvil puede ser el origen de un accidente.

En cuanto a las técnicas de fabricación, cabe decir que prácticamente la totalidad de


los microcontroladores actuales se fabrican con tecnología CMOS 4
(Complementary Metal Oxide Semiconductor). Esta tecnología supera a las técnicas
anteriores por su bajo consumo y alta inmunidad al ruido.

La distribución de las ventas de microcontroladores según su aplicación es la


siguiente:

2
- Una tercera parte se absorbe en las aplicaciones relacionadas con los
computadores y sus periféricos.
- La cuarta parte se utiliza en las aplicaciones de consumo
(electrodomésticos, juegos, TV, vídeo, etc.).
- El 16% de las ventas mundiales se destina al área de las comunicaciones.
- El resto de los microcontroladores vendidos en el mundo, aproximadamente
un 10% han sido adquiridos por las industrias de automoción.

También los modernos microcontroladores de 32 bits van afianzando sus posiciones


en el mercado, siendo las áreas de más interés el procesamiento de imágenes, las
comunicaciones, las aplicaciones militares, los procesos industriales y el control de
los dispositivos de almacenamiento masivo de datos.

En El Salvador se ha estado utilizando microcontroladores para la creación de


circuitos básicos, generalmente de tipo PIC, los cuales son de los más amigables
para programar y su implementación no es dificultosa; los de mayor utilización en el
mercado comercial salvadoreño son los PIC16F84.

En la Universidad de Sonsonate, los estudiantes de las carreras de Ingeniería


Eléctrica y Sistemas Computacionales, utilizan microcontroladores desde hace dos
años para simulación de circuitos electrónicos a menor escala, en materias como
Sistemas Digitales y Sistemas Automatizados, entre otras, que ayudan a reforzar los
conocimientos de innovación y experimentación de sistemas electrónicos, abriendo
así una ventana a un mundo de conocimientos muy diferente.

2. Situación Actual

a. Utilización de microcontroladores en la Universidad de Sonsonate

La Universidad de Sonsonate, siendo una institución de educación superior, ha


incluido en su laboratorio microcontroladores para la experimentación de circuitos

3
electrónicos, los cuales son diseñados por los estudiantes y, con ayuda de
instructores de cada una de las materias, son implantados en circuitos construidos
en las horas asignadas para esta actividad; sin embargo, el tiempo con el cual se
cuenta para este tipo de práctica es muy limitado, ya que la programación de estos
dispositivos es muy compleja y trabajosa, sin tomar en cuenta el tiempo que tiene
que emplearse para explicar el lenguaje de programación necesario para programar
estos dispositivos.

Por esto, los instructores muchas veces se han abstenido de enseñar y


experimentar con los microcontroladores, enfocándose así en otros temas que
consideran más importantes y privando a los estudiantes la oportunidad de obtener
nuevos conocimientos.

b. Tipo de microcontrolador utilizado en la Universidad de Sonsonate

Los microcontroladores con los que cuenta el laboratorio de la Universidad de


Sonsonate para la experimentación, son del modelo PIC 16F84, el cual es uno de
los dispositivos más sencillos tanto en sus características como en su
implementación.

C. Preguntas de Investigación.

1. ¿Cuáles son los problemas o dificultades con los que se enfrentan los
usuarios al momento de trabajar con microcontroladores?
2. ¿Es posible mejorar el aprendizaje y uso de los microcontroladores, a través
de un software que brinde herramientas gráficas para la programación de
éstos?
3. ¿Constituirá el software una herramienta que solvente los problemas en la
programación de microcontroladores?

4
CAPÍTULO II. FUNDAMENTACIÓN TEÓRICA

A. Revisión de Literatura

1. Importancia de los microcontroladores

Las áreas de la informática y la electrónica están íntimamente ligadas, debido a que


la primera partió de la segunda, y a través del tiempo se han venido combinando,
originando nuevas tecnologías. Prueba de ello es la domótica, que consiste en
controlar una casa electrónicamente, o el simple hecho de hacer uso de un
ordenador para definir y grabar las instrucciones en un microcontrolador.

Los microcontroladores han adquirido presencia e importancia en el sector


informático, industrial y doméstico, debido a que estos dispositivos se encuentran
integrados en herramientas de uso diario tales como: los ratones de un ordenador
personal, el control de frenos de un automóvil, los televisores, electrodomésticos y
teléfonos móviles.

Aparte de que esto denota el impacto de los microcontroladores en el entorno,


también demuestra que la necesidad de conocer y manejar estos dispositivos se
tornará imprescindible para las personas que realizan su trabajo en áreas afines a la
electrónica.

2. Proyectos desarrollados con microcontroladores

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

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

Los microcontroladores también han sido utilizados en la industria médica, en


proyectos tales como el desarrollo de un monitor de ritmo cardíaco, en que se utiliza
el PIC 16F84 para el cálculo del ritmo cardíaco, o en un sistema que permite
suministrar automáticamente dosis de insulina para pacientes con diabetes, donde
el microcontrolador sirve para controlar el motor que desplaza el émbolo o disco
dentro de la bomba, hasta que ésta suministra la cantidad indicada de insulina.

Asimismo, los microcontroladores pueden emplearse en la creación de proyectos de


menor envergadura, como cerraduras electrónicas, tacómetros, circuitos para
monitorear niveles de agua, relojes, alarmas, termómetros, juegos, etc.

3. Entorno de Desarrollo Integrado

a. Definición

Un Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) consiste en un


entorno de programación compuesto por un editor de código, un compilador, un
depurador y una interfaz gráfica de usuario (GUI). 1

El IDE puede verse, en líneas generales, como un programa que posee un conjunto
de herramientas para un programador.

Su principal objetivo es ofrecer un marco de trabajo amigable para facilitar el


proceso de creación de un programa, mediante un editor de código y/o herramientas
gráficas.

1
Wikipedia. 2008. Entorno de Desarrollo Integrado. Consultado 3 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado

6
Existen IDEs para la mayoría de los lenguajes de programación. Para Java, los
IDEs más populares son Eclipse y NetBeans. C++ cuenta con Visual C++ y Dev
C++.

b. IDEs para la programación de Microcontroladores

Existen diferentes tipos de IDEs que facilitan el manejo y programación de


microcontroladores. Algunos ejemplos de ellos son los siguientes:

I. MPLAB

Es un IDE gratuito creado por la empresa Microchip, que facilita el desarrollo de


aplicaciones que utilicen microcontroladores PIC. Ofrece un editor de texto, un
ensamblador que convierte un archivo ASM a un archivo hexadecimal (MPASM), y
un simulador en el que se puede ejecutar el código paso a paso (MPSIM). Requiere
de un programador externo para grabar el código hexadecimal en el
microcontrolador.

II. PICAXE Programming Editor

Es una herramienta gratuita que permite programar microcontroladores PICAXE


haciendo uso del lenguaje BASIC o por medio de la elaboración de diagramas de
flujo, generando un código propio. A diferencia de MPLAB, se puede completar el
proceso de grabación desde la misma IDE.

PICAXE es el nombre de un sistema de microcontroladores creados en el Reino


Unido, basado en una gama de microcontroladores PIC de la empresa Microchip.
Existen 11 variaciones del PICAXE con distinto número de pines, desde 8 hasta 40
pines. Inicialmente comercializados para uso en el sector educativo, son también

7
usados en el comercio y el sector técnico, incluyendo desarrollo rápido de
prototipos. 2
Los PICAXE no son más que microcontroladores pre-programados, que incluyen un
pequeño programa, específicamente un intérprete, que facilita su programación
utilizando un lenguaje muy similar a BASIC.

Los PICAXE son vendidos únicamente por la compañía que los produce.

III. LOGICATOR for PIC Micros

Es un IDE desarrollado por la empresa Revolution Education Ltd., que permite


programar microcontroladores PICAXES y una gama de microcontroladores PIC
estándar. Su costo oscila entre los 15 y los 300 euros, dependiendo de los derechos
de licencia y las funcionalidades.

IV. Flowcode

Este IDE es desarrollado comercialmente por la empresa Matrix Multimedia. Su


costo ronda los 80 dólares. Permite trabajar con una amplia gama de
microcontroladores PIC, y hace uso de diagramas de flujo.

4. Teoría General sobre Microcontroladores3

a. Definición

Un microcontrolador consiste en un circuito integrado o chip que incluye en su


interior las tres unidades funcionales de una computadora: CPU, Memoria y
Unidades de E/S. 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

2
Wikipedia. 2008. PICAXE. Consultado 3 de Junio de 2008. Disponible en http://en.wikipedia.org/wiki/PICAXE
3
Microcontrolador PIC16F84: Desarrollo de Proyectos. 2004. p. 1

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

La invención del microcontrolador ha sido uno de los hechos más notables del siglo
XX. En el mercado existe una gran variedad de microcontroladores, cada uno con
distintas capacidades y posibilidades.

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.

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.

b. Componentes de un microcontrolador4

I. 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. En cuanto a la arquitectura y funcionalidad de los
procesadores actuales, existen tres orientaciones:

4
Sistema de control mediante mensajes SMS y microcontroladores. 2006. p. 7-12.

9
i. CISC

Gran parte de los procesadores utilizados en los microcontroladores están basados


en la filosofía CISC (Computadora de Juego de Instrucciones Complejo). Éstos
disponen de más de 80 instrucciones máquina en su repertorio, algunas de las
cuales son muy sofisticadas y potentes, para lo cual su ejecución requiere de
muchos ciclos.

ii. RISC

Los procesadores RISC (Computadores de Juego de Instrucciones Reducido)


presentan un repertorio de instrucciones máquina muy reducido y las instrucciones
son simples y, generalmente, son ejecutadas en un ciclo. Esta sencillez y rapidez de
las instrucciones permiten optimizar el hardware y el software del procesador.

iii. SISC

En los microcontroladores destinados a aplicaciones muy concretas, el juego de


instrucciones, además de ser reducido, es específico, es decir, las instrucciones se
adaptan a las necesidades de la aplicación. Esta filosofía se ha bautizado con el
nombre de SISC (Computadores de Juego de Instrucciones Específico).

II. Memoria

i. ROM con máscara

Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la


fabricación del chip. Éstos se fabrican en obleas que contienen varias decenas de
chips. Estas obleas se fabrican a partir de procesos fotoquímicos, donde se
impregnan capas de silicio y óxido de silicio, y según convenga, se erosionan al
exponerlos a la luz.

10
ii. OTP

El microcontrolador contiene una memoria no volátil de sólo lectura programable


una sola vez por el usuario, OTP (One Time Programmable). Es el usuario quien
puede escribir el programa en el chip mediante un sencillo grabador controlado por
la computadora. La versión OTP es recomendable cuando es muy corto el ciclo de
diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas.

iii. EPROM

Los microcontroladores que disponen de memoria EPROM (Erasable


Programmable Read Only Memory) pueden borrarse y grabarse muchas veces. La
grabación se realiza, como el caso de los OTP, 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.

iv. EEPROM, E2PROM o E²PROM

Se trata de memorias de sólo lectura, programables y borrables eléctricamente


EEPROM (Electrical Erasable Probrammable Read Only Memory). Tanto la
programación como el borrado, se realizan eléctricamente desde el propio grabador
y bajo el control de una computadora. Es muy cómoda y rápida la operación de
grabado y la de borrado. Los microcontroladores dotados de memoria EEPROM una
vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera
sin ser retirado de dicho circuito. El número de veces que puede grabarse y borrarse
una memoria EEPROM es infinito. Son idóneos para la enseñanza y la ingeniería de
diseño.

11
v. FLASH

Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar.
Funciona como una a ROM y una RAM pero consumen menos y es más pequeña.
A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más
rápida y de mayor densidad que la EEPROM. La alternativa FLASH está
recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de
programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado.

III. Puertas de entrada y salida (E/S) del microcontrolador

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. Según
los controladores de periféricos que posea cada modelo de microcontrolador, las
líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, salida
y control.

IV. 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.
Generalmente, el circuito de reloj está incorporado en el Microcontrolador y sólo se
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la
frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo
junto a elementos pasivos.

12
V. Recursos especiales5

A continuación se muestra una tabla con los principales recursos que incorporan los
microcontroladores:

Tabla 2. Principales recursos que incorporan los microcontroladores


RECURSO UTILIDAD MODO DE IMPLEMENTACIÓN

Temporización: Se carga un registro con el valor


adecuado y a continuación dicho valor se va
Controlan períodos de
incrementando o decrementando al ritmo de los
tiempo
impulsos de reloj o algún múltiplo hasta que se
(temporizadores) y
Temporizador desborde y llegue a cero.
llevan la cuenta de
o Timer. Contador: cuando se desean contar acontecimientos
acontecimientos que
que se materializan por cambios de nivel o flancos en
suceden en el exterior
alguna de las patitas del microcontrolador, el
(contadores).
mencionado registro se va incrementando o
decrementando al ritmo de dichos impulsos.

Se debe diseñar el programa de trabajo que controla


Consiste en un
la tarea de forma que resetee al Perro Guardián de
contador que, cuando
vez en cuando antes de que provoque el reset. Si
Perro guardián llega al máximo,
falla el programa o se bloquea (si cae en bucle
o Watchdog. provoca un reset
infinito), no se refrescará al Perro Guardián y, al
automáticamente en el
completar su temporización, provocará el reset del
sistema.
sistema.

Resetea al Mientras el voltaje de alimentación sea inferior al de


Protección microcontrolador brownout el dispositivo se mantiene a reseteado,
ante fallo de cuando el voltaje de comenzando a funcionar normalmente cuando
alimentación o alimentación (VDD) es sobrepasa dicho valor. Esto es muy útil para evitar
Brownout. inferior o un voltaje datos erróneos por transiciones y ruidos en la línea
mínimo (brownout). de alimentación.

Estado de Estado al cual los Se detiene el reloj principal y se congelan sus


reposo o de requerimientos de circuitos asociados, quedando sumido en un
bajo consumo potencia son mínimos. profundo sueño. Al activarse una interrupción

5
Sistema de control mediante mensajes SMS y microcontroladores. 2006. p. 14-19.

13
(Sleep mode). ocasionada por el acontecimiento esperado, el
microcontrolador se despierta y reanudar su trabajo.

Conversor A/D Provee la capacidad de Disponen de un multiplexor que permite aplicar a la


(Analógico -> procesar señales entrada del conversador A/D diversas señales
Digital). analógicas. analógicas desde las patillas del circuito integrado.

Transforma los datos Los datos digitales obtenidos del procesamiento del
Conversor D/A
digitales a su computador son transformados en su
(Digital ->
correspondiente señal correspondiente señal analógica que saca al exterior
Analógico).
analógica. por una de las patillas del chip.

Amplificador La salida del comparador proporciona un nivel lógico


Operacional que actúa 1 o 0 según una señal sea mayor o menor que la
como comparador entre otra.
Comparador una señal fija de
analógico. referencia y otra
variable que se aplica
por una de las patitas
de la cápsula.

Modulador de Son circuitos que proporcionan en su salida impulsos


anchura de de anchura variable, que se ofrecen al exterior a
impulsos o Proporcionan impulsos través de las patitas del encapsulado.
PWM (Pulse de anchura variable.
Wide
Modulation).

Todos los Por lo general, esta línea se agrupan de ocho en


microcontrolador ocho formando puertos.
Puertas de destinan parte de su Las líneas digitales de los puertos pueden
E/S digitales. patillaje a soportar configurarse como entrada o como salida cargando
líneas de entrada y un 1 o un 0 en el bit correspondiente de un registro
salida digitales. destinado a su configuración.

Dotan al Posibilitan la adaptación con otros elementos bajo


microcontrolador de la otras normas y protocolos.
Puertas de
posibilidad de
comunicación.
comunicarse con otros
dispositivos externos.

14
b. La familia de los PIC6

I. Introducción

Los PIC (Peripheral Interface Controller) son una familia de microcontroladores


fabricados por Microchip cuya arquitectura, capacidades, juego de instrucciones y
especialmente su bajo costo lo hacen muy útil en pequeñas aplicaciones así como
parte de otras aplicaciones de mayor envergadura sustituyendo a gran cantidad de
circuitos lógicos convencionales.

II. La familia PIC

Existen PIC’s de cuatro gamas distintas:

i. Gama enana. PIC12CXXX

Se trata de un grupo de PIC de reciente aparición que ha acaparado la atención del


mercado. Su principal característica es su reducido tamaño, al disponer todos sus
componentes de 8 patitas además de disponer de 6 líneas de E/S. Se alimentan con
un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen
menos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones
puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones,
respectivamente. Algunos modelos incluyen conversores A/D y memoria EEPROM
de datos.

Gráfico 2. Gama Enana PIC12F675

6
Sistema de control mediante mensajes SMS y microcontroladores. 2006. p. 21-24.

15
ii. Gama baja. PIC16C5XX con instrucciones de 12 bits

Con una memoria de programa (ROM o EPROM) de 12 bits y de 512, 1024 o 2048
palabras y una memoria de datos de 8 bits de 25, 72 o 73 bytes. Trabajan hasta 20
MHz y disponen de 12 o 20 líneas de E/S de alta corriente, un temporizador y de 33
instrucciones. Además, como el resto de los PICs disponen de perro guardián,
Autoinicilización (POR o Power on Reset), modo de bajo consumo (SLEEP), reloj
interno mediante cristal o red RC y protección contra lectura del código.

iii. Gama media. PIC16CXXX con instrucciones de 14 bits

Es la gama 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.

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.

Gráfico 3. Gama Media PIC16F8X

16
iv. Gama alta: PIC17CXXX con instrucciones de 16 bits

Estos microcontroladores poseen un verdadero bus de datos y direcciones,


Pudiendo trabajar con memoria externa. El ancho de la memoria de programa es de
16 bits y el número de instrucciones aumenta a 55 o 58 según el modelo.

Quizás la característica más destacable de los componentes de esta gama es su


Arquitectura abierta, que consiste en la posibilidad de ampliación del
Microcontrolador con elementos externos. Para esto, las patitas sacan al exterior las
líneas de los buses de datos, direcciones y control, a las que se conectan memorias
o controladores de periféricos. Esta facultad obliga a estos componentes a tener un
elevado número de patitas comprendido entre 40 y 44. Esta filosofía de construcción
del sistema es la que se empleaba en los microprocesadores y no suele ser una
práctica habitual cuando se emplean microcontroladores.

5. Generalidades sobre el Lenguaje Ensamblador7

a. Definición

Lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir


programas informáticos, y constituye la representación más directa del código
máquina específico para cada arquitectura de computadoras legible por un
programador.

Fue usado ampliamente en el pasado para el desarrollo de software, pero


actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se
requiere la manipulación directa del hardware o se pretende rendimientos inusuales
de los equipos.

7
Wikipedia. 2008. Lenguaje Ensamblador. Consultado 20 de Abril de 2008. Disponible en
http://es.wikipedia.org/wiki/Lenguaje_ensamblador

17
b. Características

Programar en lenguaje ensamblador es difícil de aprender, entender, leer,


escribir, depurar y mantener, por eso surgió la necesidad de los lenguajes
compilados.
A pesar de perder rendimiento en un proceso de compilación, en la
actualidad la mayoría de las computadoras son suficientemente rápidas.
El lenguaje ensamblador no es portable.
Programar en lenguaje ensamblador lleva mucho tiempo.
Los programas hechos en lenguaje ensamblador son generalmente más
rápidos. Al programar cuidadosamente en lenguaje ensamblador se pueden
crear programas de 5 a 10 veces más rápidos que con lenguajes de alto
nivel.
Los programas hechos en lenguaje ensamblador generalmente ocupan
menos espacio. Un buen programa en lenguaje ensamblador puede ocupar
casi la mitad de espacio que su contraparte en lenguaje de alto nivel.
Con el lenguaje ensamblador se pueden crear segmentos de código
imposibles de formar en un lenguaje de alto nivel.

6. Generalidades sobre Compilación8

a. El Proceso de Compilación

La compilación es el proceso de convertir un programa o texto en lenguaje de alto


nivel, a uno de bajo nivel. La compilación se compone de varias etapas o fases que
realizan distintas operaciones lógicas: 9

8
Java a tope: Traductores y compiladores con Lex/Yacc, JFlex/Cup y JavaCC. 2005. p. 2-3
9
Wikipedia. 2008. Proceso de traducción de programas. Consultado 4 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Proceso_de_traducci%C3%B3n_de_programas

18
I. Análisis léxico

El análisis léxico constituye la primera fase; en ella, se lee el programa fuente de


izquierda a derecha y se agrupa en componentes léxicos (tokens), que son
secuencias de caracteres que tienen un significado. Además, todos los espacios en
blanco, líneas en blanco, comentarios y demás información innecesaria se elimina
del programa fuente. También se comprueba que los símbolos del lenguaje
(palabras clave, operadores, etc.) se han escrito correctamente.

II. Análisis sintáctico

En esta fase los caracteres o componentes léxicos se agrupan jerárquicamente en


frases gramaticales que el compilador utiliza para sintetizar la salida. Se comprueba
si lo obtenido de la fase anterior es sintácticamente correcto.

III. Análisis semántico

La fase de análisis semántico revisa el programa fuente para tratar de encontrar


errores semánticos y reúne la información sobre los tipos para la fase posterior de
generación de código. En ella se utiliza la estructura jerárquica determinada por la
fase de análisis sintáctico para identificador los operadores y operandos de
expresiones y proposiciones.

Un componente importante del análisis semántico es la verificación de tipos. Aquí, el


compilador verifica si cada operador tiene operandos permitidos por la
especificación del lenguaje fuente. Por ejemplo, las definiciones de muchos
lenguajes de programación requieren que el compilador indique un error cada vez
que se use un número real como índice de una matriz. Sin embargo, la
especificación del lenguaje puede imponer restricciones a los operandos, por
ejemplo, cuando un operador aritmético binario se aplica a un número entero y a un
número real.

19
IV. Generación de código intermedio

Después de los análisis sintáctico y semántico, algunos compiladores generan una


representación intermedia explícita del programa fuente. Se puede considerar esta
representación intermedia como un programa para una máquina abstracta. Esta
representación intermedia debe tener dos propiedades importantes; debe ser fácil
de producir y fácil de traducir al programa objeto.

V. Optimización de código

La fase de optimización de código consiste en mejorar el código intermedio, de


modo que resulte un código máquina más rápido de ejecutar. Algunas
optimizaciones son triviales. Hay mucha variación en la cantidad de optimización de
código que ejecutan los distintos compiladores. En los que hacen mucha
optimización, llamados "compiladores optimizadores", una parte significativa del
tiempo del compilador se ocupa en esta fase. Sin embargo, hay optimizaciones
sencillas que mejoran sensiblemente el tiempo de ejecución del programa objeto sin
retardar demasiado la compilación.

VI. Fase de síntesis

Consiste en generar el código objeto equivalente al programa fuente. Sólo se


genera código objeto cuando el programa fuente está libre de errores de análisis, lo
cual no quiere decir que el programa se ejecute correctamente, ya que un programa
puede tener errores de concepto o expresiones mal calculadas. Por lo general el
código objeto es código de máquina o código ensamblador. Las posiciones de
memoria se seleccionan para cada una de las variables usadas por el programa.
Después, cada una de las instrucciones intermedias se traduce a una secuencia de
instrucciones de máquina que ejecuta la misma tarea.
El proceso de compilación anteriormente descrito es efectuado por el compilador,
que pertenece a la familia de los traductores.

20
b. Traductor

Un traductor se define como un programa que traduce o convierte desde un texto o


programa escrito en un lenguaje fuente hasta un texto o programa equivalente
escrito en un lenguaje destino produciendo, si cabe, mensajes de error. Los
traductores engloban tanto a los compiladores (en los que el lenguaje destino suele
ser código máquina) como a los intérpretes (en los que el lenguaje destino está
constituido por las acciones atómicas que puede ejecutar el intérprete).

Gráfico 4. Esquema preliminar de un traductor


Programa de entrada Programa de entrada
de lenguaje fuente de lenguaje fuente
TRADUCTORES

Mensajes de Error

Desde los orígenes de la computación, ha existido un abismo entre la forma en que


las personas expresan sus necesidades y la forma en que un ordenador es capaz
de interpretar instrucciones. Los traductores han intentado salvar este abismo para
facilitarles el trabajo a los humanos, dando lugar a los distintos tipos de traductores
mencionados a continuación:

Traductores del idioma.


Intérpretes.
Compiladores.
Preprocesadores.
Intérpretes de comandos.
Ensambladores y macroensambladores.
Conversores fuente-fuente.
Compilador cruzado.

21
I. Intérpretes

Es similar a un compilador, con la diferencia de que su salida es una ejecución. El


programa de entrada se reconoce y ejecuta a la vez. No se produce un resultado
físico (código máquina) sino lógico (una ejecución).

Su principal ventaja es que permiten una fácil depuración. Entre los inconvenientes
podemos citar, en primer lugar, la lentitud de ejecución, ya que al ejecutar a la vez
que se traduce no puede aplicarse un alto grado de optimización; por ejemplo, si el
programa entra en un bucle y la optimización no está muy afinada, las mismas
instrucciones se interpretarán y ejecutarán una y otra vez, enlenteciendo la
ejecución del programa. Otro inconveniente es que durante la ejecución, el
intérprete debe residir en memoria, por lo que consumen más recursos.

Gráfico 5. Esquema de traducción/ejecución de un programa ejecutado

Fuente Pseudoejecutable Ejecución


Motor de
TRADUCTOR
Ejecución

II. Compiladores

Un compilador es un programa que permite traducir el código fuente de un


programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior. Usualmente el
segundo lenguaje es código máquina, pero también puede ser simplemente texto.
De esta manera, un programador puede diseñar un programa en un lenguaje mucho
más cercano a cómo piensa un ser humano, para luego compilarlo a un programa
más manejable por una computadora. 10

10
Wikipedia. 2008. Compilador. Consultado 4 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Compilador

22
7. Proceso de grabación de un microcontrolador

Para grabar o quemar un microcontrolador deben realizarse ciertos pasos, los


cuales se detallan a continuación:

Paso 1: Diseñar el programa.

Conociendo el problema, se analiza y se realiza un diseño de la solución. La


primera idea del programa solución puede representarse por medio de algoritmo,
diagrama de flujo o pseudocódigo.

Paso 2: Codificar el programa.

Consiste en crear el programa, que debe ser un archivo en lenguaje Ensamblador


con extensión .ASM. Para ello se tienen varias opciones, como hacer uso de un
editor de texto y programar directamente en código Ensamblador, o utilizar un IDE
que permita programar en un lenguaje de mayor nivel, por ejemplo BASIC o C.
También existen IDEs que ofrecen la posibilidad de representar el programa por
medio de diagramas. El IDE se encarga posteriormente de compilar el programa o
diagrama creado y generar el archivo .ASM.

Paso 3: Compilar el programa.

Este paso incluye todo el proceso de compilación del archivo .ASM, hasta la
obtención de un archivo .HEX. Para ello, en el proceso se determina si existen
errores de sintaxis en el .ASM creado (esto puede ser obviado si el archivo .ASM ha
sido generado por un programa o en un IDE). En caso de no existir errores, se
procede a la obtención del archivo .HEX por medio de un programa llamado
ensamblador. El archivo .HEX (hexadecimal) constituye un archivo en lenguaje
máquina que es el que será grabado en el microcontrolador. Existen ensambladores
muy populares, siendo el más utilizando el ensamblador MPASM de Microchip.

23
Paso 4: Simular el programa

Esto se realiza para evitar grabar en el microcontrolador un programa que no


produzca el resultado que se pretendía obtener. Hay diferentes formas de realizar
una simulación. Algunos IDEs incluyen un simulador.

Paso 5: Grabar el programa en el microcontrolador

El último paso consiste en grabar el archivo .HEX conteniendo las instrucciones en


lenguaje máquina en el microcontrolador. Para ello, se utiliza un software llamado
programador y un hardware conocido como grabador. El programador permite
definir el microcontrolador a grabar, así como otras variables generales, y envía el
contenido del archivo .HEX a ese microcontrolador. El hardware, que consiste en un
circuito electrónico, es donde se coloca el microcontrolador a programar, y se
conecta al ordenador por medio de un puerto.

El proyecto propuesto seguirá estos lineamientos generales, con las siguientes


especificaciones:

Para el Paso 2, se tendrá una interfaz gráfica que permita representar el programa
que se desee crear en forma de un flujograma. Para el Paso 3, se hará uso del
ensamblador MPASM de Microchip. Para el Paso 4, se utilizará un módulo de
prueba en que, por medio de una representación gráfica del microcontrolador, se
logre determinar el resultado producido por el programa en sus salidas. Para el paso
5, se empleará el programador IC-PROG, en conjunto con un grabador JDM para
las pruebas respectivas.

24
a. Programa Ensamblador

I. Definición

El término ensamblador (del inglés assembler) se refiere a un tipo de programa


informático que se encarga de traducir un fichero fuente escrito en lenguaje
Ensamblador, a un fichero objeto que contiene código máquina, ejecutable
directamente por la máquina para la que se ha generado. El propósito para el que
se crearon este tipo de aplicaciones es el de facilitar la escritura de programas, ya
que escribir directamente en código binario, que es el único código entendible por la
computadora, es en la práctica imposible. La evolución de los lenguajes de
programación a partir del lenguaje ensamblador originó también la evolución de este
11
programa ensamblador hacia lo que se conoce como programa compilador.

II. Ensamblador a utilizar en el Proyecto

El programa ensamblador que se utilizará en el software a desarrollar es el


programa MPASM. MPASM es un ensamblador creado por Microchip cuya función
es la de convertir código Ensamblador (archivo ASM) a código Hexadecimal
(archivo HEX) que contiene el código máquina ejecutable para el dispositivo
designado.

Gráfico 6. Proceso de grabación del ASM en el microcontrolador

MPASM
Assembler Programmer
code.asm MCU
code.hex

11
Wikipedia. 2008. Ensamblador. Consultado 4 de Junio de 2008. Disponible en
http://es.wikipedia.org/wiki/Assembler

25
El MPASM es un archivo ejecutable que no posee interfaz gráfica por sí misma.
Aunque es utilizado en el IDE MPLAB, funciona también de manera independiente,
mediante línea de comandos.

b. Programador

I. Definición

Un programador consiste en un programa que realiza la grabación de un archivo


Hexadecimal (.HEX) en un microcontrolador.

Los términos programador, grabador y quemador son usados indistintamente tanto


para representar este programa, como para representar el hardware o dispositivo
físico que se conecta a la computadora por medio de algún puerto y forma parte del
proceso de grabado.

Para efectos de este trabajo, se conocerá al programa como programador, y al


dispositivo físico como grabador o quemador.

II. Programador a utilizar en el Proyecto

Para el IDE a desarrollar se hará uso de un programador llamado IC-PROG. IC-


PROG es un programador gratuito que funciona bajo entorno Windows y permite la
grabación de una gran diversidad de PICs. No requiere instalación; para su uso,
únicamente se debe descargar el archivo y descomprimirlo en cualquier carpeta,
desde donde se podrá ejecutar el EXE. Posee una interfaz amigable y fácil de
utilizar, y también proporciona la opción de realizar el proceso de grabación
mediante una línea de comandos, sin necesidad de visualizar la interfaz en ningún
momento.

26
B. Hipótesis

No existe hipótesis en la investigación actual, dada la naturaleza exploratoria de la


misma. Su objetivo principal es la obtención de un producto de tecnología concreto,
una IDE para programación de microcontroladores, sobre lo cual no ha habido
ningún estudio o desarrollo dentro de la unidad de análisis seleccionada, la cuál es
la Universidad de Sonsonate.

CAPÍTULO III. JUSTIFICACIÓN Y OBJETIVOS

A. Justificación

La construcción de circuitos electrónicos utilizando microcontroladores es en la


actualidad una práctica muy común, ya que es tanta la versatilidad que presentan
estos dispositivos, que pueden ser utilizados en una amplia gama de situaciones
cotidianas. Los estudiantes de las carreras afines al área de la electrónica se
enfrentan a esta tecnología con tendencia creciente. Con la creación de un software
que reúna todas las herramientas en un entorno integrado, aunado a elementos
gráficos que reemplacen la programación en lenguaje de bajo nivel, se
proporcionará un sistema innovador y amigable que agilizará el proceso de
grabación de microcontroladores y facilitará la labor del usuario.

Los estudiantes de cátedras tales como Sistemas Digitales y Sistemas


Automatizados, que son impartidas en la carrera de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate, podrían
centrar su atención en la creación de aplicaciones propias para microcontroladores
en un nivel práctico, sin tener que detenerse en el estudio del lenguaje Ensamblador
usado para la programación de éstos. Además, apoyaría el aprendizaje del lenguaje
Ensamblador, permitiendo observar la correspondencia del análisis de un problema
con la concretización de ese análisis en un lenguaje de programación.

27
B. Objetivos

1. Objetivo General

1. Crear un entorno de desarrollo integrado (IDE) para la programación de


microcontroladores utilizando MPASM de Microchip e IC-PROG.

2. Objetivos Específicos

1. Determinar las dificultades y necesidades de los usuarios potenciales en


relación con la programación de microcontroladores.
2. Construir el software atendiendo los requerimientos de los usuarios y
haciendo uso de una metodología y tecnologías idóneas para tal fin.
3. Validar el software creado.

C. Alcances y Limitaciones

Los alcances y limitaciones del proyecto son los siguientes:

El sistema se limita a dar soporte al microcontrolador PIC 16F84, que


constituye el microcontrolador más ampliamente utilizado y que proporciona
mayores ventajas, tanto por su facilidad de uso como por su costo. Es,
además, el tipo microcontrolador con el que cuenta la Universidad de
Sonsonate, y el de mayor uso a nivel nacional, especialmente para fines
educativos.
El sistema funciona en el Sistema Operativo Windows.
El entorno de desarrollo integrado hace uso de componentes externos, tales
como MPASM de Microchip e IC-PROG.
El sistema trabaja sobre una arquitectura monousuario.
El sistema hace uso de la maquina virtual de Java v.1.6

28
CAPÍTULO IV. METODOLOGÍA DE LA INVESTIGACIÓN

A. Tipo de Investigación

Se determino que la presente investigación es del tipo Descriptiva Exploratoria.

Se dice que es descriptiva debido a que se utiliza para describir una realidad, y tiene
como objetivo presentar una interpretación correcta de ésta. Es, a la misma vez,
una investigación exploratoria dado que el producto que se pretende obtener no ha
sido creado anteriormente con los parámetros propuestos, y por tanto, aunque se
basa en documentación y software existente, genera un sistema nuevo e innovador,
particularmente para la unidad de análisis en que será aplicado.

De acuerdo al origen de las fuentes es una investigación mixta, ya que se compone


tanto de información obtenida a través de la consulta y análisis de información
contenida en diferentes medios bibliográficos, como de información recopilada en un
estudio de campo a través de encuestas y entrevistas.

Según el uso que se pretende dar al conocimiento obtenido, se puede también


afirmar que constituye una investigación aplicada, dado que se basa en información
y descubrimientos de investigaciones anteriores, con el interés de aplicar este
conocimiento en una situación concreta.12

B. Unidades de Análisis

Partiendo de que se ha definido como unidad de análisis la Universidad de


Sonsonate, se han tomado en cuenta los siguientes sujetos de investigación 13:

12
Grajales G, Tevni. 2000. Tipos de Investigación. Consultado 24 de Abril de 2008. Disponible en
http://tgrajales.net/investipos.pdf
13
Introducción a la Metodología de la Investigación Edición Electrónica. 2006. p. 26

29
Estudiantes: constituyen todos los alumnos de las carreras de Ingeniería en
Sistemas Computaciones e Ingeniería Eléctrica que cursen las materias Sistemas
Digitales, Sistemas Automatizados, u otra en las que se haga uso de
microcontroladores. Serán los principales usuarios del sistema.

Instructores: representan a las personas encargadas de las prácticas de laboratorio


de las materias Sistemas Digitales, Sistemas Automatizados, o similares. Son
quienes deberán orientar a los estudiantes en el uso del IDE.

Catedráticos: se refiere a los profesionales que tengan bajo su cargo las materias
que incluyan en su marco de enseñanza la utilización de microcontroladores.

C. Variables y su Medición

1. Definición de las variables

Tabla 3. Definición de las variables


VARIABLE DEFINICIÓN CONCEPTUAL DEFINICIÓN
OPERACIONAL

Dificultad en la programación de Esta variable se refiere a la Sirve para analizar el grado y


microcontroladores. percepción de los usuarios en las condiciones de los
cuanto a las complicaciones problemas que enfrentan los
que se les presentan en la estudiantes en el proceso de
utilización de los grabación de los
microcontroladores. microcontroladores.

Tecnología a emplearse. Se refiere a los componentes Permite evaluar y elegir los


tecnológicos que servirán para componentes informáticos
crear el entorno de desarrollo que más se adecúan a las
integrado. necesidades del software.

Software creado. Consiste en el Entorno de Sirve para evaluar aspectos


Desarrollo Integrado obtenido del software creado y permite
en el desarrollo del proyecto. definir si cumple con las
expectativas.

30
2. Indicadores y su medición u observación

Tabla 4. Relación entre variables y sus indicadores para la unidad de análisis Estudiantes
UNIDAD DE VARIABLES INDICADORES INSTRUMENTO DE TÉCNICA A
ANÁLISIS MEDICIÓN U APLICAR
OBSERVACIÓN

Estudiantes Dificultad en la - Conocimiento previo sobre - Guía de Entrevista - Entrevista


programación de microcontroladores. - Cuestionario estructurada
microcontroladores - Familiaridad con el lenguaje - Encuesta
Ensamblador

- Grado de dificultad en el
empleo de las herramientas
de grabación de
microcontroladores

- Tiempo de práctica
dedicado al uso de los
microcontroladores

Tecnología a - Lenguaje de programación


emplearse - IDE del lenguaje de
programación

- Sistema Operativo

Software creado - Funcionalidad del IDE - Guía de Entrevista - Entrevista

- Amigabilidad de la interfaz Estructurada

- Grado en que agiliza el


proceso de grabación

Tabla 5. Relación entre variables y sus indicadores para la unidad de análisis Instructores
UNIDAD DE VARIABLES INDICADORES INSTRUMENTO DE TÉCNICA A
ANÁLISIS MEDICIÓN U APLICAR
OBSERVACIÓN

Instructores Software creado - Funcionalidad del IDE - Guía de Entrevista - Entrevista

- Amigabilidad de la interfaz Estructurada

- Grado en que agiliza el


proceso de grabación

31
Tabla 6. Relación entre variables y sus indicadores para la unidad de análisis Catedráticos
UNIDAD DE VARIABLES INDICADORES INSTRUMENTO DE TÉCNICA A
ANÁLISIS MEDICIÓN U APLICAR
OBSERVACIÓN

Catedráticos Software creado - Funcionalidad del IDE - Guía de Entrevista - Entrevista

- Amigabilidad de la interfaz Estructurada

- Grado en que agiliza el


proceso de grabación

a. Instrumentos de Medición

Los instrumentos de medición que se utilizaron fueron la guía de entrevista y el


cuestionario. Se efectuaron entrevistas con esta guía a los estudiantes, instructores
y catedráticos de la Universidad de Sonsonate, que se relacionan con las materias
en cuyo contenido se incluye el tema de los microcontroladores. El cuestionario fue
desarrollado para los estudiantes con el fin de obtener un panorama general de sus
conocimientos sobre estos dispositivos en estudio y las dificultades para
implementarlos en circuitos electrónicos.

b. Técnicas y procedimientos para la recopilación de información

Para el desarrollo de esta investigación se hizo uso de diferentes técnicas de


recopilación de información: la documental, la entrevista estructurada y la encuesta.

La técnica documental sirvió para obtener información que permitió dar un uso
correcto y optimizado de la tecnología existente en el proceso de creación del
software. Para ello, se llevó a cabo una revisión bibliográfica extensa en diversos
medios, tanto en internet como en documentos bibliográficos.

Se hizo uso además de la entrevista estructurada, la que se aplicó a los catedráticos


e instructores de las diversas materias, con el fin de obtener información sobre
necesidades y problemas encontrados para la enseñanza y uso de los
microcontroladores. De igual forma, se efectuaron entrevistas a expertos en las

32
áreas de informática y de electrónica, para aspectos puntuales sobre los cuáles
existieron dudas o dificultades.

Asimismo, se formuló y aplicó la técnica de encuestas a los estudiantes de


Ingeniería en Sistemas Computacionales e Ingeniería Eléctrica, que permitió
obtener datos sobre los conocimientos referentes a microcontroladores y los
problemas generales con los que se enfrentan en la práctica con estos dispositivos,
durante el desarrollo de las materias respectivas.

D. Análisis e Interpretación de los Resultados

Siendo la población a estudiar de tamaño reducido, limitado a los estudiantes de la


Universidad de Sonsonate que han cursado materias en cuyo contenido se incluya
la temática de los microcontroladores, no fue necesario realizar ningún tipo de
muestreo para efectuar las encuestas. El análisis de los resultados obtenidos fue
procesado mediante el programa estadístico SPSS.

1. Recopilación de Información

a. Encuesta
Se realizó una encuesta a los estudiantes de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate con el fin de
conocer las dificultades con que se enfrentaron en el curso de materias tales como
Sistemas Digitales, Sistemas Automatizados u otras relacionadas con los
microcontroladores (ver Anexo 2).

b. Guía de entrevista realizada a los instructores de las materias relacionadas con


microcontroladores.
Con el fin de conocer las dificultades para enseñar la implementación de
microcontroladores en circuitos electrónicos en materias como Sistemas Digitales y
Sistemas Automatizados.

33
2. Interpretación de Resultados

Encuesta realizada.

A continuación se presentan los resultados obtenidos de la encuesta realizada a los


estudiantes de las carreras de Ingeniería en Sistemas Computacionales e Ingeniería
Eléctrica, que tuvieron la oportunidad de realizar prácticas con microcontroladores
en el de Laboratorio de Electrónica de la Universidad de Sonsonate (Ver Anexo 2).

Pregunta No. 1
¿En qué materia(s) estudió y/o utilizó microcontroladores?

Los resultados obtenidos de las encuestas reflejan que un 50% de los estudiantes
utilizaron microcontroladores en las prácticas de la materia Electrónica y el restante
en las demás materias como se muestra en el gráfico.

Pregunta No. 2
¿Con qué frecuencia practicó con microcontroladores, en los laboratorios de las
respectivas materias?

34
Los resultados obtenidos de las encuestas muestran que un 56% de los estudiantes
se integraron pocas veces en las prácticas de microcontroladores.

Pregunta No. 3
¿En qué grado se le dificulta el manejo de los microcontroladores?

Los Resultados de las encuestas reflejan que un 67% de los encuestados considera
que existe una dificultad de nivel medio, en el manejo y uso de microcontroladores.

Pregunta No. 4
Numere del 1 al 4 las partes del proceso de grabación del microcontrolador que se
le dificultan más, siendo 1 el más difícil y 4 el menos difícil:

35
Según la recopilación de encuestas el 40% de los estudiantes consideran que el
aprendizaje del Lenguaje Ensamblador, es lo más dificultoso del análisis e
implementación de microcontroladores.

Pregunta No. 5
¿Cómo considera la programación en Lenguaje Ensamblador?

El análisis de recopilación de datos refleja que un 55% de los estudiantes


consideran difícil la programación en Lenguaje Ensamblador.

Pregunta No. 6
¿Qué opción de las siguientes considera más necesario para facilitar las prácticas
con microcontroladores?:

36
Los resultados de las encuestas reflejan que un 78% de los estudiantes consideran
que es necesario más tiempo para las prácticas de implementación de
microcontroladores.

Pregunta No.7
¿Considera el conocimiento y uso de microcontroladores como algo importante para
su carrera?

El 100% de los estudiantes encuestados opinan que es importante para su carrera


el aprendizaje e implementación de microcontroladores.

Pregunta No. 8
¿Opina que sería útil una herramienta que integrara todo el proceso de grabación
del microcontrolador, desde su programación hasta su quemado?

37
El análisis de recopilación de datos refleja que el 100% de los estudiantes opinan
que un software integrado sería muy útil para el desarrollo con microcontroladores.

Pregunta No. 9
¿Qué tanto mayor valor considera que le agregaría si esa herramienta tuviera una
interfaz que proporcionara herramientas gráficas que evitaran tener que programar
en ensamblador?

La recopilación de datos refleja que un 89% de los estudiantes encuestados opinan


que tendría mucha importancia integrar un método de programación por medio de
gráficos, sin necesidad de aprender a programar en Lenguaje Ensamblador.

De los datos obtenidos se pudo visualizar que los estudiantes de Ingeniería


Eléctrica e Ingeniería en Sistemas de la Universidad de Sonsonate tienen
problemas para la implementación de los microcontroladores debido a dificultosa
programación en código Ensamblador que acapara tiempo para su aprendizaje y
38
desarrollo en códigos para cada programa, por lo que los estudiantes apoyan la
creación de una herramienta que permita la generación del código ensamblador y la
idea de aplicar herramientas graficas y uso de diagramas lógicos, ya que tienen
conocimientos previos de lógica en distintas materias cursadas anteriormente;
también apoyan la idea de crear una herramienta que integre cada uno de los
programas necesarios para la grabación de microcontroladores.

E. Plan de Proyecto

Tabla 7. Cronograma de actividades


DURACIÓN ACTIVIDAD
Nº ACTIVIDAD DESDE HASTA
EN DÍAS PREDECESORA
1 Desarrollo de Anteproyecto 12/02/08 16/06/08 125
2 Planificación del Sistema 17/06/08 08/07/08 22 1
3 Análisis del Sistema 09/07/08 03/08/08 26 2
4 Diseño del Sistema 04/08/08 03/11/08 92 3
5 Construcción del Sistema 04/11/08 30/03/09 146 4
6 Implantación del Sistema 31/03/09 08/04/09 8 5
Evaluación de funcionamiento del
7 09/04/09 24/04/09 15 6
Sistema
8 Defensa del trabajo de graduación 25/04/09 25/05/09 30 7

Gráfico 7. Diagrama de Gantt

F. Plan de Utilización de los Resultados

El sistema resultante del proceso de desarrollo será confrontado en primera


instancia en la defensa del trabajo de graduación con el jurado calificador.
Posteriormente a su aprobación, se hará entrega de copias del trabajo a las
autoridades respectivas, y por último se efectuará una publicación del software
desarrollado en la página web de la Universidad de Sonsonate.

39
CAPÍTULO V. PROPUESTA TÉCNICA

A. Modelado del negocio

1. Generalidades de la empresa

La Universidad de Sonsonate es una institución de educación superior, fundada a


través del esfuerzo de un selecto grupo de profesionales visionarios y
emprendedores sonsonatecos, logrando autorizar su funcionamiento desde el 8 de
enero de 1982 y empezando sus actividades académicas el 7 de marzo del mismo año.

La Universidad está conformada por las facultades de Ingeniería y Ciencias


Naturales, la facultad de Economía y Ciencias Sociales y la facultad de Ciencias
Jurídicas, impartiendo una variedad de carreras acordes a las necesidades de la
población y a la sociedad cambiante de hoy en día.

2. Diagrama de subsistemas de la empresa

Área Administrativa Área Académica

La Universidad está dividida en dos grandes áreas: el Área Administrativa y el Área


Académica, el sistema estará apoyando el Área Académica, que se encarga de
velar por la enseñanza a los estudiantes, mientras que el Área Administrativa se
encarga de todos los tramites, necesarios para el funcionamiento de la Universidad.

B. Requisitos

1. Oportunidad del negocio

Con la creación de un software que reúna todas las herramientas en un entorno


integrado, aunado a elementos gráficos que reemplacen la programación en

40
lenguaje Ensamblador, se proporcionará un sistema innovador y amigable que
agilizará el proceso de grabación de microcontroladores y facilitará la labor del
usuario. Esto ayudará en gran medida y estimulará a que el estudiante piense de
una forma lógica los problemas propuestos para ser integrados en los
microcontroladores. Tomando en cuenta que en la actualidad la forma de desarrollar
los proyectos con microcontroladores, es bastante tediosa por el hecho de utilizar el
lenguaje Ensamblador para programar, el sistema propuesto será una herramienta
muy preciada porque ésta facilitará el modo en que se programan los
microcontroladores.

2. Definición del problema

La Universidad de Sonsonate, siendo una institución de educación superior, ha


incluido en su laboratorio microcontroladores para la experimentación de circuitos
electrónicos, los cuales son diseñados por los estudiantes y, con ayuda de
instructores de cada una de las materias, son implantados en circuitos construidos
en las horas asignadas para esta actividad; sin embargo, el tiempo con el cual se
cuenta para este tipo de práctica es muy limitado, ya que la programación de estos
dispositivos es muy compleja y trabajosa, sin tomar en cuenta el tiempo que tiene
que emplearse para explicar el lenguaje de programación necesario para programar
estos dispositivos. Por esto, los instructores muchas veces se abstienen de enseñar
y experimentar con los microcontroladores, enfocándose así en otros temas que
consideran más importantes y privando a los estudiantes la oportunidad de obtener
nuevos conocimientos.

3. Requerimientos funcionales

a. Identificación de los actores

El sistema a desarrollar será utilizado por diferentes actores, los cuales se


especifican a continuación:

41
Usuario: representa tanto a los estudiantes de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate
como a cualquier persona que hará uso del sistema.

Microcontrolador-JDM: este actor representa a dos dispositivos uno el


microcontrolador que será manipulado y recibirá las instrucciones del
programa que el usuario cree y el otro el dispositivo físico en el cual se
conecta el microcontrolador, se especifican como un solo actor debido a que
se utilizaran juntos siempre.

MPASM: este actor representa el sistema ejecutor externo que se utilizará en


el proceso de grabación, para convertir un archivo .ASM a un archivo .HEX.

IC-PROG: este actor representa el sistema ejecutor externo que se utilizará


para grabar el archivo .HEX en el dispositivo electrónico denominado
microcontrolador.

b. Identificación de escenarios

Ingresar al IDE: Consiste en el arranque y carga del sistema.

Cargar proyecto: En este escenario el usuario elige si crear un nuevo


flujograma o modificar uno ya existente.

Dibujar flujograma: Este escenario consiste en la representación de la


solución a un problema determinado en un flujograma o diagrama de flujo.

Simular flujograma: El usuario podrá efectuar una prueba de la funcionalidad


de su flujograma, simulándolo y visualizando el comportamiento del
microcontrolador.

42
Convertir flujograma en código Ensamblador: Este escenario permite obtener
las instrucciones del programa en Lenguaje Ensamblador, para su estudio o
como paso previo a la grabación del microcontrolador.

Grabar microcontrolador: Este escenario finaliza el proceso de grabación del


microcontrolador, quemando las instrucciones del programa, previamente
convertidas a código Hexadecimal, en el microcontrolador.

c. Definición de los casos de uso

I. Modelo de casos de uso

Ingresar al IDE
<<
ex
ten
<<
ex
<<

d>
<<

ten
ex

>
e

ten
xte

d>

Dibujar flujograma
>
nd

d>
>>

>

<<include>>

d or
cia
i ni
Simular flujograma
dor
inicia

inicia <<include>>
dor

Usuario i ni
cia
do Convertir flujograma a
r
código Ensamblador

<<include>> MPASM
>
>

d>
d>

>
ten
ten

d>

Grabar
ex
ex

ten

microcontrolador
>
<<
<<

d>
ex

ten
<<

ex
<<

IC-PROG
Cargar proyecto

Microcontrolador-JDM

43
II. Diagrama de estados

Caso de Uso: Ingresar al IDE

Ingresar al IDE

Error por falta


Notificar error y cerrar de recursos Cargar pantalla de
IDE bienvenida

Terminar IDE cargado


proceso

Caso de Uso: Cargar proyecto

Modificar
Mostrar proyectos proyecto
Solicitar acción
almacenados

Seleccionar Nuevo
proyecto flujograma

Solicitar nombre y
Cargar proyecto en el
ubicación de
IDE almacenamiento
Nombre y
ubicación
especificados
Cargar área de
trabajo de proyecto

44
Caso de Uso: Dibujar flujograma

Retornar a
pantalla de Ofrecer herramientas
edición de diseño de
flujograma

Seleccionar
figura

Agregar figura

Flujograma
diseñado
Error en
diagramación
Notificar error en
Validar diagramación
diagramación

Flujograma
validado

Guardar flujograma

Flujograma
almacenado

Caso de Uso: Simular flujograma

Comprobar lógica del Error lógico


Notificar error lógico
diagrama

Diagrama
correcto

Reconocer las
variables
Terminar
proceso
Variables
reconocidas

Ejecutar flujograma

Flujogram
a recorrido

Obtener salida

Llamar figura
Modificar de simulación
valores de
Establecer
entrada Mostrar figura de
parámetros de
simulación
simulación

Resultado de
Ingresar parámetros simulación

45
Caso de Uso: Convertir flujograma en código Ensamblador

Solicitar compilación
Error de
compilación
Compilar

Notificar de error en Mostrar código


el flujograma Ensamblador

Solicitar
guardar el
resultado
Terminar
proceso Almacenar archivo
.ASM

Archivo .ASM
almacenado

Caso de Uso: Grabar microcontrolador

Archivo .ASM
no existe Notificar de error de
Solicitar archivo .ASM
grabación

Seleccionar
archivo .ASM

Convertir a Terminar
Hexadecimal proceso

Archivo .HEX
creado
Grabador no
Notificar de error de conectado Verificar enlace con
grabación grabador

Grabador
conectado

Grabar instrucciones
Terminar en microcontrolador
proceso

Microcontrolador
grabado

46
III. Descripción de los casos de uso

Caso de Uso: Ingresar al IDE

Caso de uso Ingresar al IDE


Actores Estudiante
Tipo Extensión
Propósito Proporcionar las condiciones necesarias
para la carga del IDE.
Resumen Este caso de uso otorga el ingreso al IDE y
muestra la interfaz principal
Precondiciones El software debe haber sido instalado en el
equipo en que se desea utilizar.
Flujo principal 1. El usuario ejecuta la aplicación e
ingresa al IDE.
2. El usuario visualiza la pantalla de
bienvenida.
Subflujos S1:
1. En el paso 2, la carga del IDE
podría verse interrumpida por falta
de recursos de la computadora.

Caso de Uso: Cargar Proyecto

Caso de uso Cargar Proyecto


Actores Estudiante
Tipo Extensión
Propósito Realizar la carga de proyectos
almacenados y del entorno de trabajo.
Resumen Este caso de uso permite crear un nuevo
proyecto o modificar uno existente, y
prepara el área de trabajo.
Precondiciones

47
Flujo principal 1. El usuario selecciona crear un
nuevo proyecto.
2. El usuario especifica el nombre del
proyecto y la ubicación de
almacenamiento.
3. Se realiza la carga del área de
trabajo.
Subflujos S1:
1. En el paso 1, el usuario podría
elegir modificar un proyecto ya
existente, para lo cual se abre un
cuadro de diálogo con los proyectos
almacenados.
2. El usuario selecciona el proyecto
que desee modificar, y éste se
carga en el área de trabajo.

Caso de Uso: Dibujar flujograma

Caso de uso Dibujar flujograma


Actores Estudiante
Tipo Básico
Propósito Realizar el diseño del programa que se
desea grabar en el microcontrolador, en
forma de un diagrama de flujo.
Resumen Este caso de uso permite crear un
flujograma, validarlo y almacenarlo.
Precondiciones
Flujo principal 1. El usuario utiliza las herramientas
proporcionadas por el IDE para
dibujar el flujograma.
2. El IDE valida el correcto
posicionamiento de las figuras y la
coherencia en las relaciones entre

48
ellas.
3. El usuario elige almacenar el
flujograma.
Subflujos S1:
1. En el paso 2, podría ocurrir un error
de diseño en el flujograma, que
sería notificado al usuario.

Caso de Uso: Simular flujograma

Caso de uso Simular flujograma


Actores Estudiante
Tipo Básico
Propósito Verificar el funcionamiento del flujograma
diseñado y comprobar que produce los
resultados deseados.
Resumen En este caso de uso se hace una validación
completa del flujograma y se muestra la
salida que produciría en el microcontrolador
la grabación del programa.
Precondiciones El flujograma debe estar correctamente
creado y terminado.
Flujo principal 1. El IDE comprueba que el flujograma
esté cerrado y correctamente
diseñado.
2. El IDE captura las variables
establecidas en el diseño del
flujograma.
3. El flujograma es ejecutado.
4. El IDE obtiene la salida de la
ejecución del flujograma.
5. El IDE genera la figura de
simulación, usando la salida
obtenida.

49
Subflujos S1:
1. En el paso 1, podría ocurrir que al
validar el flujograma se encuentre
un error en la lógica del diseño, lo
cual se notificaría al usuario.
S2:
1. En el paso 5, al dibujarse la figura
de simulación, se pueden
establecer parámetros para
observar el comportamiento de la
salida en diferentes entornos.

Caso de Uso: Convertir flujograma en código Ensamblador

Caso de uso Convertir flujograma en código


Ensamblador
Actores Estudiante
Tipo Básico
Propósito Generar el código ensamblador a partir del
diagrama de flujo.
Resumen Este caso de uso utiliza el flujograma
diseñado para obtener y almacenar el
código en Lenguaje Ensamblador.
Precondiciones El flujograma debe estar correctamente
creado y terminado, y debe haber sido
comprobado mediante simulación.
Flujo principal 1. El usuario solicita la compilación del
flujograma.
2. El IDE genera y muestra el código
Ensamblador generado.
3. El IDE almacena el código como un
archivo .ASM.
Subflujos S1:
1. En el paso 1, podría ocurrir un error

50
en la compilación debido al diseño
del flujograma, el cual deberá ser
notificado al usuario.

Caso de Uso: Grabar microcontrolador

Caso de uso Grabar microcontrolador


Actores Estudiante
Tipo Básico
Propósito Grabar el programa en el microcontrolador.
Resumen En este caso de uso se culmina el proceso
de grabación del microcontrolador,
tomando el archivo .ASM generado en el
caso de uso anterior y convirtiéndolo a
hexadecimal para ser grabado en el
dispositivo.
Precondiciones El archivo .ASM debe estar correctamente
creado.
Flujo principal 1. El usuario especifica el archivo
.ASM a usar para la grabación.
2. El IDE toma el archivo .ASM para
convertirlo a hexadecimal o .HEX.
3. El IDE corrobora que el dispositivo
físico o grabador esté
correctamente conectado al
ordenador.
4. El IDE envía la información a ser
grabada en el microcontrolador.

Subflujos S1:
1. En el paso 3, podría ocurrir que el
grabador no esté conectado a la
computadora, y el proceso sería
interrumpido.

51
S2:
1. En el paso 1 podría ocurrir que no
existiera el archivo .ASM, y el
proceso de grabación sería
interrumpido.

4. Beneficios del cliente

Los estudiantes de cátedras tales como Sistemas Digitales y Sistemas


Automatizados, que son impartidas en la carrera de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate, podrán
centrar su atención en la creación de aplicaciones propias para microcontroladores
en un nivel práctico, sin tener que detenerse en el estudio del lenguaje Ensamblador
utilizado para la programación de éstos, ya que el aprendizaje de este lenguaje
requiere de tiempo y dedicación para poder dominarlo a un nivel aceptable.

El sistema también integra todos los procesos necesarios para grabar un


microcontrolador, iniciando desde el diseño y construcción del código en Lenguaje
Ensamblador, continuando con la prueba y validación del código creado, y
concluyendo con la grabación de las instrucciones que se han de implementar
directamente en el microcontrolador. Todo esto contribuye a que el proceso de
grabado de microcontroladores, se realice en menos tiempo haciendo uso
únicamente de una herramienta para su desarrollo.

Un punto a resaltar es que los beneficios de esta herramienta no se limitan


únicamente a los estudiantes de la Universidad de Sonsonate; el software
desarrollado puede ser utilizado por los catedráticos, instructores y estudiantes de
otras universidades del país, dado que será puesto a disposición de descargarlo en
la página Web de la Universidad de Sonsonate para el aprovechamiento de todos
aquellos que hagan uso de los microcontroladores y sus diversas aplicaciones.

52
5. Requerimientos no funcionales

Entre los requerimientos no funcionales que presenta el sistema se tienen:

El sistema está disponible solo para plataformas Windows.

El sistema únicamente cuenta con soporte para la programación de PIC’s


16F84.

El sistema únicamente cuenta con soporte para la utilización del grabador


JDM.

Para el proceso de compilado del archivo .asm a .hex, se utiliza el


componente externo MPASM de Microchip.

Para el proceso de grabación del microcontrolador si utiliza el componente


externo IC-PROG.

53
a. Matriz de Componentes

Recursos de Hardware
Recursos de software Recursos de Personas
y Redes
Recursos de Producto de
Actividades
Datos Información
Equipo Medio Programa Procedimiento Especialistas Usuarios

Computadoras Teclado y Interfaz del Diseño de Operario Usuario Diagramación o


Personales Mouse sistema diagramas de flujo Privado definición de
Entrada
código a
procesar
Computador Módulo del Compilación de Operario Archivos Compilación de
Computador local procesamiento código fuente .HEX y :ASM, código
Procesamiento personal del sistema Flujograma

Monitor, Diagramas de Interfaz del Correcto Usuario Archivo :HEX Diagramas de


impresores, flujo, código sistema funcionamiento del privado flujo, código
grabador Ensamblador código o diagrama objeto,
Salida
y ficheros o creado microcontrolador
programa
objeto
Dispositivos de Diskette, Archivos
almacenamiento Memoria .HEX y :ASM,
Almacenamiento USB, CD, Flujograma
DVD, Discos
Duros
Computador Diagramas Sistema Usuario Privado Informe de
personal de flujo, Sucesos
Control
código
ensamblador

54
b. Requerimientos de Hardware y Software

I. Requerimientos de Hardware

Para el desarrollo:

Se debe contar con un equipo de las siguientes características como mínimo:

- Procesador: Pentium IV 3.2Ghz.


- Memoria: 512 MB (mínimo).
- Almacenamiento: Disco Duro de 120Gb
- Otros: Dispositivo grabador de microcontroladores JDM

Para el Usuario Final:

Es necesario un equipo que cumpla con las siguientes características como mínimo:

Procesador: Pentium 1.0 Ghz en adelante


Memoria: 256 MB
Disco Duro: 20 GB
Otros: Dispositivo grabador de microcontroladores JDM

II. Requerimientos de Software

El software necesario para el desarrollo y utilización del sistema debe cumplir las
siguientes características:

Para el desarrollo:

- Sistema operativo Windows XP


- Kit de Desarrollo de Java

55
- Netbeans 6.1
- Compilador de archivos asm MPASM
- Grabador de microcontroladores IC-PROG

Para una Terminal de usuario final:

- Sistema Operativo Windows XP.


- Máquina virtual de Java v 1.6.x.

c. Requerimientos de Entrada

Tecnología

La tecnología de entrada necesaria para la definición y desarrollo de proyectos en el


sistema es la siguiente:

- Teclado
- Mouse

Documentos

Los documentos de entrada que podrían proporcionar información para el sistema


son los siguientes:

- Diagrama de flujo del proyecto


- Algoritmo del proyecto

56
d. Requerimientos de Salida

Tecnología

La tecnología de salida necesaria del sistema es la siguiente:

- Pantalla o monitor
- Impresores
- Dispositivo de grabado de microcontroladores (JDM)

Documentos

Los documentos de salida son representación de la información ingresada al


sistema para el desarrollo del proyecto, dentro de lo cual podría ser:

- Diagrama de flujo del proyecto


- Código ensamblador del proyecto

f. Requerimientos de Almacenamiento

La tecnología de almacenamiento del sistema consistirá en los archivos que se


guardarán en la carpeta del proyecto. Estos archivos incluyen el proyecto como tal,
el diagrama de flujo, el archivo en Lenguaje Ensamblador o .ASM y el archivo
hexadecimal o .HEX.

57
C. Análisis

1. Análisis de casos de uso

a. Identificación de clases entidad, interfaz y control

Caso de Uso: Ingresar al IDE

ENTIDAD INTERFAZ CONTROL

clsCargarIDE
I. Principal del IDE

Caso de Uso: Cargar Proyecto

ENTIDAD INTERFAZ CONTROL

Ficha Proyecto clsCargarProyecto


I. Principal del IDE

clsGuardar
I. Área de Trabajo

Caso de Uso: Dibujar flujograma

ENTIDAD INTERFAZ CONTROL

Ficha Flujograma I. Área de Trabajo clsFiguras

58
clsValidarFlujograma

clsGuardar

Caso de Uso: Simular flujograma

ENTIDAD INTERFAZ CONTROL

I. Área de Trabajo clsSimular

clsValidarFlujograma
I. Simulación

clsEjecutarFlujograma

Caso de Uso: Convertir flujograma en código Ensamblador

ENTIDAD INTERFAZ CONTROL

Ficha ASM I. Área de Trabajo clsConvertir

clsConvertirASM

59
Caso de Uso: Grabar microcontrolador

ENTIDAD INTERFAZ CONTROL

I. Área de Trabajo
Ficha HEX clsGrabar

I. Puerto Serie

b. Diagrama de clases

Caso de Uso: Ingresar al IDE

I. Principal del IDE clsCargarIDE

Usuario

Caso de Uso: Cargar Proyecto

clsGuardar Ficha Proyecto

I. Principal del IDE clsCargarProyecto

Usuario

I. Área de Trabajo

60
Caso de Uso: Dibujar flujograma

clsGuardar Ficha Flujograma

I. Área de Trabajo clsFiguras

Usuario

clsValidarFlujograma

Caso de Uso: Simular flujograma

I. Simulación
clsEjecutar

I. Área de Trabajo clsSimular

Usuario

clsValidarFlujograma

61
Caso de Uso: Convertir flujograma en código Ensamblador

I. Área de Trabajo clsConvertir

Usuario

clsConvertirASM Ficha ASM

Caso de Uso: Grabar microcontrolador

Ficha HEX
I. Puerto Serie
Microcontrolador-JDM IC-PROG

I. Área de Trabajo clsGrabar

Estudiante MPASM

Ficha ASM

62
c. Diagrama de colaboración

Caso de Uso: Ingresar al IDE

1. Ingresar al IDE
1 2
2. Gestionar operación
3, 4 3. Cargar y mostrar Interfaz del IDE
I. Principal del IDE clsCargarIDE 4. Notificar error por falta de recursos y cerrar IDE

Usuario

Caso de Uso: Cargar Proyecto

7
8 1. Crear un nuevo proyecto
2. Gestionar operación elegida
clsGuardar Ficha Proyecto 3. Mostrar cuadro de diálogo
4. Solicitar nombre de archivo y ubicación de
9 almacenamiento
6
5. Especificar nombre y ubicación
6. Enviar parámetros para archivo a almacenar
7. Almacenar archivo
1,5,11,14 2,12,15
8. Archivo almacenado correctamente
3,4,13 9. Notificar almacenamiento
I. Principal del IDE clsCargarProyecto 10. Abrir área de trabajo
11. Seleccionar abrir proyecto existente
Usuario 12. Gestionar operación
10,
13. Mostrar proyectos existentes
16
14. Seleccionar proyecto
15. Gestionar selección
16. Cargar proyecto seleccionado en área de trabajo

I. Área de Trabajo

Caso de Uso: Dibujar flujograma

clsGuardar Ficha Flujograma

7
1. Arrastrar figuras al área de trabajo
2. Gestionar operación
3. Dibujar figura en área de trabajo
1,6 2 4. Validar coherencia de las relaciones entre figuras
3 5. Validación correcta
I. Área de Trabajo clsFiguras 6. Seleccionar guardar flujograma
7. Gestionar operación
Usuario 5 4 8. Guardar flujograma

clsValidarFlujograma

63
Caso de Uso: Simular flujograma
8,11

I. Simulación
clsEjecutar
1. Elegir opción de simulación de flujograma
7, 2. Gestionar operación
10 3. Comprobar lógica del diagrama
4. Lógica correcta
5. Reconocer las variables
1 2,5 6. Variables procesadas
7. Correr el flujograma
6
8. Mostrar figura de simulación
I. Área de Trabajo clsSimular 9. Notificar de lógica incorrecta
10. Agregar valores en las entradas
Usuario 4, 11. Obtener nueva figura de simulación
9 3

clsValidarFlujograma

Caso de Uso: Convertir flujograma en código Ensamblador

1,6 2
3,9 1. Elegir opción de compilación de flujograma
I. Área de Trabajo clsConvertir 2. Gestionar operación
3. Obtener información para compilación
Usuario 4, 4. Iniciar compilación
5
7 5. Mostrar código Ensamblador
6. Solicitar guardar archivo ASM
7. Gestionar operación
8 8. Almacenar código Ensamblador
9. Notificar error en el flujograma

clsConvertirASM Ficha ASM

Caso de Uso: Grabar microcontrolador

12
14 14 13
Ficha HEX
I. Puerto Serie 1. Elegir opción grabar microcontrolador
Microcontrolador-JDM IC-PROG 2. Gestionar operación
7 6 3. Buscar archivo .ASM
10, 11 4. Devolver .ASM
9
16 5. Enviar parámetros de conversión
6. Grabar .HEX
7. Devolver información
8. Conversión exitosa
1 2 5
9. Verificar enlace con grabador
15,17,18 8 10. Grabador conectado
I. Área de Trabajo clsGrabar 11. Enviar parámetros de grabación
12. Buscar Archivo .HEX
Estudiante MPASM 13. Devolver Archivo .HEX
4 3 14. Grabar instrucciones en microcontrolador
15. Notificar grabación exitosa
16. Grabador no conectado
17. Notificar y terminar proceso
18. Archivo .ASM no existe. Notificar y terminar proceso

Ficha ASM

64
d. Flujo de eventos

Caso de Uso: Ingresar al IDE


El usuario solicita ingresar al IDE (1), se gestiona la operación solicitada (2), el
gestor carga y muestra la interfaz principal del IDE (3), de lo contrario emite un error
por falta de recursos y cierra el IDE (4).

Caso de Uso: Cargar Proyecto


El usuario solicita crear un nuevo proyecto (1), se gestiona la operación elegida (2),
el gestor muestra el cuadro de dialogo en la interfaz del IDE (3), se solicita el
nombre y al ubicación de almacenamiento del archivo (4), el usuario escribe el
nombre y elige la ubicación de almacenamiento (5), se envían los parámetros
almacenamiento del archivo (6), el gestor de almacenamiento guarda el archivo (7),
el gestor de almacenamiento envía un mensaje al gestor de carga (8), el gestor de
carga envía un mensaje de almacenamiento satisfactorio a la interfaz del IDE (9),
desplegar área de trabajo (10), de lo contrario el usuario solicita abrir un proyecto
existente (11), se gestiona la operación solicitada (12), el gestor de carga muestra
un cuadro de dialogo para con los proyectos existentes (13), el usuario selecciona el
proyecto existente (14), se gestiona la selección del proyecto (15), y el gestor de
carga despliega el área de trabajo y con carga el proyecto seleccionado (16).

Caso de Uso: Dibujar flujograma


El usuario arrastra figuras y las posiciona ordenadamente sobre el área de trabajo
(1), se gestiona la operación (2), el gestor dibuja la figura seleccionada en el área de
trabajo (3), el gestor de validación comprueba la coherencia de las relaciones entre
las figuras (4), el gestor de validación aprueba la relación entre las figuras (5), luego
el usuario selecciona guardar el flujograma (6), se gestiona la operación de guardar
(7), el gestor de almacenamiento guarda la en la ficha flujograma (8).

65
Caso de Uso: Simular flujograma
El usuario solicita la simulación del flujograma (1), se gestiona la operación (2), el
gestor de validación comprueba la lógica del diagrama (3), el gestor de validación
aprueba la lógica del diagrama (4), el gestor de simulación reconoce las variables
(5), el gestor de simulación envía las variables procesadas (6), el gestor de
ejecución corre el flujograma (7), el gestor de ejecución despliega las figura de
simulación (8), de lo contrario el gestor emite lógica incorrecta (9), de lo contrario
puede solicitar agregar valores en las entradas de simulación (10), y se obtiene una
nueva figura de simulación (11).

Caso de Uso: Convertir flujograma en código Ensamblador


El usuario solicita compilar el flujograma o sea convertirlo a código ensamblador (1),
se gestiona la operación (2), y el gestor de conversión obtiene la información para la
compilación (3), el gestor de compilación inicia la conversión de código del diagrama
(4), y se muestra el código ASM (5), el usuario solicita guardar el archivo (6), se
gestiona la operación (7), el gestor de compilación almacena el código en
ensamblador (8), de lo contrario el gestor de conversión notifica error en el
flujograma (9)

Caso de Uso: Grabar microcontrolador


El usuario solicita grabar el código en el microcontrolador (1), se gestiona la
operación (2), el gestor de grabación busca el archivo .ASM (3), encuentra el
archivo ASM (4), y envía los parámetros de conversión .ASM a .HEX (5), se guarda
el archivo .HEX en el directorio origen (6), se devuelve información del archivo (7),
se envían parámetros (8), se verifica el enlace con el grabador JDM (9), se aprueba
la conexión (10), el gestor envía los parámetros de grabación (11), se busca el
archivo .HEX (12), se devuelve al archivo .HEX (13), se graban las instrucciones en
el microcontrolador (14), y se notifica la grabación exitosa (15), de lo contrario error
grabador no conectado (16), y se notifica y termina el proceso (17), de lo contrario
error archivo .ASM no existe se notifica y se termina el proceso(18).

66
2. Análisis de clases

a. Identificación de las responsabilidades

Caso de Uso: Ingresar al IDE

Clase Control Responsabilidades

Inicializar componentes del sistema.


Inicializar interfaz del IDE.
clsCargarIDE Reportar errores.

Caso de Uso: Cargar Proyecto

Clase Control Responsabilidades

Solicitar ubicación proyecto


nuevo/existente.
Cargar proyecto nuevo/existente.
Inicializar área de trabajo de
clsCargarProyecto
proyecto.
Reportar errores.

Clase Control Responsabilidades

Solicitar ubicación de
almacenamiento de proyecto.
clsGuardar Guardar proyecto.

67
Caso de Uso: Dibujar flujograma

Clase Control Responsabilidades

Inicializar entorno para la


diagramación.
Inicializar componentes para la
diagramación.
Proporcionar compatibilidad entre
clsFiguras componentes (figuras).
Definir equivalente en código
ensamblador de figura.
Definir equivalente en código Java de
figura.

Clase Control Responsabilidades

Recorrer componentes dibujados.


Validar lógica de diagramación a nivel
clsValidarFlujograma de componentes.
Reportar errores.

Clase Control Responsabilidades

Solicitar ubicación de
almacenamiento de proyecto.
clsGuardar Guardar proyecto.

Caso de Uso: Simular flujograma

Clase Control Responsabilidades

Inicializar entorno de simulación.


Solicitar variables para el entorno de
clsSimular simulación.

68
Clase Control Responsabilidades

Recorrer estructura de diagrama.


Validar lógica de diagrama a nivel
clsValidarFlujograma estructural.
Reportar errores.

Clase Control Responsabilidades


Inicializar variables de entorno de
simulación.
Obtener instrucciones de salida para
clsEjecutarFlujograma
la simulación gráfica.
Representar gráficamente el
resultado de las instrucciones de
salida.
Reportar errores.

Caso de Uso: Convertir flujograma en código Ensamblador

Clase Control Responsabilidades

Inicializar entorno de conversión de


código a ensamblador.
Obtener variables de entorno de
proyecto.
clsConvertir
Inicializar variables de entorno de
proyecto.

Clase Control Responsabilidades

Recorrer componentes del diagrama


creado.
clsConvertirASM Obtener instrucciones de salida del
diagrama creado.

69
Integrar instrucciones de salida.
Almacenar archivo .ASM creado.

Caso de Uso: Grabar microcontrolador

Clase Control Responsabilidades

Inicializar variables de entorno de


grabación.
Verificar conexión de periférico de
grabación.
clsGrabar
Obtener archivo .ASM generado
previamente.
Ejecutar el componente MPASM de
Microchip enviando como parámetro
el archivo .ASM cargado.
Obtener archivo .HEX generado por
el componente MPASM de Microchip.
Ejecutar el componente IC-PROG
enviando como parámetro el archivo
.HEX cargado.
Reportar errores.

3. Análisis de la Decisión

a. Especificar las Soluciones Alternativas

CARACTERISTICA ALTERNATIVA 1 ALTERNATIVA 2 ALTERNATIVA 3


Software -Desarrollo de Entorno de -Desarrollo de Entorno de -Creación de un Entorno
Desarrollo Integrado Desarrollo Integrado de Desarrollo Integrado
(IDE) utilizando Java, (IDE) utilizando Visual (IDE) para la
MPASM e IC-PROG. C++, MPASM e IC- programación de
PROG. microcontroladores
utilizando Ruby , MPASM
e IC-PROG
Ventajas - Lenguaje de - Soporta la Orientación a -Es un lenguaje
programación gratuito, Objetos. totalmente orientado a

70
así como sus - Fácil obtención del objetos.
herramientas. software para el -Es un lenguaje
- Soporta la Orientación a desarrollo de la IDE. interpretado u no
Objetos. - Existe la Bibliografía necesita de la fase de
- Fácil obtención del necesaria para la compilado, lo que
software para el utilización del software. aumenta la velocidad del
desarrollo de la IDE. desarrollo enormemente.
- Lenguaje muy utilizado -La administración de la
para la interacción con memoria es manejado
dispositivos electrónicos. por el lenguaje.
- Existe la Bibliografía -Es un lenguaje
necesaria para la dinámico, por lo que el
utilización del software. software escrito es
instalado como código
fuente.
Herramientas/ - Java Enterprise Edition - Visual C++ 6.0 -Interprete de Ruby en su
Software Necesario J2EE -MPASM versión 1.8 o superior.
-MPASM -IC-PROG -MPASM
-IC-PROG -IC-PROG
Arquitectura del - Arquitectura de - Arquitectura de -Arquitectura de
Sistema Escritorio Escritorio Escritorio
Dispositivos de - Impresor y Circuito - Impresor y Circuito -Impresor y Circuito
Salida Electrónico Grabador. Electrónico Grabador. Electrónico Grabador.
Dispositivos de - Teclado y Mouse. - Teclado y Mouse. -Teclado y mouse
Entrada
Dispositivos de - Disco Duro de 80 Gb. - Disco Duro de 80 Gb. -Disco duro de 80GB
Almacenamiento

b. Analizar la Viabilidad de las Soluciones Alternativas

CRITERIOS PESO ALTERNATIVA 1 ALTERNATIVA 2 ALTERNATIVA 3


DE
VIABILIDAD
VIABILIDAD 40% - Esta alternativa se - Esta alternativa se - El lenguaje Ruby, a
OPERATIVA adapta a las adapta a las pesar de ser una

71
necesidades del sistema necesidades del sistema alternativa bastante
y por ser un lenguaje en y pero carece de buena, en el medio no
expansión y creado para factibilidad operativa por se encuentra mucha
la orientación a objetos, la poca utilización del documentación sobre él,
contiene una cantidad lenguaje en la lo que lo hace difícil de
de herramientas que lo actualidad. aprender y por ello, una
hacen adaptable Puntaje: 70% baja factibilidad
fácilmente al software a operativa.
desarrollar. Puntaje: 60%
Puntaje: 100%
VIABILIDAD 25% - Técnicamente es muy - Técnicamente es - En la parte técnica, el
TECNICA viable ya que la menos viable ya que la lenguaje Ruby es open
tecnología utilizada para tecnología utilizada source, por lo cual, fácil
el desarrollo de esta necesita de una licencia, de adquirir, pero no
alternativa es bastante aunque puede ser cuenta con muchas
fácil de adquirir y en su utilizada sin ningún herramientas para
mayoría es open source. problema. desarrollar programas
Puntaje: 80% Puntaje: 75% en él, y las que hay
necesitan de una
licencia. Puntaje: 70%
VIABILIDAD 25% - Esta alternativa cuenta - Esta alternativa es -Económicamente, esta
ECONOMICA con buena viabilidad menos viabilidad alternativa es bastante
económica el lenguaje económicamente ya que viable, porque el
de programación a la licencia del lenguaje lenguaje Ruby es open
utilizar y sus de programación a source y su adquisición
herramientas es open utilizar implica un costo es gratis, pero si se
source, lo que solo de adquisición, además desea adquirir un
implicaría gastos de gastos de hardware. Entorno de Desarrollo
hardware. Puntaje: 80% Integrado para este
Puntaje: 95% lenguaje, se debe
adquirir una licencia
para su uso.
Puntaje: 80%
VIABILIDAD 10% Doce meses Doce meses Doce meses
CALENDARIO Puntaje: 100% Puntaje: 100% Puntaje: 100%
TOTALES 100% 93.75% 81.25% 71.5%

72
c. Determinar el Diseño de la Alternativa Propuesta

Por medio del análisis realizado anteriormente podemos determinar que la


alternativa más viable es la alternativa 1, la cual consiste en crear un Entorno de
Desarrollo Integrado (IDE) para la programación de microcontroladores, utilizando el
lenguaje de programación Java, así como todas la herramientas y clases de diseño
que este nos pueda aportar, además de utilizar los componentes externos llamados
MPASM e IC-PROG de Microchips, que se utilizaran para convertir los archivos a
lenguaje hexadecimal y grabar en el microcontrolador las instrucciones.
Para un mejor entendimiento de la alternativa 1, se añade un esquema del proceso
de creación y grabación de un microcontrolador.

ENTORNO DE DESARROLLO
INTEGRADO (IDE)

IDE
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx

Usuario Diseñar Codificar Simular


Programa Programa Programa

MPASM
.hex
IC-PROG Code.asm Code.hex
xxxxxxxxxxx hhhhhhhhhh
xxxxxxxxxxx hhhhhhhhhh
xxxxxxxxxxx hhhhhhhhhh
xxx
xxxxxxxxxxx hhhhhhhhhh
xxx
xxx
Grabar en
xxx
Microcontrolador Compilar Programa

73
D. DISEÑO

1. Objetivos del Sistema

a. Objetivo General

Mejorar la capacidad de aprendizaje e implantación de microcontroladores en las


prácticas de laboratorio de los estudiantes de Ingeniería en Sistemas
Computacionales e Ingeniería Eléctrica de la Universidad de Sonsonate.

b. Objetivos Específicos

Simplificar el proceso de creación del código o instrucciones del


microcontrolador.
Permitir la creación de diagramas de forma fácil y simple, para reemplazar la
programación en Lenguaje Ensamblador y minimizar el tiempo de
compilación y grabación de un microcontrolador.
Mejorar el control de compilación.
Crear una interfaz amigable para el usuario.
Agilizar de enseñanza e implementación de microcontroladores en circuitos
electrónicos.

2. Diseño de la arquitectura

a. Arquitectura del Sistema

La arquitectura del sistema se denomina Monousuario. La arquitectura Monousuario


es aquella en la cual, el sistema desarrolla todo su proceso y contiene sus tres
capas en una sola estación.

Se elige esta arquitectura por la naturaleza del sistema y de los componentes


necesarios para que este funcione. Ya que debido a que se necesita integrar

74
componentes externos como lo son un circuito diseñado específicamente para
grabar un microcontrolador (JDM), que se conecta directamente al puerto serial.

b. Distribución del Sistema

I. Capa de Datos

La distribución de la capa de datos está representada por los diferentes archivos


que se crearán dentro de los proyectos generados por el IDE. Cada proyecto
contendrá un archivo del proyecto, un .ASM y un .HEX, los cuales son almacenados
en un directorio especifico dentro del sistema operativo.

II. Capa de Procesos

La capa de procesos esta representada por las diferentes clases que componen el
sistema y que hacen posible el desarrollo de cada una de las fases del proceso de
programación y grabación de un microcontrolador. Las clases fueron diseñadas en
el lenguaje de programación Java, apoyado con la IDE NetBeans.

III. Capa de Presentación

La capa de presentación se refiere a las distintas ventanas, iconos, barras y demás


elementos que ayuden al usuario a desempeñar el proceso de programación y grabación
del microcontrolador, de manera más óptima y amigable. Las diferentes interfaces fueron
diseñadas en el leguaje de programación Java, apoyado con la IDE NetBeans.

75
c. Identificación de nodos y configuraciones

MPASM

Estación

Usuario IC-PROG

Microcontrolador-JDM

d. Identificación de clases relevantes

Clases de Análisis Clases de Activas de Diseño

Estación

Interfaz Principal
del Sistema

76
3. Diseño de Casos de Uso

a. Identificación de clases de diseño

Caso de Uso. Ingresar al IDE

Clase de Análisis Clase de Diseño Requisitos de Diseño


Capa de Interfaz
I. Principal del IDE clsInterfazPrincipal Activa
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsCtrBarraMenu
clsCtrAcercade
clsCtrPanelFiguras
clsCtrBarraHerram
Capa de Datos
entEtiquetas

Caso de Uso. Cargar Proyecto

Clase de Análisis Clase de Diseño Requisitos de Diseño


Capa de Interfaz
I. Principal del IDE clsInterfazPrincipal Activa
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsCtrBarraMenu
clsAccionAbrir
clsAccionNuevo
AdministrarProyectos
Capa de Datos
entProyectosXml

77
Caso de Uso. Dibujar Flujograma
Clase de Análisis Clase de Diseño Requisitos de Diseño
Capa de Interfaz
I. Area de Trabajo clsInterfazPrincipal Activa
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsCtrPanelFiguras
libJGraphX
clsAccionGuardar
AdministrarProyectos
AdministrarConfiguraciones
AdministrarVariables
Capa de Datos
entProyectosXml
entMFE
entCFG

Caso de Uso. Simular Flujograma


Clase de Análisis Clase de Diseño Requisitos de Diseño
Capa de Interfaz
I. Area de Trabajo clsInterfazPrincipal Activa
I. Simulacion clsInterfazSimulacion
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsSimular clsSimulacion
clsEjecutar AdministrarVariables
clsValidarFlujograma

78
Caso de Uso. Convertir Flujograma en código Ensamblador
Clase de Análisis Clase de Diseño Requisitos de Diseño
Capa de Interfaz
I. Area de Trabajo clsInterfazPrincipal Activa
Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsConvertirASM
AdministrarConfiguraciones
AdministrarVariables
Capa de Datos
entASM

Caso de Uso. Grabar Microcontrolador


Clase de Análisis Clase de Diseño Requisitos de Diseño
Capa de Interfaz
I. Area de Trabajo clsInterfazPrincipal Activa
clsIntPuertoSerie

Capa de Proceso
clsCargarIDE clsCargarIDE Activa
clsGuardar clsGrabar
Capa de Datos
entASM
entHEX

79
b. Interacción entre objetos

Caso de Uso. Ingresar al IDE

Camino Principal

clsInterfazPrincipal clsCargarIDE clsCtrBarraMenu clsCtrAcercade clsCtrPanelFiguras clsCtrMenuEmergente clsCtrBarraHerram entEtiquetasXml

Usuario
1. Solicitar cargar IDE 2. Gestionar operación 3. Solicitar carga de
4. Solicitar carga de
Menú Principal
Información
5. Envío de
Información
6. Solicitar Información de Etiquetas
8. Menú gestionado 7. Envío de Información

9. Gestionar carga de Panel Figuras


10. Solicitar información de etiquetas
11. Envío de infromación
12. Panel de Figuras gestionado
13. Gestionar Menú emergente
14. Solicitar Información de Etiquetas
16. Menú Emergente gestionado 15. Envío de Información

17. Gestionar Barra de Herramientas 18. Solicitar Etiquetas


19. Envío de
Información
20. Barra de Herramientas gestionada
21. Mostrar IDE cargada
Caso de Uso. Cargar Proyecto

Camino Principal

clsInterfazPrincipal clsCtrBarraMenu clsAccionNuevo entMFE entCFG entProyectosXML


Usuario
1. Solicitar creación de 2. Gestionar de
Nuevo Proyecto petición
3. Solicitar nombre y
4. Asignar nombre y ubicación de proyecto
ubicación de proyecto
5. Solicitar gestión
petición 6. Gestionar 7. Crear archivo de
operación diagrama
8. Petición
gestionada

9. Crear archivo de diagrama


10. Petición gestionada
11. Crear archivo de configuración de diagrama
14. Despliegue de 13. Petición
gestionada 12. Petición gestionada
proyecto nuevo

Camino Alternativo 1

clsInterfazPrincipal clsCtrBarraMenu clsAccionAbrir entProyectosXml AdministrarProyecto entMFE


Usuario
1. Solicitar Carga de 2. Solicitar gestión
Proyectos existentes de peticion 3. Solicitar listado de Proyectos
5. Mostrar Listado de
4. Listado de proyectos existentes
proyectos y Solicitar
6. Seleccionar y selección
Solicitar carga de
proyecto 7. Solicitar gestión 8. Gestionar 9. Buscar Proyecto
petición operación seleccionado
10. Información de
Proyecto

11. Abrir archivo de diagrama 12. Busca


Información
13. Devolución
15. Petición 14. Petición gestionada
16. Despliegue de gestionada
proyecto

81
Caso de Uso. Dibujar Flujograma

Camino Principal

clsInterfazPrincipal clsCargarIDE clsPanelFiguras libJGraphX clsAccionGuardar AdministrarVariables AdministrarConfiguraciones entCFG AdministrarProyectos entProyectosXML entMFE
Usuario
1.Selecciona y 2. Solicitar gestión
Arrastra Figura de peticion 3. Solicita la
carga de figura
4. Inicializar el
5. Envía
arrastre de la
parámetros de
figura
figura
6. Solicitar gestión 7. Gestionar 8. Buscar figura
mostrar figura operación seleccionada
11. Despliegue de 9. Información
figura sobre el área 10. Petición
sobre figura
de trabajo gestionada.
12. Solicitud de
creación de variable
13. Crear Variable
14. Guarda Variable

15. Información
17. Solicitud de
16. Petición gestionada
modificar
configuraciones
18. Modificar Configuraciones 19. Guarda
configuración

20. Información
21. Petición gestionada
22. Solicitud de
almacenamiento
23. Gestionar almacenamiento 25. Guarda
24. Guardar información de proyecto
información

26. Información

27. Guarda información

28. Información
30. Información para el Usuario 29. Información sobre proyecto
Camino Alternativo 1

clsInterfazPrincipal clsCargarIDE clsPanelFiguras libJGraphX clsAccionGuardar AdministrarProyectos entProyectosXML entMFE


Usuario
1.Selecciona y 2. Solicitar gestión
Arrastra Figura de peticion 3. Solicita la
carga de figura
4. Inicializar el
5. Envía
arrastre de la
parámetros de
figura
figura
6. Solicitar gestión 7. Gestionar 8. Buscar figura
mostrar figura operación seleccionada
11. Despliegue de 9. Información
figura sobre el área 10. Petición
sobre figura
de trabajo gestionada.
12. Solicitud de 14. Guardar
almacenamiento información de
13. Gestionar almacenamiento proyecto 15. Guarda
información

16. Información

17. Guarda información


19. Información 18. Información
20. Información para el Usuario sobre proyecto

Camino Alternativo 2

clsInterfazPrincipal clsCargarIDE clsPanelFiguras libJGraphX

Usuario 1.Selecciona y 2. Solicitar gestión


Arrastra Figura 3. Solicita la carga
de peticion
de figura
4. Inicializar el
5. Envía parámetros arrastre de la figura
de figura
6. Solicitar gestión 7. Gestionar 8. Buscar figura
mostrar figura operación seleccionada
11. Despliegue de 9. Información sobre
figura sobre el área de 10. Petición
12. Solicitud de cerrar figura
trabajo gestionada.
el programa
13. Gestionar

14. Solicitud de
Almacenamiento
15. Negación de
solicitud 16. Gestionar
Operación

83
Caso de Uso. Simular Flujograma
Camino Principal

Camino Principal

clsInterfazPrincipal clsCargarIDE clsSimulacion clsInterfazSimulacion clsEjecutar AdministrarVariables

Usuario
1.Seleccionar opción 2. Solicitar gestión
Simular 3. Envío de parámetros
de peticion para gestionar
4. Solicitar
5. Gestiona operación reconocimiento de flujo
6. Devuelve 7. Gestiona operación
secuencia de figuras 8. Despliega ventana
de Simulación de Simulación 10. Cargar
9. Ejecutar Simulación información
15. Despliegue de 12. Envío de
14. Petición 13. Información sobre 11. Devolución
figura sobre el área de parámetros
gestionada. simulación
trabajo

Camino Alternativo 1

clsInterfazPrincipal clsCargarIDE clsSimulacion clsInterfazSimulacion clsEjecutar AdministrarVariables

Usuario
1.Seleccionar opción 2. Solicitar gestión
Simular 3. Envío de parámetros
de peticion para gestionar
4. Solicitar
5. Gestiona operación reconocimiento de flujo
6. Devuelve 7. Gestiona operación
secuencia de figuras 8. Despliega ventana 10. Cargar
de Simulación
de Simulación 9. Ejecutar Simulación información
15. Despliegue de 13. Información sobre 12. Envío de
14. Petición 11. Devolución
figura sobre el área de simulación parámetros
gestionada.
trabajo
16. Modificar Entradas 17. Petición de 18. Gestiona operación
19. Despliega ventana
Gestión de Simulación
de Simulación 21. Cargar
20. Ejecutar Simulación información
23. Envío de
26. Despliegue de 24. Información sobre 22. Devolución
25. Petición parámetros
figura sobre el área de simulación
gestionada.
trabajo

Camino Alternativo 2

clsInterfazPrincipal clsCargarIDE clsSimulacion

Usuario1.Seleccionar opción
2. Solicitar gestión
Simular de peticion 3. Envío de parámetros
para gestionar
4. Solicitar
reconocimiento de
flujo
5. Gestiona operación
6. Devuelve 7. Gestiona operación
secuencia de figuras de Simulación

8. Secuencia
9. Mensaje de Incorrecta
Simulación erronea

84
Caso de Uso. Convertir Flujograma en código Ensamblador

Camino Principal

clsInterfazPrincipal clsCargarIDE clsConvertirASM AdministrarVariables AdministrarConfiguraciones entASM

Usuario1.Seleccionar opción
2. Solicitar gestión 3. Envío de parámetros
Convertir en ASM de peticion para gestionar 4. Cargar Información

5. Devolución

6. Cargar Información
8. Solicitar
reconocimiento de 7. Devolución
flujo
9. Gestiona operación

10. Devuelve 11. Gestiona


secuencia de figuras y operación de
los parámetros conversión 12. Grabar datos en archivo

13. Información del


14. Despliegue de
proceso
Mensaje

Caso de Uso. Grabar Microcontrolador

Camino Principal

clsInterfazPrincipal clsCargarIDE clsGrabar entASM entHEX clsIntPuertoSerie

Usuario 1.Seleccionar opción MPASM IC-PROG


2. Solicitar gestión 3. Envío de parámetros
JDM-
Grabar Microcontrolador 4. Buscar archivo
para gestionar ASM
Microcontrolador
6. Ruta ASM y 5. Ruta Archivo
parámetros a ASM
gestionar

7. Gestiona conversión
a HEX 8. Ruta de Archivo ASM 9. Grabar .HEX

12. Petición 11. Información de Proceso 10. Informacion


gestionada.

13. Comprobar conexión del puerto


14. Modificar Entradas
14. Conexión Correcta
15. Enviar parámetros de grabación

16. Buscar HEX


17. Devolver
18. Envío de
HEX 19. Grabar en
parametros
microcontrolador
21. Despliegue de
mensaje de grabación 20. Petición gestionada
correcta

85
4. Identificación de operaciones de clases de diseño

clsCargarIde
- Es el controlador general del sistema
- Carga la interfaz principal y los módulos del sistema
- Envía parámetros necesarios para cada módulos
- Se comunica con cada uno de los sistemas externos MPASM e IC-PROG
- Carga el panel propiedades

clsCtrBarraMenu
- Carga el menú del sistema
- Permite acceder a cada uno de las opciones establecidas

clsCtrAcercaDe
- Carga la información general del sistema
- Permite conocer sus creadores y versión del sistema

clsCtrPanelFiguras
- Carga cada una de las figuras para dibujar los diagramas
- Enlaza las figuras con la librería JGraphX
- Valida las figuras, hasta que se sueltan en el área de trabajo

clsCtrBarraHerram
- Carga las opciones de la barra de herramientas del sistema
- Enlaza las opciones con cada uno de los módulos relacionados

clsAccionAbrir
- Busca una ruta especificada
- Se encarga de cargar en el área de trabajo el diagrama
- Lee los archivos entProyectosXML, entMFE y entCFG

clsAccionNuevo
- Busca una ruta especificada
- Se encarga de cargar el área de trabajo en blanco
- Lee los archivos entProyectosXML, entMFE y entCFG

86
clsAccionGuardar
- Guarda el diagrama en el archivo entMFE y entCFG

libJGraphX
- Ejecuta el código necesario para mostrar las figuras
- Aporta las propiedades y eventos a las figuras
- Adhiere las figuras al área de trabajo

clsSimulacion
- Se encarga de recoger los parámetros del diagrama

clsEjecutar
- Se encarga de mostrar en tiempo real los resultados de la simulación

clsConvertirASM
- Se encarga de recoger los parámetros para la conversión del diagrama a lenguaje
Ensamblador
- Se encarga de convertir paso a paso, ósea figura por figura, el diagrama a código

clsGrabar
- Se encarga de enviar los parámetro a los programas necesarios para la grabación
- Interactúa con los programas externos MPASM e IC-PROG

AdministrarProyectos
- Administra los proyectos
- Realiza procedimientos de reconocimiento

AdministrarConfiguraciones
- Administra las configuraciones generales de los proyectos

AdministrarVariables
- Administra las variables de los proyectos

87
5. Diseño de prototipo

Caso de Uso. Ingresar al IDE

Pantalla de Ingreso Pantalla Principal

Ingreso
-Nuevo Diagrama
Ingresando al IDE
-Cargar Diagrama

-Salir
Salir

Caso de Uso. Cargar Proyecto

Cancelar

Mensaje Menú Principal Área de trabajo


-Seleccionar en Panel de
Figuras
-Nuevo Diagrama -Configuraciones generales
-Acción realizada -Cargar Diagrama -Cargar Proyecto
-Crear Variables
-Guardar ...

-Salir

Nuevo o Cargar Diagrama Cargar


Proyecto
Aceptar

Mensaje Pantalla Adm. Proyectos

-Nuevo Nuevo o Abrir


Seguro que desea Eliminar
-Abrir
realizar esta acción -Eliminar

-Aceptar -Aceptar
-Cancelar -Cancelar
Cancelar

Cancelar

88
Caso de Uso. Dibujar Flujograma

Seleccionar
Menú Principal Área de trabajo Figura Pantalla Adm. Variables
Aceptar o
-Seleccionar en Panel de Cancelar
Figuras Crear
-Nuevo Diagrama Nuevo Diagrama -Configuraciones generales variables -Crear y Configurar
-Cargar Diagrama -Cargar Proyecto
-Crear Variables
-Guardar ...
-Aceptar
-Salir
-Cancelar

Cargar Diagrama Cargar Configuraciones


Proyecto Guardar Aceptar o
generales
Cancelar

Pantalla Adm. Proyectos Pantalla Adm. Config. Cuadro de Dialogo


Nuevo

Aceptar o
-Nuevo
Cancelar -Especificar Ubicación y
-Abrir -Seleccionar opción
-Eliminar nombre de archivo

-Aceptar -Aceptar -Aceptar


-Cancelar -Cancelar -Cancelar

Cancelar

Caso de Uso. Simular Flujograma

Cambiar
Menú Principal Área de Trabajo Pantalla de Simulacíón
entradas
-Simular
Cargar Diagrama -Configuraciones generales
-Nuevo Diagrama Simular
-Convertir a Ensamblador -Cambiar entradas
-Cargar Diagrama -Grabar Microcontrolador
...

-Simular
-Salir
-Salir

Nuevo Diagrama

Mensaje

Continuar Salir
Crear Diagrama

89
Caso de Uso. Convertir Flujograma en código Ensamblador

Menú Principal Área de Trabajo Mensaje

-Simular Convertir a
Cargar Diagrama -Convertir a Ensamblador Ensamblador
-Nuevo Diagrama -Configuraciones generales -Confirmación de conversión
-Cargar Diagrama -Grabar Microcontrolador
...

-Convertir
-Salir
-Cancelar

Nuevo Diagrama

Mensaje

Continuar
Crear Diagrama

Cancelar

Caso de Uso. Grabar Microcontrolador

Menú Principal Área de Trabajo Mensaje

-Simular Grabar
Cargar Diagrama -Convertir a Ensamblador microcontorlador
-Nuevo Diagrama -Configuraciones generales -Confirmación de grabación
-Cargar Diagrama -Grabar Microcontrolador
...

-Grabar
-Salir
-Cancelar

Nuevo Diagrama

Mensaje

Continuar
Crear Diagrama

Cancelar

90
E. CONSTRUCCIÓN E IMPLANTACIÓN

1. Construcción del software

a. Implementación de clases de diseño

I. Generación de código fuente

Para el desarrollo del Entorno de Desarrollo Integrado (IDE) se utilizó dos sistemas
externos: MPASM e IC-PROG de Microchip que desarrollan importantes procesos
para la funcionalidad del IDE, además del lenguaje de programación Java2EE con
el que se desarrollaron los módulos necesarios para las operaciones de todo el
entorno, y que ayudan a concretar la programación de microcontroladores
PIC16f84.

II. Implementación de operaciones

El diseño del Entorno de Desarrollo Integrado (IDE) propuesto está basado


fundamentalmente en la implementación de una librería (JGraphX) que ha sido
modificada y que permite reducir y facilitar, el uso de código fuente necesario para
la construcción del mismo, por lo que las clases programadas heredan atributos de
esta librería principal, que para este caso es conocida como “libJGraphX”, donde se
encuentran las funciones principales de creación y manejo de imágenes para los
diagramas del IDE, y así se puede invocar los parámetros necesarios para la
diagramación e interacción de objetos.

Para obtener un mejor detalle de la implementación de las clases para las diferentes
operaciones del sistema se muestra el siguiente esquema:

91
clsCtrAcercaDe

Ingresar al IDE clsCtrBarraHerram

Administrar Proyectos clsCtrBarraMenu

Cargar clsAccionAbrir
AdministrarVaribles Proyecto

clsAccionNuevo

clsCtrPanelFiguras
Dibujar clsAccionGuardar
Flujograma

libJGraphX clsSimulacion
Simular
Flujograma

AdministrarConfiguraciones
clsCargarIDE
Convertir
flujograma en
codigo clsConvertirASM
ensamblador

Grabar clsGrabar
Microcontrolador

b. Pruebas y corrección de errores

Las pruebas son elementos críticos para la garantía de la calidad del software, en
cuanto a su funcionalidad y rendimiento. El objetivo de la etapa de pruebas es
garantizar la calidad del producto desarrollado, ya sea con un óptimo desarrollo o
por medio de la corrección de errores.
A continuación se detallan algunos tipos de prueba:

I. Pruebas de Unidad

El objetivo de la prueba de unidad es descubrir errores dentro de cada módulo. La


prueba de unidad pretende probar cada función de cada clase. La prueba de unidad
ayuda a que el módulo se haga independiente. Esto quiere decir que un módulo que
tiene una prueba de unidad se puede probar independientemente del resto del

92
sistema. Para esto se utiliza el método de la caja blanca, el cual consiste en
examinar el código interno de cada clase hasta completar cada módulo.

II. Pruebas de Integración

La prueba de integración es una técnica sistemática para construir la estructura del


software mientras al mismo tiempo, se lleva a cabo pruebas para detectar errores
asociados con la interacción. El objetivo es tomar los módulos probados en unidad y
estructurar un sistema que esté de acuerdo con el que dicta el diseño.

III. Pruebas del sistema

La finalidad de esta prueba es verificar que cada elemento encaje de forma


adecuada y que se alcance la funcionalidad y el rendimiento del sistema total; es
decir que el sistema rinda en su funcionalidad a nivel de ejecución, probados con
anterioridad cada uno de los módulos por medio de pruebas de unidad e
integración. Para esta prueba se utiliza la técnica de la caja negra.

c. Integración del sistema

Los diferentes componentes de hardware y de software del Entorno de Desarrollo


Integrado, tanto los módulos del software como los sistemas externos, serán
integrados con el fin de lograr un desempeño total del IDE. El sistema contará con
una arquitectura monousuario en la cual la interfaz será creada en NetBeans
logrando desarrollar una apariencia amigable, dinámica e interactiva, los procesos
serán creados con Java2EE y el manejo de los datos se almacenara en archivos
independientes como lo son ProyectosXML.xml, y *.mfe, entre otros, mostrados
anteriormente en el diseño.

93
2. Implantación del Software

a. Implantación de la arquitectura

I. Diagrama de componentes

PRESENTACION

Interfaz Java
PROCESOS

MPASM
DATOS Clases Java

IC-PROG
ProyectosXML libJGraphX

*.mfe
*.asm

*.cfg
*.hex

b. Plan de Implantación

Para la implantación del Entorno de Desarrollo Integrado (IDE) y el paso a su


funcionamiento, Es necesario especificar las características del equipo en el cual se
llevara a cabo la implantación y señalar la participación del usuario operacional en
las pruebas de implantación, así como también la del usuario final en las pruebas
correspondientes a la aceptación del sistema.

Al realizar las pruebas de implantación y aceptación del sistema, para que este
funcione en su totalidad, este debe responder a los siguientes propósitos:

- Las pruebas de implantación cubrirán un rango muy amplio que abarca


desde la comprobación de cualquier detalle de diseño interno hasta aspectos

94
tales como facilidad de uso y optimización del tiempo para desarrollo de
programas.

- Las pruebas de aceptación se realizaran por y para los usuarios, teniendo


como objetivo validar formalmente que el sistema se ajuste a sus
necesidades.

- La información necesaria para la implantación, tanto para usuarios finales así


como también al encargado de realizar las pruebas de implantación y
aceptación del sistema (Manuales de usuario y de instalación).

c. Capacitación a Usuarios

Los usuarios finales del Entorno de Desarrollo Integrado (IDE) contaran con
documento llamado “Manual del Usuario” (ver anexo “4”) en el cual se describirá
detalladamente el manejo, utilización y el acceso al contenido del entorno.

Para una buena complementación y enriquecimiento acerca del manejo y uso del
sistema, el usuario final además de contar con un manual, contara también con
capacitaciones las cuales lo beneficiaran un mas, ya que tendrá la oportunidad de
realizar prácticas de prueba acerca del manejo del sistema y realizar preguntas al
instructor de la materia correspondiente en caso de surgir alguna duda.

Las capacitaciones para los instructores serán impartidas en ocho horas,


comprendiendo una hora exacta para su desarrollo, en las cuales se mostrarán
detalladamente los pasos para configurar cada programa y desarrollar varios
proyectos con el IDE.

95
CAPITULO VI. ESTUDIO ECONÓMICO

A. Generalidades sobre la evaluación del proyecto

El Estudio Económico del proyecto tuvo como fin conocer las inversiones
indispensables que permitieron el desarrollo del sistema, también se refleja el
capital de trabajo necesario para elaborar y mantener el sistema en correcto
funcionamiento.

B. Factibilidad del proyecto

Con la factibilidad del proyecto se pretende determinar la viabilidad o posibilidad de


que el sistema se desarrollo adecuadamente, tomando en cuenta como aspectos
relevantes la factibilidad operativa, técnica y económica.

Factibilidad Operativa

La factibilidad operativa esta medida en base a la reducción de tiempo producida


por la utilización de Entorno de Desarrollo Integrado (IDE), para la creación del
código e implementación del mismo. Por lo tanto es factible en la media que reduce
aproximadamente tres veces el tiempo de programación de un microcontrolador,
acelerando así su implementación, sin necesidad de aprender el lenguaje
Ensamblador.

Factibilidad Técnica

Actualmente hay muchas herramientas de apoyo, para el desarrollo de proyectos en


distintas áreas; en electrónica el desarrollo de sistemas de apoyo para la utilización
de microcontroladores tiende a ser una de ellas, ya que se busca reducir y facilitar la
utilización de estos, apoyándose en software con tecnologías nuevas de

96
programación, de esta manera la creación del sistema es factible ya que está
acorde a nuevas tecnologías que ayudan a facilitar la programación de
microcontroladores.

Factibilidad Económica

Debido a que la mayoría de los componentes del Entorno de Desarrollo Integrado


(IDE), son gratuitos, la empresa no tiene que incurrir en gastos adicionales de
compra de licencias, ni tampoco en equipos de computo, ya que consta con las
maquinas necesarias para la implementación del IDE. Por lo tanto los gastos se
reducen a costos de energía y costos de elaboración del sistema; debido a esto es
factible ya que la institución cuenta con el capital necesario para su elaboración e
implementación.

C. Determinación de los costos del proyecto

1. Costos fijos

Costos de Diseño, Desarrollo e Implantación del Sistema

Los costos de diseño, desarrollo e implantación necesarios para el funcionamiento


del sistema se detallan a continuación:

Costo Total: $ 1,181.40


CANTIDAD CONCEPTO COSTO UNITARIO COSTO TOTAL
Depreciación de equipo $183.33 $549.99
3 Resma de papel $5 $15
5 Tinta negra $5 $25
2 Tinta a color $7 $14
Energía Eléctrica $100 $100

97
Material para realizar $70 $70
pruebas
Viáticos $300 $300

Imprevistos $107.40
TOTAL $1,181.40

2. Costos variables

Los costos variables en el proyecto a desarrollar se refieren principalmente a los


costos de consumo de energía eléctrica.

Energía Eléctrica:

La energía eléctrica es el insumo más importante para el funcionamiento del


sistema; teniendo en cuenta que el consumo de cada equipo de computo promedio
es de 300 watts por hora, quiere decir que calculando un promedio de diez horas de
uso a la semana el sistema gastaría 3.0 Kw y con un costo de $ 0.104607 Kwh, se
traduce en $ 0.313821 semanales, que equivale a $ 16.32 anuales por máquina.
El costo calculado con anterioridad es variable en cuanto al número de
computadoras utilizadas, ya que el centro de cómputo consta con 10 maquinas para
desarrollo de instructorías.
Tomando en cuenta que todas las maquinas estén siendo utilizadas siempre el
costo promedio de uso de energía eléctrica será de $ 160.32 anuales, sujeto a
cambios de precio del Kwh por parte de la compañía proveedora.

98
Costo Total Anual

Costos Fijos $ 1,181.40


Costos Variables $ 160.32
Costo Total Anual $ 1,341.72

3. Análisis Costo / Beneficio

Para determinar los beneficios del sistema, evaluaremos la situación actual contra
las mejoras producidas por la implementación del sistema, para ello se hizo una
comparación de costos aproximada en base a las experiencias por parte de los
instructores, respecto al tiempo que se necesita para enseñar a un alumno, a
programar e implementar un microcontrolador en un circuito electrónico.
A continuación mostraremos la evaluación en una tabla comparativa

Situación Implementación
Costo Costo
Actual del Sistema Horas Ahorro
Actividad Actual Sistema
H. Costo H. Costo al año al año $
$ $
clase $ clase $
Enseñanza
Básica de
3 9 1 3 12 108 36 72
Lenguaje de
Programación
Desarrollo de
programación
1 3 0.3333 1 10 30 10 20
para un
ejercicio

Con el análisis mostrado la Universidad de Sonsonate reduciría en un tercio


aproximadamente el monto que pagaría por instructorías y de igual forma seria con
el consumo de energía eléctrica, que son los dos indicadores de los que depende el

99
sistema, sin embargo esto no está acorde a la realidad, ya que el sistema no genera
esos beneficios debido a que no importa lo que se tarde un instructor en la
enseñanza y práctica de microcontroladores, el resto del tiempo se utilizará en
desarrollar más ejemplos de implementación en otros circuitos electrónicos. Por lo
tanto, no importa cuánto se tarde el instructor o el alumno, el beneficio que se
genera es intangible ya que se reduce a la cantidad de experiencia y conocimientos
que el alumno obtiene, la Universidad de Sonsonate siempre desembolsará los
mismos gastos con respecto al pago de instructorías de laboratorio.

E. Determinación de beneficios del sistema

El análisis nos muestra el beneficio social que se genera, ya que los alumnos
obtienen mayor cantidad de conocimientos y experimentan con nuevas tecnologías,
que pueden inducirlos a investigar y aprender más a fondo distintas áreas de la
Ingeniería como es la electrónica, que es una fusión de Ingeniería Eléctrica y
Sistemas.

También induce a los alumnos a interactuar con diferentes dispositivos, sistemas,


métodos y herramientas electrónicas, para diferentes propósitos como por ejemplo
los sistemas de seguridad y sistemas de automatización industrial entre otros.

Por lo tanto aunque sea un beneficio intangible cumple con los objetivos de la
institución, que buscan crear mejores profesionales para las distintas áreas de
estudio.

100
CAPITULO VII. CONCLUSIONES Y RECOMENDACIONES.

A. Conclusiones

1. El Entorno de Desarrollo Integrado (IDE) representa una herramienta


computarizada que apoyará y facilitará la programación de
Microcontroladores PIC16F84, por medio de una interfaz amigable al usuario
y por la integración de herramientas en un solo sistema.

2. La eficiencia del IDE creado se basa en la reducción del tiempo para el


aprendizaje de la programación y la implementación en los
microcontroladores.

3. El software desarrollado en este proyecto constituye una herramienta básica


para el aprendizaje de Lenguaje Ensamblador.

4. La utilización del IDE creado reduce los costos de materiales para circuitos
electrónicos, permitiendo pruebas de la ejecución del programa, antes de la
grabación en el microcontrolador.

5. El sistema creado será útil en medida que el pensum y plan de estudio,


integren el uso de microcontroladores PIC16F84, de lo contrario el sistema
quedará obsoleto.

B. Recomendaciones

1. Se recomienda que sean impartidas capacitaciones a todos los encargados


de las instructorías en cuyas clases se haga uso del Entorno de Desarrollo
Integrado para efectuar prácticas con los microcontroladores PIC16F84.

101
2. Los estudiantes de las materias donde se hace uso de microcontroladores
deben tener conocimiento básico acerca de la programación estructurada y
sobre la utilización de los microcontroladores previo a utilizar el IDE en sus
prácticas de laboratorio; esto con el fin de aplicar la lógica estructurada en la
programación de los microcontroladores.

3. El sistema debe actualizarse con respecto a los modelos de


microcontroladores utilizados en el futuro y con respecto a demás
dispositivos que puedan utilizarse en las prácticas de laboratorio de las
materias correspondientes, también podría actualizarse en un futuro próximo
la versión del sistema actual integrando módulos lcd, sleep, bluetooth y otros
dispositivo actualmente usados.

102
Referencias Bibliográficas

Ávila Baray, Héctor Luis. 2006. Introducción a la Metodología de la Investigación.


Edición Electrónica. Chihuahua, México. 174 p.

Cser Aedo, FA. 2006. Sistema de control mediante mensajes SMS y


Microcontroladores. Examen de Título. Temuco, Chile. Universidad Católica de
Temuco. 99 p.

Gálvez Rojas, S; Mora Mata, MA. 2005. Java a tope: Traductores y compiladores
con Lex/Yacc, JFlex/Cup y JavaCC. Edición electrónica. España. Universidad de
Málaga. 307 p.

Grajales G, Tevni. 2000. Tipos de Investigación. Consultado 24 de Abril de 2008.


Disponible en http://tgrajales.net/investipos.pdf.

Palacios Municio, E.; Remiro Domínguez, F; López Pérez, LJ. 2004.


Microcontrolador PIC16F84: Desarrollo de proyectos. 1ª edición. México. Alfaomega
Grupo Editor. 616 p.

Wikipedia. 2008. Lenguaje Ensamblador. Consultado 20 de Abril 2008. Disponible


en http://es.wikipedia.org/wiki/Lenguaje_ensamblador.

Wikipedia. 2008. Entorno de Desarrollo Integrado. Consultado 3 de Junio de 2008.


Disponible en http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado

Wikipedia. 2008. PICAXE. Consultado 3 de Junio de 2008. Disponible en


http://es.wikipedia.org/wiki/PICAXE

103
Wikipedia. 2008. Proceso de traducción de programas. Consultado 4 de Junio de
2008. Disponible en
http://es.wikipedia.org/wiki/Proceso_de_traducci%C3%B3n_de_programas

Wikipedia. 2008. Compilador. Consultado 4 de Junio de 2008. Disponible en


http://es.wikipedia.org/wiki/Compilador

Wikipedia. 2008. Ensamblador. Consultado 4 de Junio de 2008. Disponible en


http://es.wikipedia.org/wiki/Ensamblador

104
ANEXOS

Anexo 1. Matriz de Congruencia

TEMA EL PROBLEMA PREGUNTAS DE OBJETIVOS VARIABLES INDICADORES


SUGERIDO DE INVESTIGACIÓN
INVESTIGACIÓN
Creación de un ¿Qué software y OBJETIVO
Entorno de componentes GENERAL
Desarrollo serán necesarios Crear un entorno
Integrado (IDE) para crear e de desarrollo
para la implementar un integrado (IDE)
programación entorno de para la
de desarrollo programación de
microcontrolado integrado que microcontroladore
res utilizando ayude a los s utilizando
MPASM de estudiantes de la MPASM de
Microchip e IC- Universidad de Microchip e IC-
PROG. Sonsonate a crear PROG.
código de
programación para
la utilización de
microcontroladores
en las distintas
materias cursadas
en las carreras de
Ingeniería
Eléctrica e
Ingeniería en
Sistemas
Computacionales?
1. ¿Cuáles son OBJETIVOS Dificultad de Aplicación:
los ESPECÍFICOS los usuarios - Conocimiento
problemas o 1. Determinar en la previo sobre
dificultades las programación microcontroladores.
con los que dificultades y de
se enfrentan microcontrolad - Familiaridad con el
necesidades lenguaje
los usuarios de los ores
al momento Ensamblador
usuarios
de trabajar potenciales - Grado de dificultad
con en relación en el empleo de las
microcontrola con la herramientas de
dores? programació grabación de
n de microcontroladores.
microcontrol - Tiempo de práctica
adores. dedicado al uso de
los
microcontroladores.
2. ¿Es posible 2. Construir el Tecnología a Aplicación:
mejorar el software emplearse. - Lenguajes de
aprendizaje y atendiendo a programación.
uso de los los
microcontrola requerimient - IDE del lenguaje de
dores, a os de los programación.
través de un usuarios, y - Sistema Operativo.
software que haciendo
brinde uso de la
herramientas tecnología
gráficas para idónea para
la tal fin.
programación
de éstos?

105
3. ¿Constituirá 3. Validar el Software Aplicación:
el software software creado (IDE) - Funcionalidad del
una creado. IDE.
herramienta
que solvente - Amigabilidad de la
los interfaz.
problemas en - Grado en que
la agiliza el proceso de
programación grabación.
de
microcontrola
dores?

106
Anexo 2. Cuestionario

Universidad de Sonsonate

Encuesta dirigida a estudiantes de Ingeniería en


Sistemas Computacionales e Ingeniería Eléctrica

Somos estudiantes de la Universidad de Sonsonate, y estamos realizando un


estudio sobre las dificultades que presenta la programación de microcontroladores
para el desarrollo de nuestra tesis. Cordialmente, solicitamos su colaboración en la
resolución de esta encuesta, asegurándole que la información que nos brinde será
tratada con total confidencialidad. De antemano le agradecemos su colaboración.

Indicaciones: Seleccione la opción más adecuada o responda según lo requerido,


en base a su criterio y experiencia.

1. ¿En qué materia(s) estudió y/o utilizó microcontroladores? (marque todas las que
correspondan):
 Sistemas Digitales
 Sistemas Automatizados
 Electrónica
 Arquitectura de Computadoras
 Otra. Especifique: ______________________

2. ¿Con qué frecuencia practicó con microcontroladores, en los laboratorios de las


respectivas materias?
 Muy frecuentemente  Frecuentemente  Pocas veces

3. ¿En qué grado se le dificulta el manejo de los microcontroladores?


 Mucho  Regular  Poco  No se me dificulta

107
4. Numere del 1 al 4 las partes del proceso de grabación del microcontrolador que
se le dificultan más, siendo 1 el más difícil y 4 el menos difícil:
___ Análisis del problema
___ Programación en Lenguaje Ensamblador
___ Utilización de los programas para grabar
___ Elaboración del circuito

5. ¿Cómo considera la programación en Lenguaje Ensamblador?


 Muy difícil  Difícil  Intermedio  Fácil 
Muy fácil

6. ¿Qué opción de las siguientes considera más necesario para facilitar las prácticas
con microcontroladores?:
 Más horas de práctica
 Más teoría previa sobre microcontroladores
 Programas más fáciles de utilizar
 Lenguaje de programación más fácil de aprender

7. ¿Considera el conocimiento y uso de microcontroladores como algo importante


para su carrera?
 Sí  No

8. ¿Opina que sería útil una herramienta que integrara todo el proceso de grabación
del microcontrolador, desde su programación hasta su quemado?
 Sí  No

9. ¿Qué tanto mayor valor considera que le agregaría si esa herramienta poseyera
una interfaz que proporcionara herramientas gráficas que evitaran tener que
programar en ensamblador?
 Mucho valor  Valor medio  No proporciona valor extra

108
Anexo 3. Entrevista Estructurada

Entrevistado: Instructor de Materia ____________________


Fecha: ________________
Hora: ________________
Lugar: Universidad de Sonsonate
Tema: Evaluación del producto terminado

Tiempo asignado Pregunta u Objetivo Respuesta del entrevistado


1 minuto Objetivo
Abrir la entrevista:
 Establecer el propósito
de la entrevista
1 minuto Pregunta 1
¿Opina que el software ofrece
una interfaz amigable?
3 minutos Pregunta 2
¿Qué problemas que tuvo
anteriormente en la
programación de
microcontroladores se vieron
solventados con el uso de este
software?
1 a 3 minutos Pregunta 3
¿Considera que el software es
difícil de entender y utilizar?

Si es así, ¿en qué aspecto?


2 a 4 minutos Pregunta 4
¿Opina que el software
constituye una herramienta útil
para los estudiantes que realicen
práctica con
microcontroladores? ¿Por qué?
5 minutos Pregunta 5
¿Cuánto tiempo
aproximadamente considera que
se debe emplear en aprender a
usar el software?
¿Opina que vale la pena ese
tiempo en ese proceso?
5 minutos Pregunta 6
¿Opina que el producto facilita
el proceso de programación de
microcontroladores?

109
Si su respuesta es no, ¿qué
considera que le hace falta?
2 a 4 minutos Pregunta 7
En su opinión, ¿cumple el
software con el propósito de
apoyar la enseñanza-aprendizaje
de microcontroladores?
1 minuto Objetivo
Concluir la entrevista:
 Agradecer al instructor
por su tiempo y
colaboración
27 minutos Tiempo estimado para preguntas y
objetivos

110
Anexo 4. Manual de Usuario

Manual de Usuario

Entorno de Desarrollo Integrado

µFlux

111
Índice

Contenido Pág.

Ingresar a µFlux ................................................................................................... 114


Administrar Proyectos.......................................................................................... 115
Crear un nuevo Proyecto de µFlux .................................................................. 115
Abrir un Proyecto de µFlux ............................................................................... 117
Eliminar un Proyecto de µFlux ......................................................................... 118
Administrar de Variables en µFlux ....................................................................... 119
Creación de variables en µFlux ...................................................................... 1200
Configuraciones Generales de µFlux ................................................................ 1200
Insertar una figura en µFlux ............................................................................... 1222
Insertar un Proceso ........................................................................................ 1233
Insertar un Retardo ........................................................................................ 1277
Insertar un Hacer Mientras ............................................................................. 1277
Insertar un Si .................................................................................................. 1300
Insertar una Salida ......................................................................................... 1344
Simular un Programa ......................................................................................... 1366
Convertir un Programa a Código Ensamblador ................................................. 1366
Mostrar código Ensamblador ............................................................................. 1378
Grabar un Programa en Microcontrolador ......................................................... 1388
Ayuda de µFlux .................................................................................................. 1389

112
Introducción

A continuación se presenta la guía gráfica para el uso del sistema µFlux; el mismo
ha sido editado pensando en todas y cada una de las actividades a desarrollar
durante el proceso de programación y grabación de un microcontrolador.

Es ideal para nuevos usuarios y los que ya tengan práctica previa con el sistema,
hallarán apoyo que requieran una explicación o simplemente como refuerzo.

Se recomienda estudiarlo en el orden mostrado ya que ejemplifica completamente,


el proceso lógico para la creación de un programa, aplicando ejemplos y mostrando
cada pantalla del sistema.

113
Manual de Usuario de µFlux

Ingresar a µFlux

Identificar el icono de µFlux en su computador.

Luego dar doble clic al icono. Aparecerá la Pantalla Principal de µFlux

114
Nota: Si el sistema operativo es Windows Vista posiblemente genere el siguiente
mensaje.

µFlux.exe

Dar clic en Permitir e inmediatamente aparecerá la pantalla principal anteriormente


mostrada.

Administrar Proyectos

Administrar Proyectos es una ventana que permite interactuar con los diversos
proyectos creados, modificándolos y eliminándolos, así como crear nuevos
proyectos, a continuación se detalla cada una de estas opciones:

Crear un nuevo Proyecto de µFlux

Para crear un proyecto de µFlux existen dos caminos:


Camino 1:
En el primer camino podemos ingresar directamente a la ventana de creación de
proyectos dando clic en el icono Nuevo
115
Luego aparecerá un cuadro de dialogo donde introduciremos el Nombre del
proyecto y su Ubicación dentro de Windows.

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 último paso se dará clic en Crear.

Camino 2:
En el menú principal seleccionar la opción Archivo, luego dar clic en la opción
Nuevo Proyecto.

Luego aparecerá un cuadro de dialogo donde introduciremos el Nombre del


proyecto y su Ubicación dentro de Windows.

116
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 último paso se dará clic en Crear.

Abrir un Proyecto de µFlux

En el menú principal seleccionar la opción Archivo, luego dar clic en la opción


Abrir.

Luego aparecerá la pantalla del Administrar Proyectos, en esta ventana


seleccionar el proyecto que se desea y dar clic en la opción Abrir

117
Eliminar un Proyecto de µFlux

Para eliminar un proyecto, en el menú principal dar clic en la opción Proyectos,


luego dar clic Administrar proyectos y aparecerá la siguiente ventana:

En esta ventana seleccionar el proyecto a eliminar y dar clic en el botón Eliminar, a


continuación aparecerá un mensaje de confirmación, dar clic en el botón Si.

118
Administrar de Variables en µFlux

Las variables son necesarias para el proceso de creación de un programa en µFlux;


éstas serán utilizadas posteriormente en las diferentes propiedades de las figuras
insertadas.

Los pasos para ingresar a la ventana de Administración de Variables se describen a


continuación:

En el Menú del sistema dar clic a Proyecto, luego dar clic en la opción Variables,
como se muestra a continuación:

Luego aparecerá una ventana de administración de variables, en la cual podemos


Crear y Eliminar variables.

119
Creación de variables en µFlux

Para crear una variable se da clic en el botón Nueva… y luego aparecerá una
ventana solicitando el Nombre; colocarlo y dar clic en el botón Agregar.

Configuraciones Generales de µFlux

En esta sección se pueden controlar las opciones generales del proyecto, estas
opciones están dadas de acuerdo al tipo de reloj y entradas que estén conectadas,
todas estas opciones dependen del circuito electrónico en el que se implantará el
sistema.

120
Se recomienda que estas opciones sean modificadas antes de dibujar el diagrama,
para que los pines que se establezcan como entrada no puedan utilizarse como
salidas.

Para modificar estas opciones debe estar abierto el proyecto que se desea
modificar, luego se selecciona la opción Proyecto del menú principal y a
continuación se da clic en la opción Configuraciones Generales.

Luego aparecerá un cuadro en el cual se podrá establecer la velocidad del reloj, que
puede elegirse entre 32Mhz o 4Mhz; además se puede seleccionar cada pin que
sea entrada del sistema chequeándolo en la ventana.

Nota: El pin que sea seleccionado no podrá utilizarse posteriormente como salida.

Luego de elegir la velocidad del reloj y chequear la entradas de datos, dar clic en el
botón Aceptar.

121
Insertar una figura en µFlux

El proceso de inserción de 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 flujogramas 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 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 azul, como se muestra a continuación:

122
Insertar un Proceso

Un Proceso como se presenta a continuación, es la representación grafica de una


igualación de variables.

Para utilizar un proceso se debe crear la variable necesaria para realizar la


igualación, por ejemplo: si se desea utilizar la expresión a=3, la variable “a” debe
haber sido creada antes. Para crear variables ver la sección “Administrar
Variables en µFlux”.

Para asignar una igualación a la figura del proceso se utiliza el asistente del
programa; como primer paso dar clic sobre la figura del proceso, entonces
aparecerá en el panel de propiedades a la derecha, la siguiente opción:

123
Como siguiente paso dar clic en el botón que tiene tres puntos e inmediatamente
aparecerá la ventana del asistente, donde el sistema da opción de crear diferentes
tipos de expresiones, como son de Asignación, Suma, Resta, Incremento y
Decremento. Para seleccionar estos tipos lo único que debemos hacer es
desplegar el combo dando un clic sobre la flecha a su derecha.

Para mostrar la utilización de esta pantalla se muestra una de las expresiones más
complejas, que se pueden desarrollar en este sistema, se muestra paso a paso la
colocación de la expresión b=c+d.

Como primer paso colocar en el combo de las operaciones la opción Suma.

124
A continuación como segundo paso, seleccionar en el primer combo de la izquierda
la variable “b”.

Para crear esta expresión de variable más variable, debemos dar clic en el punto
opcional colocado abajo, al lado izquierdo de la palabra variable, ya que si
seleccionamos el que está al costado de la palabra valor, estaremos creando una
expresión tipo b=c+3 o sea variable más valor. A continuación seleccionar del
segundo combo de la derecha la variable “c”.

125
Como cuarto paso se selecciona del combo de la derecha la variable “d”.

Como último paso se puede comprobar la expresión, dando clic en el botón


Comprobar, inmediatamente aparecerá la expresión en el espacio de arriba.

126
Cuando la expresión esté correcta, dar clic en el botón Aceptar, de lo contrario,
repetir el paso que sea necesario. A continuación se muestra la figura del proceso.

Insertar un Retardo

Un Retardo como se presenta a continuación, es la representación grafica de un


tiempo de espera en el programa.

Para asignar tiempo a un retardo dar clic sobre el retardo y colocar el tiempo en el
espacio del panel de propiedades a la derecha, luego presionar la tecla Enter; el
tiempo está asignado en segundos y el sistema tiene un límite de 100 segundos.

El la figura del retardo después de su asignación es la siguiente.

Insertar un Hacer Mientras

La figura Hacer Mientras representa un proceso de condición, 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 o ciclos.

127
Para agregar una condición a un hacer mientras se selecciona la figura y en el panel
de propiedades, dar clic en el botón con tres puntos, a continuación aparecerá el
siguiente asistente.

En este asistente se pueden realizar diferentes tipos de condiciones, para


ejemplificar se mostrara el proceso de asignación de la condición d>c.

Como primer paso seleccionar la variable “d” del primer combo de la izquierda.

Luego seleccionar del combo de la derecha la operación “>”.

128
Como tercer paso seleccionar el panel variable dando clic sobre el punto a la
izquierda, luego extender el combo de las variables y elegir la variable “c”.

Por último comprobar la operación dando clic en el botón Comprobar.

129
Si se desea una operación con un número, o sea d>3, solo se cambia la opción
para el punto del Valor y se asigna el valor 3.

Insertar un Si

La figura Si 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.

Para agregar una condición a la figura Si, dar clic sobre la figura y en el panel de
propiedades a la derecha, dar clic sobre el botón que tiene tres puntos.

De inmediato aparecerá un asistente, en el cual puede elegirse dos tipos de


opciones generales, se puede trabajar con condiciones que incluyan lo pines de
entrada o con expresiones lógicas, a continuación se muestran los dos tipos, para

130
seleccionar cada uno debe darse clic en los puntos de opción correspondientes a la
izquierda de cada uno.

Para crear una condición que tenga que ver con un Pin del microcontrolador, se
debe tener en cuenta las entradas del sistema o sea los pines del microcontrolador
que estarán configurados como entrada; para configurar pines del microcontrolador
como entrada, ir a la sección Configuraciones Generales de este manual.

Teniendo en cuenta lo anterior, para establecer la condición se debe elegir el pin


que se va a condicionar del combo de la izquierda.

Luego establecer en el otro combo 1 o 0, según se necesite la condición, 1 si se


quiere preguntar si el pin esta activado o cero si se desea preguntar si esta
desactivado.

131
Para crear una condición con expresión lógica, dar clic en el botón opcional al lado
izquierdo de la palabra Variables, luego hay que establecer la expresión, para este
caso se mostrará como ejemplo la expresión b=a

Como primer paso establecer la variable “b” en el primer combo de la izquierda.

Como segundo paso establecer el tipo de operación, para este caso es “=”,
seleccionar este signo del combo de la derecha.

132
Como tercer paso debemos establecer la variable “a”, para lo cual damos clic en el
cuadro opción de abajo, al lado izquierdo donde dice variable, luego se selecciona
del combo la variable “a”.

Como último paso se comprueba la condición, dar clic en el botón Comprobar y la


condición aparecerá en el espacio de arriba, si la condición es correcta dar clic en el
botón Aceptar, de lo contrario repetir el paso que sea necesario.

133
Para cambiar la condición a b>3, se deben cambiar la operación y dar clic en el
punto opción que se encuentra al lado izquierdo de la palabra Valor.

Insertar una Salida

La figura Salida es la representación gráfica de la activación de uno o varios pines


del microcontrolador.

Salid
a

134
Las salidas son los pines activados o desactivados en distintos momentos del
programa, debido a que esa es la función principal de un microcontrolador, controlar
las salidas de cada uno de sus pines o patas comúnmente llamadas.

Para establecer los pines activados o desactivados en un momento del programa,


seleccionamos la figura y el panel de propiedades chequeamos dando un clic sobre
cada cuadro que deseemos, cada cuadro representa a cada uno de los pines del
microcontrolador.

Al seleccionar un cuadro, estaremos estableciendo a un estado activo el pin


correspondiente.

Nota: Tomar muy en cuenta, un microcontrolador tiene dos puertos A y B, si el


cuadro que está en la parte inferior no se encuentra chequeado, el puerto
correspondiente se tomara como desactivado, por lo tanto los pines que
correspondan a ese puerto quedaran en estado desactivado.

135
Simular un Programa

Para simular un programa lo único que debemos hacer es dar clic en el botón que
se muestra a continuación.

Inmediatamente aparecerá una ventana de simulación, en la cual se presenta un


botón de Play para simular el flujograma.

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.

Convertir un Programa a Código Ensamblador

Para convertir un diagrama a código ensamblador debemos dar clic en el botón


mostrado a continuación.

Durante el proceso aparecerá un cuadro de diálogo, que especifica la conversión de


dada figura. Terminado el proceso dar clic en el botón Cerrar.

136
Mostrar código Ensamblador

Para mostrar en pantalla el código ensamblador de un diagrama creado, dar clic en


el botón mostrado a continuación.

Inmediatamente aparecerá un block de notas mostrando el código ensamblador del


diagrama creado, explicando con breves comentarios cada bloque de código.

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

Grabar un Programa en Microcontrolador

Para grabar un microcontrolador es muy sencillo, solo se debe dar clic en el botón
mostrado a continuación.

Inmediatamente aparecerá una ventana en donde se dará clic en el botón Grabar.

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.

138
Ayuda de µFlux

Para acceder a la ayuda de µFlux, dar clic en la opción Ayuda y luego dar clic en la
opción Temas de Ayuda.

139

Das könnte Ihnen auch gefallen