Está en la página 1de 109

UNIVERSIDAD POLITCNICA SALESIANA

SEDE GUAYAQUIL
FACULTAD DE INGENIERAS

CARRERA: INGENIERA ELECTRNICA

PROYECTO FINAL PREVIA A LA OBTENCIN DEL TTULO DE:


INGENIERO EN ELECTRNICA

TEMA:
DISEO E IMPLEMENTACIN DE UN PROGRAMA EDUCATIVO PARA
AYUDAR AL ESTUDIANTE EN LA ENSEANZA DE LA
PROGRAMACIN BSICA EN UN AMBIENTE WINDOWS PARA EL USO
DE LOS MICROCONTROLADORES

AUTORES:
CRISSTOMO SALAZAR
MIGUEL RUBIO
WASHINGTON VELASCO

DIRECTOR:
ING. LUS CRDOVA RIVADENEIRA

Guayaquil, 30 de junio del 2007

AUTORA

Las ideas

y contenidos expuestos en el presente proyecto, son de exclusiva

responsabilidad de los autores y el patrimonio intelectual le pertenece a la


Universidad Politcnica Salesiana.

f.......................................................
Crisstomo Salazar Morn

f.......................................................
Miguel Rubio Bermudez

f.......................................................
Washington Velasco Timm

Guayaquil, 30 de junio de 2007

II

CERTIFICO:

Haber revisado el Proyecto Final de Titulacin, De los Sres. Miguel Rubio


Bermudez, Crisstomo Salazar Morn y Washington Velasco Timm, que se ajusta a
las normas establecidas por la Universidad Politcnica Salesiana Sede Guayaquil, por
tanto, autorizo su presentacin para los fines legales pertinentes.

.
Ing. Lus Crdova Rivadeneira
DIRECTOR DEL PROYECTO

Guayaquil, 30 de junio del 2007

III

ACTA DE SESIN DE DERECHOS DEL PROYECTO FINAL

Conste por el presente documento la cesin de los derechos del Proyecto Final de Titulacin,
de conformidad con las siguientes clusulas:
PRIMERA.- El ing. Lus Crdova R. por sus propios derechos, en calidad de Director de
Proyecto Final, Miguel Rubio B., Crisstomo Salazar M. y Washington Velasco T. por sus
propios derechos, en calidad de autores de Proyecto Final.
SEGUNDA.UNO.- Los Srs. Miguel Rubio B., Crisstomo Salazar M. y Washington Velasco T.,
realizaron El Proyecto Final titulado Diseo e implementacin de un programa
educativo para ayudar al estudiante en la enseanza de la programacin bsica en un
ambiente Windows para el uso de los microcontroladores, para optar por el Ttulo de
Ingeniero en Electrnica, especialidad Sistemas Industriales en la Universidad Politcnica
Salesiana Sede Guayaquil.
DOS.- Es poltica de la Universidad que el Proyecto Final se apliquen y materialicen en
beneficio de la comunidad.
TERCERA.- Los comparecientes Ing. Lus Crdova R., en calidad de Director de Proyecto
Final, los Sres. Miguel Rubio B., Crisstomo Salazar M. y Washington Velasco T., como
autores, por medio del presente instrumento, tiene a bien ceder en forma gratuita sus
derechos en el Proyecto Final titulado Aplicacin de Lenguaje C para microcontroladores
PIC y Visual C# en el desarrollo de un Sistema de Control de Acceso Peatonal, a favor de
la Universidad Politcnica Salesiana: y, conceden autorizacin para que la Universidad
pueda utilizar el proyecto en su beneficio y/o de la comunidad, sin reserva alguna.
CUARTA.- Aceptacin.- Las partes declaran que aceptan expresamente todo lo estipulado
en la presente cesin de derecho.
Para constancia suscriben la presente cesin de derechos, en la ciudad de Guayaquil, a los
diecisis das de mes de Abril del ao dos mil siete.

---------------------------------------Ing. Lus Crdova Rivadeneira


DIRECTOR DE PROYECTO FINAL

-------------------------------------Miguel Rubio Bermudez


AUTOR

------------------------------------Crisstomo Salazar Morn


AUTOR

__________________________
Washington Velasco Timm
AUTOR

IV

D E D I C A T O R I A

Este trabajo esta dedicado a mis padres que


siempre estn apoyndome en cada proyecto que
emprendo y a mi to Gregorio Morn que me
demostr que sin importar los obstculos que te
ponga la vida uno siempre puede seguir adelante.
Crisstomo

Quiero agradecer primeramente a Dios quien


me di las fuerzas y la sabidura para lograr
una de mis principales metas, a mis padres
quienes me ayudaron en los momentos ms
duros y me dieron la gran oportunidad de
superacin personal y profesional, a mis
hermanos Leonela y Joel, que me a brindaron
todo su apoyo moral

sin los cuales no

hubiese podido culminar mi carrera a cada


uno de los profesores que me impartieron sus
conocimientos.
Luis Miguel

Este trabajo va dedicado primeramente a Dios por


haberme llenado de mucha fuerza, paciencia y
perseverancia,

mi

querida

hija

quien estuvo siempre a mi lado con su paciencia y


estmulo y quien fu mi mas grande inspiracin en
toda mi vida estudiantil, a mis padres por su
constante empuje y apoyo en todo momento y a
mis hermanos siendo un ejemplo para ellos

Washington.
V

A G R A D E C I M I E N T O

A la Universidad Politcnica Salesiana sede Guayaquil,


que nos permiti formarnos como profesionales, crecer
como personas, y obtener un Ttulo Acadmico. De
manera muy especial al Ingeniero Lus Crdova, por su
total colaboracin en este trabajo, al Ing. Ral lvarez
G., al Ing. Nino Vega y al Ing. Pablo Parra que gracias
a su intervencin se logr una exitosa culminacin.
Adems nuestra gratitud sincera para aquellas personas
que de una u otra manera ayudaron en el desarrollo del
presente trabajo.

Miguel Rubio Bermudez


Crisstomo Salazar Morn
Washington Velasco Timm

VI

CONTENIDO

PORTADA
AUTORA
CERTIFICACIN
ACTA DE SESIN DE DERECHOS
DEDICATORIA
AGRADECIMIENTO
NDICE GENERAL
NDICE DE FIGURAS
RESUMEN
1.- INTRODUCCIN
2.- DESCRIPCIN DE LOS MICROCONTROLADORES
3.- DESCRIPCIN DEL PROGRAMA
CONCLUCIONES Y FUTUROS TRABAJOS
BIBLIOGRAFA
APNDICES
VOCABULARIO TCNICO

VII

NDICE GENERAL
Portada

Autora

II

Certificacin

III

Acta de sesin de derechos

IV

Dedicatoria

Agradecimiento

VI

Contenido

VII

Resumen

Captulo 1. Introduccin
1.1 Introduccin

1.2 Objetivos

1.2.1 Objetivo general

1.2.2 Objetivos especficos

1.3 Alcance del proyecto

1.4 Delimitaciones y Limitaciones

1.5 Planteamiento de problema

1.6 Justificacin del Tema

1.7 Metodologa

Captulo 2. Descripcin de los microcontroladores


2.1 Introduccin

2.2 Concepto

2.3 El pasado y presente de los microcontroladores

10

2.4 El futuro de los microcontroladores

12

2.5 Microcontroladores programables

12

2.6 Clasificacin de los microcontroladores

14

2.6.1 Tamao de los datos

15

2.6.2 Arquitectura bsica

15

2.6.3 Arquitectura del procesador o UCP

16

VIII

2.6.4 Arquitectura cerrada o abierta

17

2.6.5 Tipo de memoria de programa

17

2.7 Prestaciones y recursos especiales

19

2.8 Nuestro proyecto, especificaciones de los PIC16Fxx

22

2.8.1 Caractersticas relevantes

23

2.8.2 Diagrama de bloques

24

2.8.3 Diagrama de lgico

25

2.8.4 Programacin de los PIC

25

Captulo 3. Descripcin del programa


3.1 Elaboracin del programa

28

3.2 Estructura del programa

29

3.3 Ambiente grfico del programa

30

3.4 Implementacin del programa

38

3.5 Parametrizacin del programa

50

3.5.1 Declaracin y configuracin del Teclado

50

3.5.2 Declaracin y configuracin del LCD

50

3.5.3 Declaracin de Registros

51

3.6 Utilizacin del programa

51

3.7 Listado de componentes

52

Conclusiones y futuros trabajos

58

Bibliografa

61

Apndice A. Manual del Usuario

62

Apndice B. Prcticas realizadas

78

Apndice C. Listado de componentes

95

Apndice D. Anlisis de costo

98

Vocabulario Tcnico

101

IX

NDICE DE FIGURAS
Captulo I

Captulo II
2.1 Tamao de un microcontrolador

11

2.2 Estructura tpica de un microcontrolador

13

2.3 EPROM

19

2.4 ROM, OTP o EEPROM

19

2.5 Diagrama de bloques de los microcontroladores PIC16F8X

24

2.6 Diagrama lgico para los microcontroladores PIC16Fx

25

Captulo III
3.1 Programa principal

28

3.2 Estructura del programa

29

3.3 Diagrama de bloques

30

3.4 Pantalla frmCond

31

3.5 Pantalla frmCond2

31

3.6 Pantalla frmDefLCD

32

3.7 Pantalla frmDefTeclado

32

3.8 Pantalla frmDisplay

32

3.9 Pantalla frmLCD

33

3.10 Pantalla frmLCDBit

33

3.11 Pantalla frmdefTecla

33

3.12 Pantalla frmRegistro

34

3.13 Pantalla frmSalida

34

3.14 Pantalla frmTeclado

34

3.15 Pantalla frmTiempo

35

3.16 Pantalla frmTrans1

35

3.17 Pantalla frmTrans2

35

3.18 Image

36

3.19 Texbox

36

3.20 ComboBox

36

3.21 Listbox

36

3.22 Etiqueta

37

3.23 Frame

37

3.24 Botones

37

3.25 Men de Persianas

37

3.26 Programa para encendido del Motor

40

3.27 Pantalla de Dispositivo de Entrada

41

3.28 Definicin del Teclado

50

3.29 Definicin del LCD

51

3.30 Ingreso de Registro

51

3.31 Dispositivos de Entrada

53

3.32 Dispositivos de Salida

53

3.33 Teclado Matricial

53

3.34 LCD

53

3.35 LCD muestra Bit

54

3.36 Display

54

3.37 Comparador AND

54

3.38 Comparador AND Negado

54

3.39 Comparador Mayor que

55

3.40 Comparador Menor que

55

3.41 RS232 Transmisin

55

3.42 RS232 Recepcin

55

3.43 I2C Transmisin

56

3.44 I2C Recepcin

56

3.45 Temporizador

56

3.46 Transferencia al registro W

56

3.47 Transferencia al registro deseado

57

3.47 Borrador

57

3.48 Lnea

57

XI

RESUMEN

El uso de los microcontroladores hoy en da es tan importante ya que su avance


tecnolgico ha crecido en todas las aplicaciones donde exista un componente
electrnico, teniendo una variedad y gran cantidad de aplicaciones que es difcil de
imaginar el mundo actual sin esta herramienta. Su estudio bien vale la pena, ya que
en la mayora de sus aplicaciones es la columna vertebral y sin ella no existira una
evolucin para el desarrollo de las mismas.

Dado que unos de los principales usos de estos microcontroladores es la reduccin


total y simplificacin de los diseos de electrnica tanto en su construccin como el
uso de sus aplicaciones, donde encontraremos desde lo ms sencillo que es un
encendido y apagado de luces o equipos hasta la interpretacin de seales analgicas
y digitales procesando las mismas para la realizacin de procesos que incluyen
interaccin con otros dispositivos.

Como hemos notado en la materia de microcontroladores, el tener una herramienta


que proporcione ayuda para la programacin del cdigo ensamblador es de mucha
utilidad simplificando el trabajo y mejorando el entendimiento de la materia para el
desarrollo de prcticas de laboratorio y proyectos volvindose muy valioso para estos
tiempos competitivos.

El presente proyecto de tesis trata sobre el diseo e implementacin de un software


educativo para la generacin del cdigo ensamblador siendo utilizado para
programacin de los microcontroladores. Este proyecto es un apoyo didctico en el
aula de clases, apoyo en casa para resolucin de tareas o preparacin de exmenes,
laboratorios o tambin como gua de referencia para aquellos estudiantes que
requieran conocer el desarrollo del cdigo ensamblador y su estructura.

El objetivo de este programa es proporcionar al estudiante una herramienta en la cual


se permita realizar el cdigo ensamblador en un entorno 100% grfico de fcil
entendimiento, manejo y uso, sin someternos al aprendizaje de una gran cantidad de
comandos y conocimientos de programacin para la realizacin del mismo trabajo,
optimizando el tiempo y mejorando el entendimiento de la materia
XII

Este programa est basado en un lenguaje de programacin muy sencillo, totalmente


amigable, intuitivo y fcil de trabajar, utilizando estructuras, funciones y libreras
muy conocidas siendo de fcil entendimiento para las personas que tengan
conocimientos de programacin y deseen mejorar o realizar ms funciones para el
crecimiento de nuestro proyecto.

El desarrollo de esta tesis est basado en la investigacin de diferentes programas


similares tomando como referencia principal los programas utilizados para la
programacin de los PLC (microWin32) como su estructura para la generacin del
cdigo ensamblador y algunos juegos donde podamos observar el arrastre y
colocacin de objetos para su entorno de visualizacin y ejecucin del programa. As
mismo para la generacin del cdigo ensamblador se investig mucho las funciones
de los manejo y trato de archivos, este programa guarda dos tipos de archivos: el
archivo con extensin *.cri que son los programas que se realizan en el traductor y
los archivos *.asm que son los archivos finales para la programacin de los
microcontroladores.

Es muy importante dar a entender que este programa es de uso solo educativo,
sirviendo de ayuda muy bsica y de consulta tanto a los profesores como a los
estudiantes de la materia de microcontroladores dando la oportunidad para el
mejoramiento y crecimiento del mismo. Al final de este documento encontrar un
manual detallado y el cdigo fuente del mismo.

XIII

CAPTULO 1
INTRODUCCIN

1.1 Introduccin

A medida que la electrnica va avanzando as como sus dispositivos, nos hemos


encontrados con un sin nmero de facilidades en la construccin de proyectos y
prototipos

electrnicos

utilizando

la

micro-electrnica,

disminuyendo

su

construccin con dispositivos que abarcan toda una infraestructura interna, con la
capacidad de reaccionar a todo tipos de eventos con una sola programacin de sus
entradas y salidas.

Estos dispositivos son llamados microcontroladores que facilitan el desarrollo de


proyectos e inclusive realizar prototipos muy avanzados y complejos con pocos
elementos de hardware.

El

desarrollo

de

estos

proyectos

con

los

microcontroladores

se

basa

fundamentalmente en su programacin interna, ya que de esta depende mucho del


funcionamiento para la cual se est realizando dicho proyecto.

Al comenzar en el estudio de los microcontroladores nos vemos obligado al anlisis


de su estructura interna, tipos y funcionamiento para poder entender la programacin
de estos dispositivos, siendo su arquitectura muy compleja y abstracta para el
estudiante, esto dificulta en algunas ocasiones la programacin de la misma, ya que
se lo realiza a bajo nivel (lnea de comando) en un entorno no amigable y bastante
tedioso.

La idea principal de este proyecto es la de realizar un programa en ambiente grfico


y muy intuitivo para la programacin de los microcontroladores, donde slo se
necesite un poco de conocimiento de su arquitectura y conocimientos bsico de
programacin, facilitando al estudiante la enseanza de la programacin de los
microcontroladores para la realizacin de sus proyectos.

Esta es una herramienta muy bsica que indica un apoyo didctico tanto para el
alumno como al profesor, ayudando a la enseanza del estudio del microcontrolador
y el desarrollo de proyectos con estos dispositivos.

En el primer captulo de esta tesis se encuentra la propuesta formal de este proyecto,


es decir los objetivos, alcances del proyecto, delimitaciones y limitaciones,
planteamiento del problema as como su justificacin.

En

el

segundo

captulo

encontraremos

una

breve

descripcin

de

los

microcontroladores su estructura interna, tipos y usos, as como su funcionamiento y


forma de programacin, cabe mencionar que este proyecto de tesis no se hace un
anlisis formal de estos dispositivos si no ms bien de cmo programarlos
basndonos en la familia de los PIC16F8xx, por lo tanto la descripcin del
funcionamiento no se hace un anlisis paso a paso y nicamente se muestra como
conocimiento necesario y bsico para el desarrollos de proyectos y fueron extrados
de varios documentos encontrados en el Internet.

El captulo 3 est conformado por 3 partes muy importantes: la primera muestra el


como fue hecho el programa, es decir un esquema muy general del programa y una
pequea descripcin de su funcionamiento. La segunda parte contiene la estructura
del programa, muestra un diagrama en bloques que ensea la manera de cmo est
organizadas las diferentes partes del programa final. Y por ltimo la tercera parte
tenemos las caractersticas finales con la que se cuenta esta primera versin del
programa, utilizacin y funcionamiento del mismo. Todo este material est apoyado
con imgenes que fueron tomadas con el programa funcionando.

En la ltima parte encontramos las conclusiones en las que se describe que problema
se quera resolver, que problemas se presentaron para resolverlos, logros que se
obtuvieron con este proyecto de tesis, conclusiones generales y por ltimo que es lo
que se deja como trabajo futuro.

En el apndice A podemos encontraremos el manual del usuario, donde se encuentra


toda la informacin til acerca del manejo de este programa, los valores que pueden
ser ingresados, cmo evitar errores, gua de instalacin y una lista de errores
2

posibles, causa y soluciones del mismo. Esta gua est debidamente ilustrada y se
describe la manera de realizar diseos con aplicaciones reales.

En el apndice B podremos encontrar prcticas realizadas en la materia de


microcontroladores utilizando este programa confirmando su eficacia y sencillez a la
realizacin de dichos trabajos.

El apndice C detallaremos todo los componentes utilizados para dichas prcticas,


as como diagramas esquemticos y las simulaciones desarrolladas en PROTEUS.

En el ltimo apartado de esta tesis encontraremos un vocabulario general, la


bibliografa y referencias que fueron utilizadas y consultadas para el desarrollo de la
misma.

1.2 Objetivos

1.2.1 Objetivo general

Ayudar al estudiante a desarrollar destrezas y conocimientos para la


programacin de los microcontroladores, de una forma intuitiva y en un
ambiente grfico, facilitando el desarrollo y aprendizaje en la elaboracin de
los proyectos con el uso de los microcontroladores.

1.2.2 Objetivos especficos


Desarrollar un ambiente visual, fcil de usar y de entender para la
programacin de los microcontroladores.
Dar a conocer una alternativa para el desarrollo de proyectos de la
materia de microcontroladores
Motivar al estudiante para que pueda desarrollar ms proyectos y de
forma rpida con este programa.

Ensear de una mejor manera la estructura de programacin de los


microcontroladores.

1.3 Alcance del proyecto

El desarrollo de est programa abarcar las siguientes caractersticas:


Entorno completamente grfico.
Programacin sencilla (tipo escalera) utilizados en otras materias en la
programacin de PLC.
Elaboracin de ejemplos para el fcil entendimiento.
Utilizacin de componentes ms comunes a la elaboracin de los proyectos.
Facilidad de uso e instalacin

1.4 Delimitaciones y limitaciones

Este proyecto implementar un programa que permita el desarrollo de:

Uso de la programacin en escalera.

Visualiza la programacin para obtener una gua de lo que se est


haciendo.

Cdigo fuente y archivo .ASM

No realiza simulaciones.

No realiza los archivos .HEX

La cantidad de bloques para programar es de 24, pudiendo ser


aumentado de acuerdo al requerimiento y a la disponibilidad de
memoria.

Este proyecto est limitado al uso del PIC 16F870, pero no existe
impedimento para agregarle ms PICs

Para la programacin es necesaria la parametrizacin de las direcciones e


interrupciones y as mismo definir los puertos de entrada y salida, el resto de
configuracin lo realiza automticamente el programa.

1.5 Planteamiento del problema

Como hemos visto el uso de los microcontroladores es cada vez ms frecuente para
todo tipo de proyecto electrnico ya que son fciles de usar e implementar, la nica
problemtica es su sistema de programacin de bajo nivel y por su estructura de
programacin se hace complejo al estudiante un buen entendimiento del mismo.

La idea principal del desarrollo de este proyecto es la de poder ayudar al estudiante el


realizar un programa en ambiente grfico fcil de usar y comprender la estructura de
programacin para los microcontroladores y as mismo de una forma rpida, fcil y
ordenada utilizando mtodos de programacin ya vistos por otros productos (mtodo
de escalera o en bloques) tales como el microwin o el logo de siemens.

El desarrollo de este programa permitir que el estudiante pueda entender por etapas
la estructura de programacin y como se desarrolla el mismo para lograr entender el
funcionamiento total del uso de los microcontroladores.

1.6 Justificacin del tema

Es muy comn ver a los estudiantes de la materia de microcontroladores sin ideas


para el desarrollo de los proyectos, ya que al realizarlos en la etapa de programacin
se encuentra que su estructura es bastante compleja y as mismo bastante difcil de
realizarla.

La idea de este proyecto es enfocar al estudiante al estudio de los microcontroladores


de una manera ms sencilla en el desarrollo de la programacin e inclusive sin
nociones de la misma, ya que su estructura es muy sencilla (escalera y bloque) ya
conocida por otras materias o programas similares de programacin para PLC.

1.7 Metodologa

Para la realizacin de este proyecto se concretar en los siguientes puntos:


Recopilacin de datos: recolectar datos sobre los diferentes mtodos de
programacin y estructuras para un mejor desarrollo y de fcil entendimiento.
Investigacin sobre los esquemas de trabajo.
Internet: bsqueda de informacin a travs de Internet.
Anlisis de la factibilidad tcnica: el cual podemos seleccionar el mejor
lenguaje de programacin para el desarrollo del programa.
Entrevistas: con personas entendidas del tema.
Bsqueda de errores y falencia del programa.
Revisin de cada de cada parte del proyecto llevndolo de una forma
ordenada y simple.
Elaboracin de la documentacin: Manual del usuario y prcticas de ejemplo.

CAPITULO 2
DESCRIPCIN DE LOS MICROCONTROLADORES

2.1 Introduccin

Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro


trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar
controlando el funcionamiento de los ratones y teclados de los computadores, en los
telfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la
invasin acaba de comenzar y el nacimiento del siglo XXI ser testigo de la
conquista masiva de estos diminutos computadores, que gobernarn la mayor parte
de los aparatos que fabricaremos y usamos los humanos.

2.2 Concepto

Recibe el nombre de controlador, el dispositivo que se emplea para el gobierno de


uno o varios procesos. Aunque el concepto de controlador ha permanecido invariable
a travs de los tiempos, su implementacin fsica ha variado frecuentemente. Hace
tres dcadas, los controladores se construan exclusivamente con componentes de
lgica discreta; posteriormente se emplearon los microprocesadores, que se rodeaban
con chips de memoria y E/S sobre una tarjeta de circuito impreso.

En la dcada de los 70, los fabricantes de circuitos integrados iniciaron la difusin de


un nuevo circuito para control, medicin e instrumentacin al que llamaron
microcomputador en un slo chip o de manera ms exacta microcontrolador.

Un microcontrolador es un circuito integrado programable que contiene todos los


componentes de un computador aunque de limitadas prestaciones. Se emplea para
controlar el funcionamiento de una tarea determinada y, debido a su reducido
tamao, suele ir incorporado en el propio dispositivo al que gobierna. Esta ltima
caracterstica es la que le confiere la denominacin de controlador incrustado
(Embedded controller).

El microcontrolador es un dispositivo dedicado. En su memoria slo reside un


programa destinado a gobernar una aplicacin determinada; sus lneas de
entrada/salida soportan el conexionado de sensores y actuadores del dispositivo a
controlar y todos los recursos complementarios disponibles tienen como nica
finalidad atender sus requerimientos. Una vez programado y configurado el
microcontrolador solamente sirve para gobernar la tarea asignada.

2.3 El pasado y el presente de los microcontroladores.

El microcontrolador es uno de los logros ms sobresalientes del siglo XX. Hace un


cuarto de siglo tal afirmacin habra parecido absurda. Pero cada ao, el
microcontrolador se acerca ms al centro de nuestras vidas, forjndose un sitio en el
ncleo de una mquina tras otra. Su presencia ha comenzado a cambiar la forma en
que percibimos el mundo e incluso a nosotros mismos. Cada vez se hace ms difcil
pasar por alto el microcontrolador como otro simple producto en una larga lnea de
innovaciones tecnolgicas.

Ninguna otra invencin en la historia se ha diseminado tan aprisa por todo el mundo
o ha tocado tan profundamente tantos aspectos de la existencia humana. Hoy existen
casi 15,000 millones de microchips de alguna clase en uso. De cara a esa realidad,
Quin puede dudar que el microcontrolador no slo est transformando los
productos que usamos, sino tambin nuestra forma de vivir y, por ltimo, la forma en
que percibimos la realidad?

Desde luego, ste es el milagro. Decenas de miles de microcontroladores se integran


todos los das en las plantas de manufactura ms avanzadas jams conocidas, donde
un simple grnulo de polvo puede significar el desastre, donde los procesadores
ocurren en ambientes ms limpios que ningn otro sitio en la tierra. Incluso el agua
que utiliza para enjuagar las superficies de los chips terminados es ms pura que la
que se utiliza en la ciruga a corazn abierto.

Y no obstante, pese a un proceso de manufactura extraordinariamente refinado, los


microchips se producen a razn de ms de 1.000 millones de unidades por ao. Para
poner esta complejidad en perspectiva, imagine que dentro de cada microcontrolador
2

diminuto existe una estructura tan compleja como una ciudad de tamao mediano,
incluidas todas sus lneas de energa elctrica, lneas telefnicas, lneas de drenaje,
edificios, calles y casas. Ahora imagine que en esa misma ciudad, millones de
personas se desplazan a la velocidad de la luz y con la sincronizacin perfecta en una
danza de coreografa muy complicada. Y eso es tan slo un chip.

En la Fig. 2.1 se puede observar el diminuto tamao de un microcontrolador


comparado con una aguja:

Fig. 2.1

De todas las estadsticas asombrosas que se utilizan para describir el mundo del
microcontrolador, ninguna es ms extraordinaria que sta: el nmero total de
transistores que integran todos los microchips que se producirn en el mundo este
ao es equivalente al nmero de gotas de lluvia que caern en California durante ese
mismo periodo.

Pero el microcontrolador ya ha eclipsado hasta a la Revolucin Industrial.


Evolucionando a mayor velocidad que ningn otro invento en la historia, la
capacidad del microcontrolador ha aumentado 10.000 veces en los ltimos 25 aos.

El mayor atributo del microcontrolador es que puede integrar inteligencia casi a


cualquier artefacto. Se le puede entrenar para adaptarse a su entorno, responder a

condiciones cambiantes y volverse ms eficiente y que responda a las necesidades


nicas de sus usuarios.

2.4 El futuro de los microcontroladores.

Lo que es notable, y quiz un poco atemorizante, es que por todos los indicios,
estamos tan slo a la mitad de la historia del microcontrolador. No es muy
aventurado sugerir que la humanidad tardar otro siglo en comprender todas las
implicaciones de esta revolucin. Por lo tanto, todos los milagros de que somos
testigos hoy como resultado del microcontrolador, podran ser una pequea fraccin
de todas las maravillas que obtendremos de este dispositivo en este nuevo siglo.

El nmero de productos que funcionan en base a uno o varios microcontroladores


aumenta de forma exponencial. No es aventurado pronosticar que en el siglo XXI
habr pocos elementos que carezcan de microcontrolador.

2.5 Microcontroladores programables.

Un microcontrolador contiene toda la estructura (arquitectura) de un sencillo pero


completo computador contenidos en el corazn (chip) de un circuito integrado. Los
resultados de tipo prctico, que pueden lograrse a partir de estos elementos, son
sorprendentes.

Se trata de un circuito integrado de alta escala de integracin que incorpora la mayor


parte de los elementos que configuran un controlador. Se dice que es la solucin en
un chip porque su reducido tamao minimiza el nmero de componentes y el coste.

Los componentes de los que dispone normalmente un microcontrolador son:

Procesador o UCP (Unidad central de proceso).

Memoria RAM para contener los datos.

Memoria para el programa tipo ROM/PROM/EPROM.

Lneas de E/S para comunicarse con el exterior.

Diversos mdulos para el control de perifricos (Temporizadores,


puertas serie y paralelo, CAD, etc.)

Generador de impulsos de reloj que sincronizan el funcionamiento de


todo el sistema.

Fig. 2.2. Estructura tpica de un microcontrolador.

Segn el modelo de microcontrolador que se trate, el tamao y el tipo de memoria


pueden diferir, as como el nmero de lneas de E/S y los mdulos de control de
perifricos. La diversificacin de modelos, permite seleccionar el ms adecuado
segn la aplicacin de que se trate. Una estructura interna fija supone una limitacin,
que se convierte en una ventaja en el caso de que en un simple circuito integrado
residan todos los componentes que necesita el controlador.

La nica limitacin que tienen las aplicaciones de los microcontroladores actuales


est en la imaginacin del diseador ya que se pueden realizar cualquier tipo de
proyectos electrnicos, desde un simple prendido y apagado de luces hasta equipos
de medicin o control. Los campos ms destacados en los que se emplean
microcontroladores son los siguientes:

Automatizacin industrial.

Medida y control de procesos.


5

Enseanza e investigacin.

Perifricos y dispositivos auxiliares de las computadoras.

Electrodomsticos.

Aparatos porttiles y de bolsillo.

Mquinas expendedoras y juguetera.

Instrumentacin.

Industria de la automocin.

Electromedicina.

Robtica.

Sistemas de navegacin.

Sistemas de seguridad y alarma.

Domtica.

Termorregulacin.

Los productos que para su regulacin incorporan un microcontrolador, disponen de


las siguientes ventajas:

Aumento de prestaciones.

Aumento de la fiabilidad.

Reduccin del tamao en el producto acabado.

Menor consumo de energa.

Mayor flexibilidad.

Reduccin del precio del producto acabado.

2.6 Clasificacin de los microcontroladores.

Teniendo en cuenta que existen ms de 50 fabricantes de microcontroladores en el


mundo, la clasificacin de los microcontroladores parece realmente difcil, ya que
puede hacerse de infinidad de formas, atendiendo a multitud de criterios.

2.6.1 Tamao de los datos.

Segn el tamao de los datos que procesa el microcontrolador se puede


distinguir entre:

Microcontroladores de 4 bits.

Microcontroladores de 8 bits.

Microcontroladores de 16 bits.

Microcontroladores de 32 bits.

Microcontroladores de 64 bits.

El ms representativo de esta clasificacin es el microcontrolador de 8 bits


porque resulta el ms flexible y eficaz para la mayora de los diseos tpicos.
Aunque en los ltimos aos, los microcontroladores de 16 bits est aumentada
significativamente su cuota de mercado.

2.6.2 Arquitectura bsica.

Segn la arquitectura interna de la memoria del microcontrolador se puede


distinguir entre:

Microcontroladores con arquitectura Von Neumann.

Microcontroladores con arquitectura Harvard.

Inicialmente, todos los microcontroladores adoptaron la arquitectura clsica de


Von Neumann. Actualmente, muchos microcontroladores utilizan esta
arquitectura, pero poco a poco se impone la arquitectura Harvard.

La arquitectura de Von Neumann se caracteriza por disponer de una sola


memoria principal donde se almacenan datos e instrucciones de forma
indistinta. A dicha memoria se accede por un sistema de buses nico
(direcciones, datos y control). Esta arquitectura presenta algunos problemas
cuando se demanda rapidez.

La arquitectura Harvard dispone de dos memorias independientes; una, que


contiene

slo instrucciones y otra, slo datos. Ambas, disponen de sus

respectivos sistemas de buses de acceso y es posible realizar operaciones de


acceso (lectura o escritura) simultneamente en ambas memorias. Esta
estructura no modifica nada desde el punto de vista del usuario y la velocidad
de ejecucin de los programas es impresionante.

2.6.3 Arquitectura del procesador o UCP.

Segn la filosofa de la arquitectura del procesador se puede distinguir entre:

Microcontroladores CISC.

Microcontroladores RISC.

Microcontroladores SISC.

Un microcontrolador basado en la filosofa CISC (Computadores de Juego de


Instrucciones Complejo) dispone de ms de 80 instrucciones mquina en su
repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo
muchos ciclos para su ejecucin.

Una ventaja de los procesadores CISC es que ofrecen al programador


instrucciones complejas que acta como macros.

Tanto la industria de los computadores comerciales como los de los


microcontroladores estn decantndose hacia la filosofa RISC (Computadores
de Juego de Instrucciones Reducido). En estos procesadores el repertorio de
instrucciones mquina es muy reducido y las instrucciones son simples y,
generalmente, se ejecuta en un solo ciclo.

La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el


software del procesador.

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


instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se
adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha
bautizado con el nombre de SISC (Computadores de Juego de Instrucciones
Especfico).

2.6.4 Arquitectura cerrada o abierta.

Entre los fabricantes de microcontroladores hay dos tendencias para resolver


las demandas de los usuarios.

Los microcontroladores con arquitectura cerrada poseen una determinada UCP,


cierta cantidad de memoria de datos, cierto tipo y capacidad de memoria de
instrucciones, un nmero de E/S y un conjunto de recursos auxiliares muy
concreto. El modelo no admite variaciones ni ampliaciones. La aplicacin a la
que se destina debe encontrar en su estructura todo lo que precisa, y en caso
contrario, hay que desecharlo.

Los microcontroladores con arquitectura abierta se caracterizan porque, adems


de poseer una estructura interna determinada, emplean sus lneas de E/S para
sacar al exterior los buses de datos, direcciones y control, con lo que se
posibilita la ampliacin de la memoria y las E/S con circuitos integrados
externos. Esta solucin se asemeja a la que emplean los clsicos
microprocesadores.

La lnea que separa unos de otros es muy delgada, pero el concepto de


microcontrolador se acerca posiblemente ms a la arquitectura cerrada.

2.6.5 Tipo de memoria de programa.

En los microcontroladores la memoria de instrucciones y datos est integrada


en el propio chip. Una parte debe ser no voltil, tipo ROM, que se destina a
contener el programa de instrucciones que gobierna la aplicacin. Otra parte de
9

memoria debe ser voltil, tipo RAM, y se destina a guardar las variables y los
datos.

Existen principalmente cinco versiones de memoria no voltil que se pueden


encontrar en los microcontroladores del mercado:

Memoria ROM con mscara.

Memoria OTP.

Memoria EPROM.

Memoria EEPROM.

Memoria FLASH.

La memoria ROM con mscara es no voltil y de slo lectura, cuyo contenido


se graba durante la fabricacin del chip. El elevado coste del diseo de la
mscara slo hace aconsejable el empleo de los microcontroladores con este
tipo de memoria cuando se precisan cantidades superiores a varios miles de
unidades.

La memoria OTP (One Time Programmable) es no voltil, de slo lectura y


programable una sola vez por el usuario. La grabacin se realiza mediante un
sencillo grabador controlado por un programa desde un PC.

La versin OTP es recomendable cuando es muy corto el ciclo de diseo del


producto, o bien, en la construccin de prototipos o serie muy pequeas.

Los microcontroladores que disponen de memoria EPROM (Erasable


Programmable Read Only Memory), pueden borrarse y grabarse muchas veces.
La grabacin se realiza, como en el caso de la memoria OTP. Si,
posteriormente, se desea borrar el contenido, disponen de una ventana de cristal
en su superficie por la que se somete a le EPROM a rayos ultravioleta durante
varios minutos.

10

Fig. 2.3

La memoria EEPROM (Electrical EPROM) es de slo lectura, programable y


borrable elctricamente. Tanto la programacin como el borrado, se realizan
elctricamente desde el propio grabador y bajo el control programado de un
PC, y puede hacerse con el microcontrolador instalado en el circuito. Es muy
cmoda y rpida la operacin de grabado y la de borrado.

Fig. 2.4

La memoria FLASH es no voltil, de bajo consumo y puede grabarse y borrarse


elctricamente. Funciona como una ROM y una RAM pero consume menos
energa y es ms pequea. La memoria FLASH tambin puede programarse en
circuito, adems, es ms rpida, tiene mayor densidad y tolera ms ciclos de
escritura/borrado que la EEPROM.

2.7 Prestaciones y recursos especiales.

Adems de las clasificaciones anteriores, se podran hacer otras dos clasificaciones


ms. Atendiendo a las prestaciones y atendiendo a los recursos especiales que pueden
tener los microcontroladores.

Respecto a las prestaciones cabe destacar:

Precio.

Velocidad de ejecucin de cdigo.


11

Eficiencia en la compactacin de cdigo.

Inmunidad al ruido.

Indudablemente, el precio es uno de los factores decisivos a la hora de emplear uno u


otro microcontrolador.

La velocidad de ejecucin del cdigo depende principalmente de la frecuencia de


funcionamiento del microcontrolador, pero tambin influyen otras caractersticas
como la arquitectura o el tipo de memoria empleada.

En lo que se refiere al nmero de palabras en la memoria que emplea cada


microcontrolador en contener un programa, esta depende sobre todo de la
arquitectura bsica y de la longitud de la palabra de datos.

La inmunidad al ruido, as como otras caractersticas especiales como rangos amplios


de temperaturas de funcionamiento, destacan sobre todo en microcontroladores
destinados al uso militar.

Los recursos especiales ms comunes que pueden poseer los microcontroladores son
los siguientes:

Temporizador y/o contador.

Perro guardin o Watchdog.

Proteccin ante el fallo de la alimentacin.

Estado de reposo o de bajo consumo.

Conversor analgico-digital (CAD).

Conversor digital-analgico (CDA).

Comparador analgico.

Modulador de anchura de impulsos o PWM.

Puertas de entrada y salidas digitales.

Puertas de comunicacin (USART, USB, SCI, etc.)

12

Los temporizadores se emplean para controlar periodos de tiempo, actuando como


temporizador, o para llevar la cuenta de acontecimientos que suceden en el exterior,
actuando como contador.

El perro guardin consiste en un temporizador que cuando se desborda provoca un


reset automticamente en el microcontrolador, para as evitar que el sistema se quede
colgado. Se debe disear el programa de tan modo que refresque o inicialice el
perro guardin antes de que provoque el reset.

La proteccin ante el fallo de la alimentacin consiste en un circuito que provoca un


reset al microcontrolador cuando el voltaje de alimentacin sea inferior a un voltaje
mnimo. Mientras el voltaje de alimentacin sea inferior al mnimo, el dispositivo se
mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho
valor.

Son abundantes las situaciones reales en las que el microcontrolador debe esperar,
sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de
nuevo en funcionamiento. Para ahorrar energa, factor clave en los aparatos
porttiles, los microcontrolador disponen de una instruccin especial que les pasa al
estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son
mnimos.

Los microcontrolador que incorporan un convertidor analgico-digital, pueden


procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de
un multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas
desde los terminales del circuito integrado.

El conversor digital-analgico transforma los datos digitales obtenidos del


procesamiento del microcontrolador, en su correspondiente seal analgica, que saca
al exterior por unos terminales de la cpsula. Existen muchos efectores que trabajan
con seales analgicas.

Algunos modelos de microcontrolador disponen internamente de un amplificador


operacional que acta como comparador analgico entre una seal de referencia fija
13

y otra variable que se aplica por una de los terminales de la cpsula. La salida de
comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor
que la otra.

El modulador de anchura de pulsos o PWM, es un circuito que proporciona en su


salida impulsos de anchura variable, que se ofrecen al exterior a travs de los
terminales del encapsulado.

Todos los microcontrolador destinan algunos de sus terminales a soportar lneas de


entrada y salida digitales. Por lo general, estas lneas se agrupan de ocho en ocho,
formando as lo que se conoce como puertas.

Con el objeto de dotar al microcontrolador de la capacidad de comunicarse con otros


dispositivos externos, otros buses de microcontrolador o microprocesadores, buses de
sistemas o buses de redes y poder adaptarlos con otros elementos y con otras normas
y protocolos, algunos microcontrolador disponen de puertas de comunicacin.
Destacan las conexiones serie UART y USART, las puertas paralelas, o el moderno
bus serie USB desarrollado para los PC.

2.8 Nuestro proyecto, especificaciones del PIC16F870

Para el desarrollo de nuestro proyecto y en vista que el aprendizaje desarrollado en la


materia de microcontroladores trabajaremos con los microcontroladores PIC de
Microchip Technology Inc. Estos combinan una gran calidad unida a un bajo coste y
un excelente rendimiento. Un gran nmero de estos microcontroladores se usan en
una gran cantidad de aplicaciones tan comunes como perifricos del ordenador, datos
de entrada automocin de datos, sistemas de seguridad y aplicaciones en el sector de
telecomunicaciones.

Existen multitud de sistemas de desarrollo amistosos como programadores,


emuladores, ensambladores, linkadores, etc.

14

2.8.1 Caractersticas relevantes.

Las caractersticas ms representativas de los PIC son las siguientes:

Arquitectura del procesador tipo Harvard.

Tcnica de segmentacin o pipe-line en la ejecucin de las


instrucciones.

El formato de todas las instrucciones tiene la misma longitud.

Procesador RISC (Computador de Juego de Instrucciones


Reducido).

Todas las instrucciones son ortogonales.

Arquitectura basada en banco de registros.

Diversidad de modelos de microcontroladores con prestaciones y


recursos diferentes.

Herramientas de soporte potentes y econmicas.

En el modelo de arquitectura Harvard la UCP se conecta de forma


independiente y con buses distintos con la memoria de instrucciones y con la de
datos, permitiendo acceder simultneamente a las dos memorias.

La segmentacin permite al procesador realizar al mismo tiempo la ejecucin


de una instruccin y la bsqueda del cdigo de la siguiente. De esta forma se
puede ejecutar cada instruccin en un ciclo (un ciclo de instruccin equivale a
cuatro ciclos de reloj).

Las instrucciones de salto ocupan dos ciclos de reloj al no conocer la direccin


de la siguiente instruccin hasta que no se haya completado la de bifurcacin.

Todas las instrucciones de los microcontroladores PIC tienen una misma


longitud, esta slo depende de la gama. Esta caracterstica es muy ventajosa en
la optimizacin de la memoria de instrucciones y facilita enormemente la
construccin de ensambladores y compiladores.

15

Las instrucciones ortogonales pueden manejar cualquier elemento de la


arquitectura como fuente o destino. Adems, todos los elementos del sistema
(puertas de E/S, temporizadores, posiciones de memoria, etc.) estn
implementados fsicamente como registros.

La empresa Microchip y otras que utilizan PIC ponen a disposicin de los


usuarios numerosas herramientas para desarrollar hardware y software. Son
muy abundantes los programadores, simuladores software, emuladores en
tiempo real, ensambladores, compiladores C y Basic, intrpretes, etc.

2.8.2 Diagrama de bloques

Fig. 2.5 Diagrama de bloques de los microcontroladores PIC16F870

16

2.8.3

Diagrama lgico

En la siguiente figura podemos encontrar en detalle las conexiones de pines de


los microcontroladores de la familia PIC16F8x para su configuracin en los
futuros proyectos

Fig. 2.6 Diagrama lgico para los microcontroladores PIC16Fx

2.8.4 Programacin de los PIC

El programa fuente esta compuesto por una sucesin de lneas de programa.


Cada lnea de programa esta compuesta por 4 campos separados por uno o ms
espacios o tabulaciones. Estos campos son:

[Etiqueta]

Comando

[Operando(s)]

[;Comentario]

La etiqueta es opcional. El comando puede ser un mnemnico del conjunto de


instrucciones. El operando esta asociado al comando, si no hay comando no
hay operando, e inclusive algunos comandos no llevan operando. El comentario
es opcional para el compilador aunque es buena prctica considerarlo
obligatorio para el programador.

La etiqueta, es el campo que empieza en la primera posicin de la lnea. No se


pueden insertar espacios o tabulaciones antes de la etiqueta sino ser
considerado comando. Identifica la lnea de programa haciendo que el
compilador le asigne un valor automticamente. Si se trata de una lnea cuyo

17

comando es una instruccin de programa del microcontrolador, se le asigna el


valor de la direccin de memoria correspondiente a dicha instruccin (location
counter). En otros casos se le asigna un valor de una constante, o la direccin
de una variable, o ser el nombre de un macroinstruccin, etc.

El comando puede ser un cdigo mnemnico de instruccin del


microcontrolador, o una directiva o pseudo instruccin para el compilador. En
el primer caso ser directamente traducido a cdigo de maquina, en el segundo
caso ser interpretado por el compilador y realizara alguna accin en tiempo de
compilacin como ser asignar un valor a una etiqueta, etc.

El campo de parmetros puede contener uno o ms parmetros separados por


comas. Los parmetros dependen de la instruccin o directiva. Pueden ser
nmeros o literales que representen constantes o direcciones.

El campo de comentario debe comenzar con un carcter punto y coma. No


necesita tener espacios o tabulaciones separndolo del campo anterior, e
incluso puede empezar en la primera posicin de la lnea. El compilador ignora
todo el texto que contenga la lnea despus de un carcter punto y coma. De
esta manera pueden incluirse lneas que contengan solo comentarios, y es muy
buena prctica hacer uso y abuso de esta posibilidad para que los programas
resulten auto-documentados.

A continuacin presentamos un ejemplo de un cdigo generado para la


realizacin de un proyecto donde podemos observar las diferentes partes del
desarrollo del programa para el cdigo fuente que ser programado en el
microcontrolador

;rutina de display dinmico de dos dgitos


#define BANK0 bcf STATUS,RP0
#define BANK1 bsf STATUS,RP0
Cont2

equ

0x0D

Dato1

equ

0x0E

Dato2

equ

0x0F

Del1

equ

0x10

18

Del2

equ

0x11

Display
BANK1
clrf TRISA

;puerto A como salida

clrf TRISB

;puerto B como salida

BANK0
movlw 0x03

;inhabilita transistores

movwf PORTA
;
movlw .10

;valor de repeticiones

movwf Cont2
LoopDisp
;
;Sacar al puerto el Dato 1 por un tiempo especfico
;
movf

Dato1,W

call Tabla

;Decodificacin del dato

movwf PORTB
bcf

PORTA,0

call

RetDig

bsf

PORTA,0

nop

;Dato para decodificar

;Dato decodificado a puerto


;Habilita Q dato 1
;Retardo de dgito
;Inhabilita Q dato 1

;Retardo de apagado

nop
nop
nop
;
;Sacar al puerto el Dato 2 por un tiempo especfico
;
movf

Dato2,W

call Tabla

;Decodificacin del dato

movwf PORTB
bcf

PORTA,1

call

RetDig

bsf

PORTA,1

nop

;Dato para decodificar

;Dato decodificado a puerto


;Habilita Q dato 2
;Retardo de dgito
;Inhabilita Q dato 2

;Retardo de apagado

nop
nop

19

CAPITULO 3
DESCRIPCIN DEL PROGRAMA

3.1 Elaboracin del programa

El programa es una serie de 15 formularios o ventanas que se abren o cierran segn


la opcin seleccionada, ligadas a un formulario principal, en el cual se ubicarn los
elementos de la barra de herramientas, de all se proceder a configurar cada uno de
los elementos insertados en la matriz principal 1. Tambin existe un men de
Configuracin en el cual se dispondrn de los elementos ms comunes, en los cuales
se podrn establecer los pines de entrada y salida de cada uno de los elementos
externos sean estos Teclados Matriciales o LCDs que se utilicen en el programa,
variables y definicin de la matriz de Teclado.

Fig. 3.1 Programa Principal

Para el desarrollo de este programa se necesit de 15 formularios en los cuales se


encuentran las diferentes opciones con las que cuenta el programa.

La matriz principal es el rea de trabajo donde se disea el programa a ser traducido

A continuacin se describen estas 15 ventanas:


1 Pantalla Principal.
4 Ventanas de Configuracin.
10 Ventanas Auxiliares que se usaran para mostrar mensajes en los LCDs
conectados, establecer condiciones, retardos, seleccin de teclados, transmisin de
datos.

3.2 Estructura del programa

Para el desarrollo de este proyecto se visualiz y se tom como ejemplo los otros
programas utilizados para la programacin de los PLC, ya que estos tienen una
misma estructura en su programacin, un solo formulario para la realizacin del
mismo y otros sub-formularios para la parametrizacin del programa (elementos o
condiciones del mismo).

Como se muestra en el cuadro adjunto (Fig. 3.2) podemos observar que su estructura
es de tipo rbol donde consta de un formulario principal FrmPrincipal, siendo este
formulario el que se encarga de llamar al resto de los sub-formulario para su
parametrizacin, y en donde se disea los programas que se van a traducir a cdigo
.ASM

Fig. 3.2 Estructura del Programa

El diagrama en bloques del programa se muestra a continuacin en la Fig. 3.3

Fig. 3.3 Diagrama de Bloques del Programa

3.3 Ambiente grfico del programa

Este programa ha sido diseado en un ambiente 100% grfico de tal manera que el
usuario pueda manejarlo fcilmente y sin ningn problema, pensado para que el
estudiante se adentre cada vez ms en esta novedosa herramienta de programacin y
diseo. As entonces cualquier estudiante podr hacer uso de este programa sin que
forzosamente tenga que aprender un sin nmeros de cdigo e inclusive el mismo
manual de este programa, ya que su fcil navegacin y uso lo llevar a entenderlo sin
ningn problema siempre y cuando el software est instalado debidamente en una
computadora con las caractersticas adecuadas. Para ver estos requisitos y la gua de
instalacin vea el manual de usuario en el apndice A.

El programa est desarrollado por 15 formularios en una estructura de tipo rbol,


llevados de la mano de un formulario principal donde se desarrolla el programa para
poder generar el cdigo .ASM.

A continuacin se detallan los Sub-formulario

frmCond.- En esta pantalla se ingresan los datos para realizar comparaciones


(definidas en el men principal) entre el registro W y los registros que se
seleccionen, tambin se da la opcin para que en lugar de registro se compare con
nmeros hexadecimales,

Fig. 3.4

frmCon2.- En esta pantalla se colocaran los datos necesarios para hacer funcionar
los contactos normalmente abiertos o cerrados en el cdigo ensamblador estara
representado por las instrucciones BTFSS y BTFSC.

Fig. 3.5

frmDefLCD.- Pantalla donde se asigna un puerto al LCD, tambin se pueden definir


hasta tres LCD en un slo programa.

Fig. 3.6

frmDefTeclado.- Pantalla donde se asigna un puerto al teclado matricial, tambin se


pueden definir hasta tres teclados matriciales en un slo programa.

Fig. 3.7

frmDisplay.- Esta pantalla sirve para seleccionar el puerto y escoger por cuales pines
se va a presentar el display BCD de 7 segmentos

Fig. 3.8

frmLCD.- Se ingresa el mensaje que se va a presentar en el LCD y se seleccionar el


LCD que desea que se muestre le mensaje si no se selecciona nada saldr por el LCD
que la mquina selecciona por defecto.

Fig. 3.9

frmLCDBit.- Esta pantalla sirve para indicar en que lnea, en que columna y en que
LCD se quiere que se presente el valor de W.

Fig. 3.10

frmdefTecla.- Se define el texto que va a salir cuando se presiona un botn del


teclado matricial.

Fig. 3.11

frmRegistro.- Se ingresan los registros que se van a ser utilizado en la creacin del
programa asm, por defecto ya se encuentran varios registros que estn dados por los
PIC tales como el PtoA, Ptob, Status, etc.

Fig. 3.12

frmSalida.- Se indica el bit del registro que se desea activar o desactivar.

Fig. 3.13

frmTeclado.- Se selecciona el nombre del teclado que se va a utilizar.

Fig. 3.14

frmTiempo.- Se ingresa el tiempo que se desea establecer como retardo.

Fig. 3.15

frmTrans1.- Transfiere un registro o un valor al registro w.

Fig. 3.16

frmTrans2.- Transfiere un registro o un valor a otro registr.

Fig. 3.17

Como podemos ver todas las interfaces interactan con el usuario y han sido
diseadas de tal forma que se pueda visualizar y navegar de una manera muy cmoda
y fcil ayudndonos de controles tales como:

Image.- Las Imgenes se usaron para representar las instrucciones del


cdigo ensamblador.

Fig. 3.18

Texbox.- Son cajas de texto utilizados para ingresar datos.

Fig. 3.19

ComboBox.- Son caja de texto con lista para seleccionar registros.

Fig. 3.20

Listbox.- Son lista de registros y se lo utiliza para visualizar los


registros

Fig. 3.21

Etiquetas.- Utilizados para la identificacin de los diferentes partes del


programa

Fig. 3.22

Frame.- sub-pantallas utilizados para agrupacin de elementos.

Fig. 3.23

Botones.- Utilizados para cumplir una funcin especifica.

Fig. 3.24

Mens de persianas.- Utilizados como men de acceso rpido.

Fig. 3.25

Entre otros elementos. De esta manera se evita que el programa se vuelva tedioso al
manejarlo como muchos otros de los antiguos programas cuya interfaz con el usuario
es mediante lneas de comandos adems que tiene un aspecto moderno y atractivo.

10

A pesar de ser un programa 100% grfico no requiere de mucha memoria y de


espacio en disco duro y puede ser copiado tranquilamente en un dispositivo de
almacenamiento como en CD o un drive USB.

3.4 Implementacin del programa

Debido a que es un programas 100% grfico se utiliz el programa de Microsoft


Visual Studio 6.0 por su gran versatilidad de su lenguaje de programacin y
flexibilidad de elaborar programas con ambientes grfico, adems de incluir
herramientas y libreras para el manejo de grficos y archivos. Adicionalmente se
usaron libreras que se usan para crear los cdigos ASM que son aquellos que se
cargan por separado.

Este programa esta conformado como ya se mencion por 15 formularios o


ventanas las cuales se solicita los datos con los que se generar el cdigo ASM. Este
traductor se diseo con la finalidad de ayudar al estudiante a realizar sus prcticas sin
la necesidad de aprender un cdigo tan complejo con es assembler.

Para generar los cdigos asm se lo realiza de la siguiente forma se establece el


problema a resolver es decir la prctica que se va realizar, una vez definido el
problema se procede a identificar los elementos que se van a utilizar para la prctica
estos pueden ser teclados matriciales, LCDs, display, contactos, etc

Se colocan los elementos en la matriz principal respetando el orden cronolgico que


van a seguir en la generacin de la prctica es decir si se quiere que presentar el
mensaje HOLA MUNDO en un LCD y despus de un determinado tiempo
presentar el masaje TRADUCTOR ASM se tiene que insertar en la matriz
principal el elemento que corresponde al LCD, seguido se coloca el elemento que
corresponda a retardo y por ltimo nuevamente el elemento que corresponda al LCD.
Los elementos se van colocando de derecha a izquierda y de arriba hacia abajo.

Las etiquetas de paso se utilizan para realizar saltos entre el programa, esto es muy
til en el caso de que se usen elementos de comparacin, donde el resultado de estas
comparaciones valida el trabajo de una serie de procesos, validando si el resultado es
11

afirmativo o negativo, un ejemplo de esto puede ser un botn de encendido, cuando


el botn se presiona empieza a correr un proceso y en caso de que no se presione
dicho botn el proceso se cicla quedando en espera a que sea presionado el botn de
encendido.

Colocados todos los elementos en la matriz principal se procede a configurar uno a


uno los elementos insertados, la configuracin de estos elementos se detalla en el
Apndice A. Configurado todos los elementos se corre el proceso de correccin que
es el que se ejecuta al momento de presionar el botn corrector. Este marcar todos
los elementos que puedan causar conflicto al momento de generar el cdigo
ensamblador estos errores tienen que ser corregidos antes de ir al siguiente paso que
es el de generacin de cdigo ensamblador.

El proceso de generacin de cdigo ensamblador es la columna vertebral del sistema


el cual ser explicado ms adelante con un pequeo ejemplo.

Por ltimo se procede a guardar el cdigo ensamblador en un archivo ASM y a


guardar el programa que se usa para generar este archivo ASM, que es el que el
usuario inserta en la matriz principal este programa se guarda en dos archivos uno de
extensin .cri que es donde est guardado los elementos y la informacin que posee
cada uno de ellos y otro de extensin .cnf donde se guardar la configuracin de los
puertos que usen el teclado, LCD y las variables globales que va a utilizar el
programa.

Para una mejor visualizacin del proceso de la elaboracin del cdigo asm, se
explicar en detalle con un ejemplo, mostrndonos de una manera ms tcnica cada
uno de sus pasos.

Problema: encender un motor presionando un botn y presentar un mensaje de


motor encendido y otro mensaje de motor apagado en caso que no est presionado el
botn.

Primero se definen los elementos:


1 Contacto que va servir como switch que indique cuando encender el motor.
12

1 Bobina que va a encender el motor.


2 LCD que mostraran el mensaje de motor encendido y motor apagado.

Se ingresan los elementos en la matriz principal como se muestra en la figura 3.26.


Esto se realiza arrastrando los elementos hasta donde corresponden, es necesario que
este desactivado el modo select.

Fig. 3.26 Programa para encendido de motor.

Internamente las figuras se desplazan con la siguiente lnea de cdigo:

Private Sub PasoA_DragDrop(Index As Integer, Source As Control, X As Single, Y


As Single)
On Error GoTo fin: 'si se hace cualquier movimiento no contemplado
If Source.Tag = 14 Then el tag 14 representa al elemento borrar
PasoA(Index).Picture = ImageAux(0).Picture 'quita el dibujo de la fuente de la fuente
PasoA(Index).Tag = 0 'asigna el tag de la fuente
imagenes(Index + (Scroll.Value * 8)) = 0#
Error1(Index + (Scroll.Value * 8)).Visible = False
Valor(Index + (Scroll.Value * 8)).Visible = False
Valor2(Index + (Scroll.Value * 8)).Visible = False

13

Else
PasoA(Index).Picture = Source.Picture
PasoA(Index).Tag = Source.Tag

'asigna el dibujo de la fuente.


'asigna el tag de la fuente

imagenes(Index + (Scroll.Value * 8)) = Source.Tag 'guarda el tag en el vector


auxiliar de imgenes.
End If
fin:
End Sub

Este cdigo captura la imagen desplazada y el tag que corresponde a cada imagen y
los almacenan en el vector Paso A que es el que se carga en la matriz principal, esta
matriz slo se usa para presentar los elementos en pantalla, tambin almacena el
valor del tag a un vector imgenes que es un vector auxiliar con el que va a trabajar
internamente el programa. Para que este cdigo funcione fue necesario activar el
DragMode de cada imagen para que se pueda hacer el desplazamiento.

Con los elementos en la matriz principal se empieza a establecer los valores que
corresponden a casa elemento esto se realiza desactivando el modo select y dando
doble clic a cada elemento, al dar doble clic se abren el formulario correspondiente al
elemento que se desea configurar como se muestra en la figura 3.27.

Fig. 3.27 Pantalla de Dispositivos de entrada.

Internamente el programa toma los valores almacenados en las matrices del


programa principal esto se realizar al momento de abrir el formulario y esta
especificado en la siguientes lneas de cdigo.

14

Private Sub Form_Load()


'ingreso al combobox los registros del pic.
llenaVariables (App.Path & "\brain\variables2.txt")
'ingreso al combobox los registros definidos por el usuario.
llenaVariables (App.Path & "\brain\variablesNew.txt")
.,

'transferencia de las variables de programa principal al sub-formulario.


cmRegistro.Text = PASADATOS1
cmBit.Text = PASADATOS2
cmSalto.Text = IIf(PASADATOS3 <> vbVacio, PASADATOS3, "Paso 1")

End Sub

Como la sub-forma corresponde a los contacto los datos a llenar son los siguientes
registro que se va a comparar, bit del registro que se va a comparar y el paso al que
va a saltar si la evaluacin arroja un resultado positivo. Con los datos ingresados se
procede a cerrar el sub-formulario, cuando se cierra se traslada los valores
seleccionados a variables auxiliares que ayudaran a pasarlos los valores al programa
principal.

Private Sub Form_Unload(Cancel As Integer)


If cmRegistro.Text <> vbVacio And cmBit.Text <> vbVacio And cmSalto.Text
<> vbVacio Then
PASADATOS1 = cmRegistro.Text
PASADATOS2 = cmBit.Text
PASADATOS3 = cmSalto.Text
Else
Cancel = -1
MsgBox "Ingrese Todos los Datos", vbInformation, "Informacin."
End If
End Sub

En la pantalla principal se almacenan a sus correspondientes vectores los valores


enviados por los sub-formularios de la siguiente forma:

15

Private Sub PasoA_DblClick(Index As Integer)

'Condiciones

If PasoA(Index).Tag = 5 Or PasoA(Index).Tag = 6 Or PasoA(Index).Tag = 7 Or


PasoA(Index).Tag = 8 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
PASADATOB1 = IIf(valoresS3(Index + (Scroll.Value * 8)) = "VERDAD",
True, False)
PASADATOS5 = valoresS1(Index + (Scroll.Value * 8))
frmCond.Show 1
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = IIf(PASADATOB1, "VERDAD",
"FALSO")
Valor(Index + (Scroll.Value * 8)).Caption = PASADATOS1
Valor2(Index + (Scroll.Value * 8)).Caption = PASADATOS2
If PASADATOS1 <> "" Then
Valor(Index + (Scroll.Value * 8)).Visible = True
Valor2(Index + (Scroll.Value * 8)).Visible = True
Else
Valor(Index + (Scroll.Value * 8)).Visible = False
Valor2(Index + (Scroll.Value * 8)).Visible = False

End If
End If
'Teclado
If PasoA(Index).Tag = 2 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
frmteclado.Show 1
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
End If
'LCD
If PasoA(Index).Tag = 3 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
16

PASADATOS3 = valoresS3(Index + (Scroll.Value * 8))


frmLCD.Show 1
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = PASADATOS3
End If
'LCD de un bit
If PasoA(Index).Tag = 17 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
PASADATOS3 = valoresS3(Index + (Scroll.Value * 8))
frmLCDBit.Show 1
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = PASADATOS3
End If
'Display
If PasoA(Index).Tag = 4 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
frmDisplay.Show 1
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
End If
'Retardos
If PasoA(Index).Tag = 13 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
frmTiempo.Show 1
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
End If
'Entradas
If PasoA(Index).Tag = 1 Or PasoA(Index).Tag = 15 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
17

PASADATOS3 = valoresS3(Index + (Scroll.Value * 8))


frmCon2.Show vbModal
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = PASADATOS3
End If
'Salidas
If PasoA(Index).Tag = 16 Or PasoA(Index).Tag = 18 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
PASADATOS3 = valoresS3(Index + (Scroll.Value * 8))
frmSalid1.Show vbModal
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = PASADATOS3
End If
'Transferir a W
If PasoA(Index).Tag = 19 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
PASADATOB1 = IIf(valoresS3(Index + (Scroll.Value * 8)) = "VERDAD",
True, False)
frmTrans1.Show vbModal
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = IIf(PASADATOB1, "VERDAD",
"FALSO")
End If
'Transferir a Registro
If PasoA(Index).Tag = 20 Then
PASADATOS1 = valoresS1(Index + (Scroll.Value * 8))
PASADATOS2 = valoresS2(Index + (Scroll.Value * 8))
PASADATOS3 = valoresS3(Index + (Scroll.Value * 8))

18

PASADATOB1 = IIf(valoresS4(Index + (Scroll.Value * 8)) = "VERDAD",


True, False)
frmTrans2.Show vbModal
valoresS1(Index + (Scroll.Value * 8)) = PASADATOS1
valoresS2(Index + (Scroll.Value * 8)) = PASADATOS2
valoresS3(Index + (Scroll.Value * 8)) = PASADATOS3
valoresS4(Index + (Scroll.Value * 8)) = IIf(PASADATOB1, "VERDAD",
"FALSO")
End If
End Sub

El cdigo que se muestra funciona de la siguiente forma cada imagen representa a un


elemento y cada elemento le corresponde un tag, el tag es lo que utiliza para
identificar los elementos el tag de cada elemento es el siguiente:

Imagen Descripcin

TAG

Contacto Normalmente Abierto.

Teclado matricial.

Lcd.

Display.

Comparador igual.

Comparador distinto.

Comparador menor igual.

Comparador mayor igual.

I2C recepcin

I2C Transmisin.

10

RS232 Recepcin

11

RS232 Transmisin.

12

Retardo.

13

Borrador.

14

Contacto normalmente cerrado.

15

19

Pulso alta.

16

Lcd de Bit.

17

Pulso Bajo.

18

Transferir a W.

19

Transferir a registro.

20

Lnea.

21

Cada elemento posee diferentes variables y el programa valida que segn el elemento
que se seleccion se compara el tag y se inserta las variables que le correspondan a
cada elemento, en el caso del contacto tiene tag nmero 1 se pasan los datos que se
encuentran el los vectores valoresS1, valoresS2 y valoresS3 a las variables globales
PASADATOS1, PASADATOS2 y PASADATOS3. Se llama al sub formulario que
corresponde al contacto normalmente abierto frmCon2 con la propiedad vbmodal
para que se mantenga abierto hasta que se seleccionen todos los datos una vez que se
cierra el formulario se retornan las variables de PASADATOS1, PASADATOS2 y
PASADATOS3 a los vectores valoresS2 y valoresS3.

Esta operacin se repite al configurar cada uno de los elementos se compara el


elemento, se pasan los valores de los vectores a las variables globales, se abre la
forma correspondiente en forma vbmodal y se devuelven los valores de las variables
globales a los vectores.

Con todos los elementos configurados se procede a correr el proceso de errores que
va indicando cuantos elementos faltan de configurar marcando la imagen del
elemento con un cuadro rojo e indicando en la parte inferior el porque se encuentra
mal configurado. El proceso funciona barriendo todos los vectores, comparando uno
a uno los elementos ingresados y verificando que los datos que se encuentren en los
vectores en los que se guardan los valores estn correctamente ingresados.

El siguiente paso ser la creacin del cdigo ensamblador esto se lo realiza


presionando el botn de generar

y los pasos que sigue el proceso son los

siguientes:

20

Private Sub boEjecutar_Click()


TXBrain.Text = vbVacio
If Valida_Consistencia Then
Exit Sub
End If

revisa_elementos
'Defincion de variables del LCD

crlf$ = Chr(13) & Chr(10)


'inc de variables
AbrirArchivo (App.Path & "\brain\inicializa.txt")
AbrirArchivo (App.Path & "\brain\variables.txt")
AbrirArchivo (App.Path & "\brain\variablesNew.txt")
TXBrain.Text = TXBrain.Text & "ENDC " & crlf$
'fin de inc de variables

AbrirArchivo (App.Path & "\brain\principal.txt")

If

auxretardo

Then

AbrirArchivo

"\brain\RETARDOS\RETARDOS.txt")
'Configura el LCD
If auxlcd Then
AbrirArchivo (App.Path & "\brain\LCD\decla.txt")
define_LCD
AbrirArchivo (App.Path & "\brain\LCD\inicialcd.txt")
AbrirArchivo (App.Path & "\brain\LCD\cuerpo.txt")
AbrirArchivo (App.Path & "\brain\LCD\tabla.txt")
Mensajes
AbrirArchivo (App.Path & "\brain\LCD\limpiaLCD.txt")
End If

If auxteclado Then
AbrirArchivo (App.Path & "\brain\teclado\inicia.txt")
21

(App.Path

&

AbrirArchivo (App.Path & "\brain\teclado\procesos.txt")


define_Teclado
End If
TXBrain.Text = TXBrain.Text & "inicio" & crlf$
AbrirArchivo (App.Path & "\brain\ADIGI2.txt")
'crea el programa
Programa
TXBrain.Text = TXBrain.Text & "END" & crlf$
'Optimizador de programa
OptimizaPrograma
End Sub

Primero encera el texbox que va a contener el cdigo ensamblador, seguido se valida


que el cdigo tenga consistencia es decir que todos los parmetros estn ingresados si
no cumple esta condicin no genera el cdigo ensamblador, se llama a la funcin
revisa_elementos esta revisa cuantos elementos que necesiten ser configurados de
forma especial estn en la matriz principal y con estos datos empieza la generacin
del cdigo ensamblador insertando los registros reservados con el comando
AbrirArchivo (App.Path & "\brain\inicializa.txt"), el mismo comando se utiliza para
ingresar la variables pro defecto y las variable que el usuario ingresa desde el men
de configuracin. con el proceso de revisar elementos se cargan variables auxiliares
con valores de 0 o 1 que indican que un elemento esta siendo usado en el programa si
esta cargado se procede a insertar las funciones que se utilizan para que el programa
funcione. De esta forma se establece la primera parte del cdigo que son definicin
de variables y de funciones que se van a utilizar dentro del programa lo siguiente es
crear el cuerpo del programa con la funcin programa que barre el vector que
contiene los elementos y con los datos que se configuraron anteriormente se va
generando el cdigo para cada elemento una vez terminada la funcin de programa
nos deja un cdigo en bruto que funciona pero esta lleno de comandos, registros,
saltos, etc que posiblemente no se utilicen para que el programa funcione por esto se
corre el proceso de OptimizaPrograma este proceso se encarga de eliminar todos
registros, saltos y comandos que no se usen en el programa.

22

3.5 Parametrizacin del programa

Cuando se realiza cualquier tipo de proyecto en nuestro programa y una vez obtenido
todos los componentes a utilizar se debe realizar la parametrizacin de ciertos
dispositivos ya que necesitan valores iniciales antes de su uso. Esta seccin tiene
como objetivo explicar la declaracin y configuracin de:

Teclado,

LCD,

Registros,

3.5.1 Declaracin y configuracin del Teclado

Para declarar un nuevo teclado nos dirigimos al men Configurar y


escogemos la opcin Definicin de teclado en este formulario podremos
declarar los teclados asignndole un nombre y asociarlos a un puerto con el
que va a trabajar. Solo se puede declarar tres teclados como mximo, por
defecto siempre abra un teclado establecido y se podr cambiar el puerto al
que se lo desea conectar.

Fig. 3.28 Definicin del Teclado

3.5.2 Declaracin y configuracin del LCD

Para declarar un nuevo LCD nos dirigimos al men Configurar y


escogemos la opcin Define LCD en este formulario podremos declarar los
LCDs asignndoles un nombre y el puerto al que se lo va asociar. Solo se
puede declarar tres LCDs como mximo, por defecto siempre abra un LCD
establecido y se podr cambiar el puerto al que se lo desea conectar.

23

Fig. 3.29 Definicin de LCD

3.5.3 Declaracin de Registros

Para declarar un nuevo Registro nos dirigimos al men Configurar y


escogemos la opcin Registros en este formulario podremos declarar
nuevos registros o escoger los que ya estn establecidos por defectos para
poder utilizarlos a lo largo de toda la programacin del proyecto.

Fig. 3.30 Ingreso de Registro

3.6 Utilizacin del programa

1.- Primero procedemos a definir y entender el problema, basndonos en las


condiciones que se plantea este, recomendando realizar un diagrama de flujo para
que el desarrollo del proyecto sea mucho ms sencillo en la programacin y la
generacin del archivo ASM.

2.- Se colocan los elementos que se necesitan en la pantalla principal de acuerdo a las
necesidades, siguiendo un esquema lgico de acuerdo al diagrama de flujo realizado.
Los objetos son arrastrados a la pantalla uno a uno.

24

3.- Una vez colocados los componentes a utilizar procedemos a la configuracin de


los diferentes dispositivos a utilizarse en el proyecto que puede ser: Teclados, LCD,
Registros, Contactos, Display, etc, de acuerdo a sus necesidades tomando muy en
cuenta los puertos de entrada / salida y los registro del microcontrolador.

4.- Para esto se insertan los datos necesarios en cada elemento. Se da doble clic en el
elemento que se coloco en la pantalla principal para que salga su correspondiente
pantalla de configuracin, se llenan los datos que se necesiten y se presiona salir.

5.- luego de haber ingresado los datos necesarios en cada uno de los dispositivos se
ejecuta el botn Corrector de errores para ver si algn elemento no esta bien
configurado o falte de hacerlo, si llegase a encontrarse un error en algunos de los
dispositivos este se pondr en rojo, procediendo luego a la revisin y correccin del
mismo.

6.- Una vez terminado con la revisin y correccin del programa y no exista ningn
problema, procedemos a presionar el botn Traducir, la cual realiza la traduccin
del programa que hemos realizado al cdigo ensamblador, mostrndolo en el
visualizador para su comprensin y anlisis.

7.- Luego de haber generado el cdigo ensamblador se procede a realizar el archivo


ASM presionando el botn Guardar ASM apareciendo una pantalla de explorador,
en esta pantalla debemos indicar donde lo vamos a guardar y el nombre del archivo,
para luego presionar guardar obteniendo as el archivo con la extensin ASM para
compilarlo y despus cargarlo al microcontrolador.

3.7 Listado de componentes

En el desarrollo de este proyecto contamos con los elementos ms bsicos hasta los
ms avanzados y tiles que se pueden usar en las prcticas de laboratorio, los cuales
detallamos a continuacin:

Contactos Normalmente Abiertos y Cerrados.- Esto elementos se los utilizan para


ingresar datos al PIC sean 1 o 0 lgicos los cuales son ledos por los puertos que
25

posea el microcontrolador, su funcin de trabajo es la de un switch, y los


representamos grficamente de la siguiente manera.

Fig. 3.31 Dispositivos de Entrada

Dispositivos de Salida.- Este elemento se lo utiliza para visualizar la salida de un


Bit lgico 1 o 0 y en el programa se los representa grficamente de la siguiente
manera.

Fig. 3.32 Dispositivos de Salida

Teclado Matricial.- Este elemento se lo utiliza parta simular el ingreso de datos de


un teclado externo conectado a un puerto especifico del PIC.

Fig. 3.33 Teclado Matricial

LCD.-

Este elemento se lo utilizan para visualizar una cadena de caracteres

(Mensajes) y se especifica el puerto de salida que va asociado con el nombre y se lo


representa de la siguiente manera.

Fig. 3.34 LCD

26

LCD muestra Bit.- Este elemento se lo utilizan para visualizar un carcter en una
posicin especfica, se especifica el puerto de salida que va asociado con el nombre y
se lo representa de la siguiente manera.

Fig. 3.35 LCD muestra Bit

Display.- Este elemento se lo utiliza para simular el uso de un Display BDC de 7


segmentos el cual puede utilizar cualquiera de los puertos de PIC, cabe recalcar que
solo se utilizan 4 bit del puerto seleccionado los cuales pueden ser los menos o mas
significativos.

Fig. 3.36 Display

Comparador AND.- Esto es bsicamente una comparacin lgica que puede ser
entre dos nmeros o un nmero y un registro almacenado.

Fig. 3.37 Comparador AND

Comparador AND Negado.- Esto es bsicamente una comparacin lgica que


puede ser entre dos nmeros o un nmero y un registro almacenado que al final es
negada.

Fig. 3.38 Comparador AND Negado

27

Comparador Mayor que.- Esto es bsicamente una comparacin lgica que puede
ser entre dos nmeros o un nmero y un registro almacenado que al final nos dar
como resultado el nmero mayor.

.
Fig. 3.39 Comparador Mayor que

Comparador Menor que.- Esto es bsicamente una comparacin lgica que puede
ser entre dos nmeros o un nmero y un registro almacenado que al final nos dar
como resultado el nmero menor.

Fig. 3.40 Comparador Menor que

RS232 Transmisin.- Este elemento se lo utiliza para transmitir datos ya sea entre
PIC maestro esclavo o Computador PIC utilizando la comunicacin R232.

Fig. 3.41 RS232 Transmisin

RS232 Recepcin.- Este elemento se lo utiliza para recibir datos ya sea entre PIC
maestro esclavo o Computador PIC utilizando la comunicacin R232.

Fig. 3.42 RS232 Recepcin

28

I2C Transmisin.- Este elemento se lo utiliza para transmitir datos ya sea entre PIC
maestro esclavo o Computador PIC utilizando la comunicacin I2C.

Fig. 3.43 I2C Transmisin


I2C Recepcin.- Este elemento se lo utiliza para recibir datos ya sea entre PIC
maestro esclavo o Computador PIC utilizando la comunicacin I2C.

Fig. 3.44 I2C Recepcin

Temporizador.- Este elemento se lo utiliza para determinar los tiempos de espera


para que suceda un evento.

Fig. 3.45 Temporizador

Transferencia al registro W.- Con la ayuda de esta herramienta se transfiere un


dato o registro al registro W.

Fig. 3.46 Transferencia al registro W

29

Transferencia a registro deseado.- Con la ayuda de esta herramienta se transfiere


un dato o registro al registro que uno desee guardarlo.

Fig. 3.47 Transferencia al registro deseado

Borrador.- Esta herramienta nos permite eliminar un dispositivo en caso de cometer


un error.

Fig. 3.48 Borrador

Lnea.- Esta herramienta nos permite trazar una lnea para un unir varios
dispositivos.

Fig. 3.49 Lnea

30

CONCLUSIONES Y FUTUROS TRABAJOS

Se desarroll e implement un software de uso educativo para la creacin de los


archivos .ASM, estos archivos son utilizados para la programacin de los
microcontroladores. Esta herramienta puede ser utilizada tanto por el alumno como
por el profesor, la cual ayudar entre otras cosas a mejorar la comprensin y por lo
tanto el aprendizaje de esta rama de la electrnica siendo mucho ms didctico,
adems por su facilidad de uso y funcionalidad tambin es una herramienta de
consulta.

En el desarrollo de este proyecto se presentaron algunos problemas que resolver, uno


de los ms importantes fue de cmo arrastrar los grficos y pegarlos en otra pantalla
y de ah generar los cdigos para la programacin de los microcontroladores a partir
de los grficos, se tuvo que investigar en muchas pginas web y programas parecidos
donde nos di la idea para el arrastre y colocacin de los grficos como objetos y a
su vez asociarlo en la programacin.

Para la primera parte pudimos solucionar encontrando un juego en la cual se


arrastraba los objetos a un tablero, usamos este mismo principio para nuestro
proyecto basndonos en la propiedad DragMode, con esto pudimos conseguir el
proceso de insercin a la pantalla de trabajo. Una vez resuelto este problema
empezamos a disear los iconos que se necesitaran para el proyecto, realizando
pruebas simulando la programacin.

Al realizar las pruebas nos encontramos con otro inconveniente que sera la
limitante que nos da la pantalla de no poder guardar muchos elementos, al analizar
este problema nos dimos cuenta que no era necesario guardar todos lo elementos en
pantalla si no lo nico que debamos hacer era presentar los elementos cuando sea
necesario, para esto almacenamos el tag de cada objeto en un vector y con ese tag se
enlazaba las imgenes que se queran presentar en pantalla aumentado un
VScrollBar, consiguiendo que los cuatro pasos que se presentaron en pantalla
aumente hasta veinte cuatro pudindose modificar a conveniencia.

Hasta en ese momento habamos podido solucionar la parte visual del


programa, pero lo ms importante y el reto ms difcil era poder generar el cdigo
ensamblador a partir de estas imgenes, para este problema fue necesario buscar
informacin sobre todos los mtodos de manejo de archivos que encontramos en la
Internet, de todos los mtodos encontrados decidimos usar dos tipos, uno por tipo de
registro que es el que usamos para guardar el programa creado en el traductor es
decir el contenido de cada imagen para la generacin del cdigo. El otro mtodo se
encarga del manejo de los archivos planos, es decir el archivo final para la
programacin de los microcontroladores.

Una vez solucionados estos problemas se empez a disear nuevos


componentes y probar la generacin de cdigos con programas muy sencillos, para
as ver como se comportaba la generacin de cdigos, el primer programa de prueba
fue con dos elementos, el LCD y el retardo, mostrando un mensaje en el display cada
cierto tiempo obteniendo resultados satisfactorios.

Al realizar las diferentes pruebas nos dimos cuenta que ciertos mtodos
necesitaban utilizar variables especficas de los PIC y que ciertos elementos tambin
necesitaban que se le definan ciertos parmetros propios de ellos, pero esto hara que
la pantalla de control de ese elemento se vuelva ms compleja, por esto decidimos
realizarlo en pantallas apartes creando men de configuracin. Al principio de este
proceso se nos hizo un poco complicado ya que se usaba archivos para cargar estos
elementos y cada vez que el archivo generaba un error ya sea en el momento de su
lectura o escritura no dejaba que se pudieran abrir ms archivos provocando que el
sistemas se vuelva inestable, y como nuestro programa para generar el archivo final
de .ASM utiliza un 80% de manejo de archivos nos daaba el proceso del cdigo y
no generaba, al menos la parte que toma desde los archivos planos.

Para el desarrollo de este programa se utilizaron pantallas muy llamativas y vistosas,


adems de funcional y prctico. Por tal motivo se utilizaron imgenes vistosas y muy
similares a los programas de programacin similares (para programar los PLC que
utilizan este mismo esquema),

siendo esta de mucha ayuda y facilitando al

estudiante el uso del mismo que ya conoce los otros sistemas de programacin.

Con este programa podremos lograr que muchos estudiantes tengan un recurso ms
para la compresin de esta interesante rea de la electrnica ya que es de gran apoyo
para la realizacin de los proyectos de microcontroladores y del entendimiento en la
generacin del cdigo. A diferencia de otros programas est es muy grfico e
intuitivo y no necesita de saber cada uno de los comandos slo el entendimiento de
que es lo que se requiere para la realizacin de cualquier proyecto.

Este programa puede completarse con trabajos futuros, con funciones extras tales
como: ampliar el repertorio de componentes, tener la facilidad de poder trabajar con
otros PIC`s, poder realizar directamente el archivo .HEX y probarlo, que todo est
correctamente funcionando para proceder grabarlo al PIC directamente y poder
agregar ms interaccin con el usuario. La programacin de este proyecto est hecha
de tal manera que cualquier estudiante con conocimiento de programacin
comprenda la manera de cmo est estructurado para poder hacer ampliaciones
futuras.

Este novedoso programa brindar a muchos estudiantes la capacidad de realizar


tareas mucho ms rpido que con el sistema original (programacin a bajo nivel),
hacer ejercicios de prcticas y poder comprobarlos o simularlos con programas
adyacentes (Proteus, MicroWin, etc), as como para estudiar para los exmenes. Es
un apoyo muy grande para las prcticas de laboratorio, todo en ambiente grfico,
amigable y muy prctico que incluso es una gua de referencia muy rpida para aquel
estudiante que desee elaborar algn proyecto y requiera de algn ejercicio descrito en
este proyecto.

As todos estos aspectos se cubren de una manera integral en este programa, que bien
vale la pena ampliarlo en cuanto a contenido, ejemplos de clases y prcticas de
laboratorio, para ser de esta una herramienta an con mayores capacidades, uso y
beneficios tanto para los alumnos como para los profesores.

BIBLIOGRAFA
Microchip Corporation
http://www.microchip.com

PIC micros and C - CCS C review


http://www.microchipc.com/reviews/CCS_C

Enciclopedia Wikipedia
http://es.wikipedia.org/wiki/Portada

Directivas MPLAB:
http://tinyurl.com/zdkj

IC-Prog Prototype Programmer (programador para PIC)


http://www.ic-prog.com/

La web del programador


http://www.lawebdelprogramador.com

El Rincon del Vago


http://www.rincondelvago.com

El Guille ASP.Net
http://www.elguille.info

Jorge Serrano MVP Visual Developer


http://www.geeks.ms/blocks/jorge

Slo Cdigo
https://www.solocodigo.com

Folletos de Microcontroladores Bsico y Avanzado


Estudiados en clase

Glosario
CAD
El diseo automatizado (cad) es el uso de una amplia gama de las herramientas
computarizadas que asisten a ingenieros, a arquitectos y a otro los profesionales del diseo
en sus actividades de diseo. Es el authoring tool principal de la geometra dentro del proceso
de la gerencia del ciclo de vida de producto e implica software y el hardware a veces specialpurpose. Los paquetes actuales se extienden a partir de sistemas de bosquejo basados 2.a
vector a los modeladores slidos y superficiales de 3D.
CISC
Es un modelo de arquitectura de computadores (del ingls Complex Instruction Set
Computer). Los microprocesadores CISC tienen un conjunto de instrucciones que se
caracteriza por ser muy amplio y permitir operaciones complejas entre operandos
situados en la memoria o en los registros internos, en contraposicin a la arquitectura
RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la


actualidad, la mayora de los sistemas CISC de alto rendimiento implementan un
sistema que convierte dichas instrucciones complejas en varias instrucciones simples
del tipo RISC, llamadas generalmente microinstrucciones.

Los CISC pertenecen a la primera corriente de construccin de procesadores, antes


del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda
la familia Intel x86 usada en la mayora de las computadoras personales del planeta.

EPROM
Son las siglas de Erasable Programmable Read-Only Memory (ROM borrable
programable). Es un tipo de chip de memoria ROM inventado por el ingeniero Dov
Frohman que retiene los datos cuando la fuente de energa se apaga. En otras
palabras, es no voltil. Est formada por celdas de FAMOS (Floating Gate
Avalanche-Injection Metal-Oxide Semiconductor) o transistores de puerta flotante.
Cada uno de ellos viene de fbrica sin carga, por lo que es ledo como un 1 (por eso

una EPROM sin grabar se lee como FF en todas sus celdas). Se programan mediante
un dispositivo electrnico que proporciona voltajes superiores a los normalmente
utilizados en los circuitos electrnicos. Las celdas que reciben carga se leen entonces
como un 0. Una vez programada, una EPROM se puede borrar solamente mediante
exposicin a una fuerte luz ultravioleta. Esto es debido a que los fotones de la luz
excitan a los electrones de las celdas provocando que se descarguen. Las EPROMs se
reconocen fcilmente por una ventana transparente en la parte alta del encapsulado, a
travs de la cual se puede ver el chip de silicio y que admite la luz ultravioleta
durante el borrado.

EEPROM
Son las siglas de electrically-erasable programmable read-only memory (ROM
programable y borrable elctricamente), en espaol o castellano se suele referir al
hablar como EPROM y en ingls "E-Squared-PROM". Es un tipo de memoria ROM
que puede ser programado, borrado y reprogramado elctricamente, a diferencia de la
EPROM que ha de borrarse mediante rayos ultravioletas. Aunque una EEPROM
puede ser leda un nmero ilimitado de veces, slo puede ser borrada y reprogramada
entre 100.000 y 1.000.000 de veces.

Estos dispositivos suelen comunicarse mediante protocolos como IC, SPI y


Microwire. En otras ocasiones se integra dentro de chips como microcontroladores y
DSPs para lograr una mayor rapidez. La memoria flash es una forma avanzada de
EEPROM creadas por Dr. Fujio Masuoka mientras trabajaba para Toshiba en 1984 y
fueron presentadas en la Reunion de Aparatos Electrnicos de la IEEE de 1984. Intel
vi el potencial de la invencin y en 1988 lanz el primer chip comercial del tipo
NOR.
PIC
Son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y
derivados del PIC1650, originalmente desarrollado por la divisin de microelectrnica de
General Instruments.

El nombre actual no es un acrnimo. En realidad, el nombre completo es PICmicro,


aunque generalmente se utiliza como Peripheral Interface Controller (Controlador
de Interfaz Perifrico).
PLC
Programmable Logic Controller en sus siglas en ingls, son dispositivos electrnicos muy
usados en Automatizacin Industrial.
Su historia se remonta a finales de la dcada de 1960, cuando la industria busc en
las nuevas tecnologas electrnicas una solucin ms eficiente para reemplazar los
sistemas de control basados en circuitos elctricos con rels, interruptores y otros
componentes comnmente utilizados para el control de los sistemas de lgica
combinacional.

PROM
Es el acrnimo de Programmable Read-Only Memory (ROM programable). Es una
memoria digital donde el valor de cada bit depende del estado de un fusible (o
antifusible), que puede ser quemado una sola vez. Por esto la memoria puede ser
programada (pueden ser escritos los datos) una sola vez a travs de un dispositivo
especial, un programador PROM. Estas memorias son utilizadas para grabar datos
permanentes en cantidades menores a las ROMs, o cuando los datos deben cambiar
en muchos o todos los casos.

Pequeas PROM han venido utilizndose como generadores de funciones,


normalmente en conjuncin con un multiplexor. A veces se preferan a las ROM
porque son bipolares, habitulamente Schottky, consiguiendo mayores velocidades.

RAM
Es el acrnimo ingls de Random Access Memory Module (memoria de acceso
aleatorio memoria de acceso directo).

RISC
En arquitectura computacional, RISC del ingls Reduced Instruction Set Computer
(Computadora con Conjunto de Instrucciones Reducido). Tipo de microprocesadores con las
siguientes caractersticas fundamentales:
1. Instrucciones de tamaos fijos y presentados en un reducido nmero de formatos.
2. Slo las instrucciones de carga y almacenamiento acceden a la memoria por datos.
Adems estos procesadores suelen disponer de muchos registros de propsito
general.

ROM
Es la sigla de read-only memory, que significa "memoria de slo lectura": una
memoria de semiconductor destinada a ser leda y no destructible, es decir, que no se
puede escribir sobre ella y que conserva intacta la informacin almacenada, incluso
en el caso de que se interrumpa la corriente (memoria no voltil). La ROM suele
almacenar la configuracin del sistema o el programa de arranque de la computadora.

UART
son las siglas de "Universal Asynchronous Receiver-Transmitter" (en espaol,
"Transmisor-Receptor Asncrono Universal"). Se trata de un componente que utilizan
ciertos sistemas digitales basados en microprocesador, para convertir los datos en
paralelo, como los manda la CPU, en serie, con el fin de comunicarse con otro
sistema externo. Tambin realiza el proceso contrario, esto es, convierte los datos
serie, recibidos de un sistema externo, en paralelo para ser procesados por la CPU.
UCP
Unidad donde se ejecutan las instrucciones de los programas y se controla el funcionamiento
de los distintos componentes del ordenador
USART
El USART (universal synchronous asynchronous receiver transmitter) es uno de los
dos puertos series de los que dispone los PIC16F87X.
Puede funcionar de forma sncrona (half duplex) o asncrona (full duplex).

Vocabulario
CIRCUITO INTEGRADO
Un circuito integrado (CI) es una pastilla o chip muy delgado en el que se
encuentran una cantidad enorme (del orden de miles o millones ) de dispositivos
microelectrnicos interconectados, principalmente diodos y transistores, adems de
componentes pasivos como resistencia o capacitores. Su rea es de tamao reducido
(del orden de cm2 o inferiores). Algunos de los circuitos integrados ms avanzados
son los microprocesadores que son usados en mltiples artefactos: desde
computadoras hasta electrodomsticos, pasando por los telfonos mviles. Otra
familia importante de circuitos integrados la constituyen las memorias digitales.
CONTROLADOR
Un controlador de dispositivo (llamado normalmente controlador, o, en ingls,
driver) es un programa informtico que permite al sistema operativo interactuar con
un perifrico, haciendo una abstraccin del hardware y proporcionando una interfaz posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de
instrucciones que le indica cmo debe controlar y comunicarse con un dispositivo en
particular. Por tanto, es una pieza esencial, sin la cual no se podra usar el hardware.
COMPILADOR
Un compilador es un programa que, a su vez, traduce un programa escrito en un lenguaje de
programacin a otro lenguaje de programacin, generando un programa equivalente.
Usualmente el segundo lenguaje es cdigo mquina, pero tambin puede ser simplemente
texto. Este proceso de traduccin se conoce como compilacin.
La razn principal para querer usar un compilador es querer traducir un programa de
un lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje
mquina). De esta manera un programador puede disear un programa en un
lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a
un programa ms manejable por una computadora.

DOMTICA
El trmino domtica proviene de la unin de las palabras domus (que significa casa en latn)
y robtica (robota, que significa esclavo en checo). Se entiende por domtica al conjunto de
sistemas capaces de automatizar una vivienda, aportando servicios de gestin energtica,
seguridad, bienestar y comunicacin, y que pueden estar integrados por medio de redes
interiores y exteriores de comunicacin, cableadas o inalmbricas, y cuyo control goza de
cierta ubicuidad, desde dentro y fuera del hogar. Se podra definir como la integracin de la
tecnologa en el diseo inteligente de un recinto.
ENSAMBLADORES
Un ensamblador crea cdigo objeto traduciendo instrucciones mnemnicas a cdigos
operativos, e interpretando los nombres simblicos para direcciones de memoria y otras
entidades. El uso de referencias simblicas es una caracterstica bsica de los
ensambladores, evitando tediosos clculos y direccionamiento manual despus de cada
modificacin del programa. La mayora de los ensambladores tambin incluyen facilidades
para crear macros , a fin de generar series de instrucciones cortas que se ejecutan en tiempo
real, en lugar de utilizar subrutinas.
Los ensambladores son por lo general ms fciles de programar que los compiladores
de lenguajes de alto nivel, y han estado disponibles desde la dcada de 1950. Los
ensambladores modernos, especialmente para arquitecturas basadas en RISC, como
por ejemplo MIPS, SPARC y PA-RISC optimizan las instrucciones para explotar al
mximo la eficiencia de segmentacin del CPU.

Los ensambladores de alto nivel ofrecen posibilidades de abstraccin que incluyen:

Control avanzado de estructuras.

Procedimientos de alto nivel, declaracin de funciones.

Tipos de datos que incluyen estructuras, registros, uniones, clases y conjuntos.

Sofisticado procesamiento de macros.

MICROCONTROLADORES
Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres
unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se
trata de un computador completo en un solo circuito integrado. Aunque sus prestaciones son
limitadas, adems de dicha integracin, su caracterstica principal es su alto nivel de
especializacin. Aunque los hay del tamao de un sello de correos, lo normal es que sean
incluso ms pequeos, ya que, lgicamente, forman parte del dispositivo que controlan.
MICROPROCESADOR
El microprocesador, micro o "unidad central de procesamiento", CPU1 , es un
chip que sirve como cerebro de la computadora. En el interior de este componente
electrnico existen millones de transistores integrados.
Suelen tener forma de prisma chato, y se instalan sobre un elemento llamado zcalo2.
Tambin, en modelos antiguos sola soldarse directamente a la placa madre.
Aparecieron algunos modelos donde se adopt el formato de cartucho, sin embargo
no tuvo mucho xito. Actualmente se dispone de un zcalo especial para alojar el
microprocesador y el sistema de enfriamiento, que comnmente es un ventilador
(cooler). El microprocesador est compuesto por: registros, la Unidad de control, la
Unidad aritmtico-lgica, y dependiendo del procesador, una unidad en coma
flotante.
.
PROGRAMACIN
Se llama programacin a la creacin de un programa de computadora (Cdigo
mquina compilado e interpretado directamente desde el ncleo del sistema) o desde
un script (Cdigo fuente interpretado), un conjunto concreto de instrucciones que una
computadora puede ejecutar. El programa se escribe en un lenguaje de programacin,
aunque tambin se pueda escribir directamente en lenguaje de mquina, con cierta
dificultad. Un programa se puede dividir en diversas partes, que pueden estar escritas
en lenguajes distintos.

Software es el sustantivo que denomina a los programas y datos de computadora.

APNDICE A

TRADUCTOR ASM

INTRODUCCIN

Es un sistema que ha sido elaborado contemplando todas las exigencias del curso de
microcontroladores. Uno de sus principales objetivos es brindarle al estudiante una
herramienta que le ayude a todas las prcticas de una manera fcil y rpida.

Permite la creacin de cdigo ASM, controla los elementos ms usados en las


prcticas de laboratorio, como son el teclado prcticas, LCD de 16 segmentos,
display, entradas y salidas, etc.

La integracin total de todos los elementos se realiza automticamente si que el


usuario tenga necesidad de configurar los cambios de dispositivos o los saltos de
banco.

1. CARACTERSTICAS PRINCIPALES

1.1 REQUERIMIENTOS

El sistema ha sido desarrollado en Visual Basic 6.0 trabajando con archivos de texto
como base de datos. Para su ptimo funcionamiento se requiere que los equipos en
los que vaya a estar instalado el sistema cumplan las siguientes caractersticas:

Caractersticas mnimas recomendadas para las estaciones:


Procesador Intel Pentium de 166 MHz
60 MB de memoria RAM
200 MB de espacio libre en Disco Duro
Monitor Color SVGA
Mouse
Sistema Operativo Windows 95

1.2 DESCRIPCIN GENERAL.-

El sistema ha sido diseado para que cualquier persona con experiencia de trabajo en
Windows y conocimiento de ciertos dispositivos electrnicos. Proporciona un
ambiente amigable para el usuario, caracterstica que lo hace sencillo en su uso y
aprendizaje.

Las opciones se han agrupado en un men principal el cual se subdivide en 2 submens: Archivos, Configurar.

Archivo: Contiene opciones para el manejo de archivo del lenguaje a traductor


como abrir, guardar, nuevo y guardar como.

Configurar: Contiene opciones para configurar los parmetros, de ciertos


dispositivos del sistema como teclado, lcd y registros del pic o definidos por el
usuario.

Adicionalmente el men proporciona una barra con botones de acceso directo a las
opciones ms utilizadas del sistema, los cuales se detallan a continuacin:

Botn para nuevo programa:

Botn para abrir archivos:

Botn para guardar archivo:

Botn para guardar como:

Botn para ver errores:

Botn para traducir:

Botn para guardar cdigo asm:

Botn para salir del sistema:

Existen botones para controlar la entrada y salidas de bits:

Botn para entrada alta:

Botn para entrada baja:

Botn para salida alta:

Botn para salida baja:

Existen botones para controlar teclado matricial:

Botn para teclado matricial:

Existen botones salidas visuales:

Botn para visualizador LCD de mensajes

Botn para visualizador LCD de Caracter:

Botn para display de 7 segmentos:

Existen botones de comparacin:

Botn para comparar igualdad:

Botn para comparar diferencia:

Botn para comparar mayor igual que:

Botn para comparar menor igual que:

Existen botones para transmisin de datos:


Botn para recepcin de i2c:

Botn para transmisin de i2c:

Botn para recepcin de rs232:

Botn para transmisin de rs232:

Existen botones de retardos:

Botn para acceso a temporizador:

Existen botones transferencia de registros:

Botn para transferir a W:

Botn para transferir a registro:

Existen botones para presentacin:

Botn para Borrar:

Botn para Linea:

2. Instalacin.

Para el proceso de instalacin se siguen los siguientes pasos: primero se inserta el cd


de instalacin del traductor ASM y se corre el programa setup.exe y
automticamente aparece una pantalla que nos indica que cerremos el resto de
aplicaciones para continuar la instalacin, la siguiente pantalla nos muestra tres
opciones una para instalar el programa en la carpeta por defecto, otra para cambiar de
directorio y una tercera para salir, seleccionamos la opcin por defecto. Lo siguiente
que se muestra es una barra de procesos que muestra como esta la instalacin y por
ultimo aparecer un mensaje certificando que la instalacin concluy exitosamente.
Adicional a esto se corre otro programa llamado cargar libreras, que es el que se
encarga de crear la estructura de archivos que se necesita para la generacin de los
cdigos asm.

Con el programa instalado se procede a cargarlo buscando en el men de inicios de


Windows la opcin de programas o todos los programas en caso de Windows XP,
buscamos la carpeta de traductor asm y seleccionamos el programa traducir. Se
abrir la siguiente pantalla.

Fig. a.1 Pantalla principal

Esta es la pantalla principal donde se van a crear los programas grficos consta de 5
elementos principales:

Matriz principal: rea en donde se van a insertar y configurar todos los elementos
que se van a utilizar para la creacin de nuestro proyecto.

Fig. a.2 Matriz principal

Barra de herramientas: en esta barra se encuentran los elementos ms comunes que


se utilizan para la elaboracin de los proyectos: entadas, salidas, display, lcd,
teclados, rs232, I2C etc.

Fig. a.3 Barra de herramientas

Men de persianas: es un acceso rpido a las opciones de archivo y de


configuracin.

Fig. a.4 Men de persianas

Visualizador de cdigo asm: es el rea del programa donde se muestra el archivo


generado.

Fig. a.5 Pantalla visualizadora del cdigo

3. Cmo crear un proyecto?

Lo primero que se tiene que hacer para crear un proyecto nuevo presionando el botn
de nuevo

con la matriz principal limpia se empiezan a colocarlos elementos

necesarios para la creacin del proyecto estos se colocan de izquierda a derecha y de


arriba hacia abajo.

Fig. a.6 Gua para realizar el programa

En el programa se muestra uno a uno los elementos que van corriendo para la
ejecucin del programa la primera entrada que se muestra se usar como botn de
start, el elemento que se encuentra con el nmero 2 es el teclado, que se utilizara para
indicar que el programa capturar un dato que se ingrese por el teclado matricial, el
elemento nmero 3 es un lcd de carcter, se utiliza para que el dato que se encuentre
en w se presente en la pantalla en la posicin que se indique al momento de
configurar el dispositivo, el elemento nmero 4 se usara para transferencia entre
registro o entre w en este caso se va a guardar en el registro auxiliar dato1 que
posteriormente se utilizar para compara la clave, 5 es ingreso de teclado, 6 mostrar
el dato en el LCD, 7 transfiere el dato a al variable auxiliar dato2, 8 ingreso de
teclado, 9 mostrar el dato en el LCD, 10 trasfiere el dato la variable auxiliar dato3, el
elemento 11 se llama transferir a w se lo utiliza para transferir la variable auxiliar a
w, 12 comparador de igualdad se utiliza para comparar el registro w que tiene el
valor de dato1 con el valor 35h si la respuesta es afirmativa se pasa a la siguiente
comparacin casa contrario se regresa al inicio del programa, 13 se trasfiere el dato2
a w, 14 se compara el dato de w que tiene el valor de la variable auxiliar dato2 con
37h, si la respuesta es afirmativa se pasa a la siguiente comparacin caso contrario se
regresa al inicio del programa, 15 se transfiere el dato3 a w, 16 se compara el dato de
w que tiene el valor de la variable auxiliar dato3 con 31h si la respuesta es afirmativa
se prosigue con el resto del programa, en caso contrario se regresa al inicio del
programa, 17 se presenta un mensaje que indica que la clave es correcta, es decir que
si el usuario ingresa la clave 571 en el lcd se mostrara la clave es correcta.

3.1 Configuracin de los dispositivos

Para configurar los dispositivos es necesario insertar estos en la matriz principal y


darles doble clic para que salga la pantalla de configuracin, muchos de los
dispositivos se configuran de la misma forma por lo que en varios casos se utiliza la
misma pantalla de configuracin.

Para las entradas alta y baja (

) se carga la siguiente pantalla

Fig. a.7 Pantalla de configuracin del dispositivo de entrada

En esta pantalla se selecciona el registro que se va a comparar, el nmero de bit del


registro que se va a comparar y el paso al que va a saltar en caso de que el resultado
sea positivo.

Para salidas alta y baja (

) se carga la siguiente pantalla.

Fig. a.8 Pantalla de configuracin del dispositivo de salida

En esta pantalla se selecciona el registro y bit en que se va a cargar un bit alto o bajo

Teclado matricial

se carga la siguiente pantalla.

Fig. a.9 Pantalla de configuracin del teclado

Se selecciona el nombre que enlaza al puesto que se va a utilizar si no se selecciona


nada se define como puerto por defecto y se utilizar el puerto b esto se define en el
men de persianas configurar definicin de teclado.

LCD de mensajes

se carga la siguiente pantalla.

Fig. a.10 Pantalla de configuracin del LCD

En esta pantalla se ingresan los mensajes que se quieren presentar en el LCD y se


selecciona el nombre del dispositivo, el nombre del dispositivo esta relacionado con
el puesto que este va a utilizar para los pines que se conectaran al LCD es decir el
enable, el rs, los bit de datos.

LCD de dato

se carga la siguiente pantalla.

Fig. a.11 Pantalla de configuracin LCD Bit

En esta pantalla se ingresan la lnea y en que columna se va a presentar el dato que se


encuentra grabado en W, este dato se presenta en el LCD. Se selecciona el nombre
del dispositivo, el nombre del dispositivo esta relacionado con el puesto que este va a
utilizar para los pines que se conectaran al LCD es decir el enable, el rs, los bit de
datos.

Display

se carga la siguiente pantalla.

Fig. a.12 Pantalla de configuracin del Display

En esta pantalla se selecciona los puertos y el cuarteto de bit que se van a conectar al
display.

Comparadores de igualdad, diferencia, menor igual que y mayor igual que (


y

). Al dar doble clic se carga la siguiente pantalla.

Fig. a.13 Pantalla de configuracin de los comparadores

Para las condiciones se presentas dos tipos de comparaciones puede ser bien con
registro o con nmeros, esta seleccin se la realiza a travs del Radio Button, al
seleccionar nmero se presenta un cuadro de textos donde se puede ingresar un
nmero y al seleccionar registro saldr un ComboBox donde se podr seleccionar de
los diferentes registros ingresados, sea este un nmero o un registro la comparacin
se realizar contra el contenido del registro w y el resultado de esta operacin nos
indicara hasta donde tengo que ir de caso de ser positivo.

Retardo

al dar doble clic se carga la siguiente pantalla.

Fig. a.14 Pantalla de configuracin de Retardo

En esta pantalla se configura el tiempo en minutos o en segundos que se va a


demorar el programa entre ejecutar una operacin a otra.

Transferencia a W

. Al dar doble clic se presenta la siguiente pantalla.

Fig. a.15 Pantalla de configuracin para transferir datos a W

Esta contemplado que se puedan grabar tanto registros como nmeros al valor de W.
Para realizar esto se selecciona en el Radio Botton lo que se quiere que se almacene
en W, si se selecciona el nmero saldr un cuadro de textos para ingresar un valor
numrico y si selecciona registro te aparece un combo box para la seleccin de los
registros.

Transferir a registro

al dar doble clic se cargan la siguiente pantalla.

Fig. a.16 Pantalla de configuracin para transferir datos a los registro

Esta contemplado que se puedan grabar tanto registros como nmeros a otros
registros. Para realizar esto se selecciona en el Radio Botton lo que se quiere que se
almacene en el registro, si se selecciona el nmero saldr un cuadro de texto para
ingresar un valor numrico y si selecciona registro te aparece un ComboBox para la
seleccin de los registros. En la parte inferior se selecciona el registro al que se van a
transferir los datos.

Los iconos para transmisin y recepcin de datos, I2C y RS232 (

) no

se necesita de una pantalla adicional para que cumplan su funcin por lo que solo se
insertan en la pantalla principal debido a que ya se encuentran configurados.

Los iconos de lnea y borrador (

) no cumplen ninguna funcin en la

generacin de cdigo ensamblador slo se utiliza para corregir errores o para mejorar
la apariencia en el programa grafico.

3.2 Men de persianas.

Nuevo: limpia la pantalla.

Abrir: abre el dilogo de abrir en este aparece los archivos de extensin cri este es el
programa que se ingresa en la matriz principal.

Fig. a.17 Pantalla del explorador para abrir los archivos de trabajo

Guardar, Guardar como: abre el dilogo de guardar como que se usa para guardar
el programa grfico que se crea en la matriz principal.

Fig. a.18 Pantalla del explorador para guardar los archivos de trabajo

Definicin de matriz de tecla: se guardan los datos que se presentan en el teclado


matricial en caso de que la matriz del teclado que se compre no tenga la matriz que el
programa tiene por defecto le de la posibilidad de cambiarla.

Fig. a.19 Configuracin del teclado

Definicin de teclado: pantalla que se usa para relacionar un teclado a una etiqueta.

Fig. a.20 Pantalla de configuracin del teclado

Definicin de LCD: pantalla que se usa para relacionar un LCD a una etiqueta.

Fig. a.21 Pantalla de configuracin del LCD

Ingreso de registros: los registros que aparecen en esta pantalla son los registros
mas usados en los pic, adems en esta pantalla se pueden ingresar los registros que
nosotros podemos utilizar como variables auxiliares para almacenar datos.

Fig. a.22 Ingreso de los registro

APNDICE B

APNDICE B.1

UNIVERSIDAD POLITCNICA SALESIANA


FACULTAD DE INGENIERAS
SISTEMAS COMPUTACIONALES

PRCTICA # 1

TEMA: Teclado Matricial y Display de 7 Segmentos

Fecha:
Nombres

: ..

Profesor

: ..

Paralelo

: ..

Problema

Realizar el circuito digital, la programacin ASM y comprobacin del teclado


Matricial y Display de 7 Segmentos utilizando el PIC 16F870. El programa consiste
en ingresar 4 nmeros al azar y presentarlos en cada uno de los display una vez que
se a ingresado el ltimo dgito y su orden depender de cmo hayan sido ingresados,
una vez ingresado se deber pulsar el botn START para volver a ingresar 4 Nuevo
nmeros.

1.-Objetivos
Realizar la programacin adecuada para que funcione correctamente el
programa ASM el PIC 16F870.
Comprobar el funcionamiento de los circuito digital

Comprobar el desempeo del PIC 16F870 de acuerdo a las configuraciones


propuestas

2.- Equipos Y Materiales

1 Teclado Matricial de 4 Filas x 3 Columnas

Cables de conexin

Proto Board

Fuente de Poder

1 PIC 16F870

4 Transistores 203904

4 Resistencias de 510

3 Resistencias de 2.7K

7 Resistencias de 100

4 Display de Ctodo Comn

1 Cristal Metlico de 4 MHz.

3.- Procedimientos

Realizar el circuito digital e implementarlo en el protoboard.

Realizar el programa en formato ASM para luego cargarlo en el PIC 16F870

Configurar las entradas y salidas del circuito de acuerdo la los


requerimientos planteados

Aprender a reconocer la lgica y programacin del PIC 16F870

Realizar pruebas de verificacin

Verificar el funcionamiento del programa

4.- Diagrama Digital

Figura b1.1 Diseo Esquemtico

5.- Diagrama Utilizando el Traductor ASM

Fig. b1.2

81

DESARROLLO

1. Primero se define el problema basado en las condiciones que se plantea


en el proyecto a realizarse.

Este problema es planteado por el profesor para ser resuelto por el estudiante
y esta especificado al inicio de la prctica.

2. Se reconocern y colocan los elementos que se necesitan en la pantalla


principal.
(Los objetos son arrastrados a la pantalla uno a uno).

En este paso lo que tenemos que hacer es reconocer los elementos que se van
a utilizar en esta prctica como son:

Transferencia de Registros,

Teclados,

Display

Los cuales sern escogidos de la barra de herramientas que se encuentra en la


parte izquierda de la pantalla. Vase Figura b1.3.

Figura b1.3 Barra de Herramientas

3. Se configuran los diferentes dispositivos a utilizarse en el proyecto que


puede ser:

Teclados, LCD, Registros, Contactos, Display, etc. Tambin

se insertan los datos necesarios en cada elemento. Se da doble click en el


elemento que se coloc en la pantalla principal para que salga su
correspondiente pantalla, se llenan los datos en la pantalla y se presiona
salir.

En este paso definimos el Teclado, que indicamos al programa el puerto del


PIC que vamos a utilizar, aqu es donde ingresarn los datos que pulsemos en
el teclado. En este paso lo que hacemos es guardar cada uno de los datos
ingresado por el teclado matricial a un registro que ha sido establecido
TECLA en cual se va a presentar despus de un momento

Figura b1.4 Pantallas de configuracin

Finalmente los datos almacenados en los registros sern presentados en cada


uno de los display correspondientes a su debido orden de ingreso pero antes
de eso hay que configurar los display para saber por que puerto del PIC va a
recibir los datos que tiene que mostrar y eso lo configuramos en las pequeas
ventanas.

4. Se ejecuta el corrector de errores para ver si algn elemento no esta bien


configurado, este se sombrear en rojo en para ser identificado. Si es el
caso se corrige.

El Botn verificar sirve para ver si falta configurar algn elemento que se
coloc en la pantalla principal como se muestra en la Figura b.5 en la cual se
olvid colocar el tiempo de retardo.

Figura b1.5 Verificacin de errores

5. Se presiona el botn para realizar la transformacin a ASM.

El Botn Generar sirve para que el programa comience su proceso de


traduccin al lenguaje Assembler de los elementos que se colocaron en la

pantalla principal como se muestra en la Figura b1.6 se puede apreciar el


cdigo fuente de programa

Figura b1.6 Programa Traducido

6. Se guarda el cdigo ASM.

Esta opcin nos ayuda a guarda el cdigo generado por el programa con
extensin *.ASM la cual nos servir para transformar a formato *HEX con la
ayudara del programa MPLAB, y se lo podr quemar en el PIC por medio de
un programador de PIC.

APNDICE C

APNDICE D

LISTADO DE COMPONENTES

Para la parte fsica vamos a necesitar los siguientes materiales, cabe recalcar que el
listado es de todas las prcticas.

Lista de Materiales

1 Proto Borrad
1 LCD
1 Teclado Matricial
1 Microcontrolador 16f870
1 Microcontrolador 16F877
2 Cuarzos de cristal de 4Mhz
8 Resistencias de 100
4 Display BCD de 7 segmentos de ctodo comn
1 Integrado 74LS48
1 Potencimetro de 5K
4 Transistores 2N3904
1 Fuente de Poder de 5V
Cables de conexin

En cambio para la parte del software vamos a necesitar los siguientes requerimientos
tales como:

1 Computador Intel Pentium III de 500Mhz o superior

256 MB de Memoria RAM O superior

Disco duro de 20GB o superior

CD-ROM de 52X o superior

1 Puerto Paralelo

S.O Windows XP with Services Pack 2

Microsoft Visual Basic 6.0

MapLab 7.0

Estos son los requerimientos bsicos para poder instalar el software de traduccin.

Para poder quemar el Programa *.HEX al PIC debemos contar con un quemador de PIC
el cual ser conectado al puerto paralelo del computador para poder enviar las
intrusiones de programa y que se pueda realizar las pruebas necesarias para corregir los
errores.

APNDICE D

APNDICE D

ANLISIS DE COSTO

Debido a que el desarrollo y la dimensin de este proyecto no requiere de una


infraestructura tecnolgica grande o de elementos fsicos necesarios para la
elaboracin del mismo, y tomando en cuenta que es un proyecto de ndole educativo,
todo el costo para el desarrollo e implementacin del mismo se basa nicamente en
los elementos de uso diario que se involucraron por el periodo de 5 meses de trabajo
que dur el desarrollo.

Cabe destacar que en esta lista consta la compra de una PC y la licencia de Visual
Basic, costo que no cubrimos ya que poseamos estos elementos y no fue necesario
comprarlos.

A continuacin realizamos un detalle de todo lo utilizado con su respectivo costo:

DETALLE
Comunicaciones
Uso del Internet (Cable MODEM)
Telfono Celular
Movistar - Alegro
Movistar Movistar
Movistar - Porta
Suministros
Folletos
Tinta negra
Tinta de Color
Resma de hojas
Encuadernaciones
Empastado
CD-R ( unidades )
Plumas, lpices

V. UNITARIO
CANTIDAD
EN $

V. TOTAL
EN $

60

60

60
40
20

0,50
0,08
0,50

30
3,20
10

TOTAL

103,20

7
24
32
3
3
5
1
0,25

14
72
64
15
6
15
2
1,25

TOTAL

168,25

2
3
2
5
2
3
2
5

Equipo de Computo
Pc Desktop

850

850

Licencias
Visual Basic Standard

758.99

758.99

Costos Varios
Movilizacin

--

--

50
$ 1930,44

TOTAL DE PROYECTO. . . .

También podría gustarte