Vous êtes sur la page 1sur 0

ESCUELA POLITCNICA

NACIONAL

ESCUELA DE FORMACIN TECNOLGICA

CONSTRUCCIN DE TARJETA DE DESARROLLO PARA VERIFICAR
PROGRAMAS DE MICROCONTROLADORES PICS DE LA FAMILIA
18FXXX PARA EL LABORATORIO DE MICROPROCESADORES DE
LA ESFOT

PROYECTO PREVIO A LA OBTENCIN DEL TTULO DE
TECNLOGO EN ELECTRNICA Y TELECOMUNICACIONES

ROJAS ROJAS LUIS JAVIER
jalurojo@yahoo.com
MOLINA ALVAREZ DARWIN GEOVANNY
geovanny_molina@hotmail.com
DIRECTOR: COSTALES GUADALUPE ALCIVAR EDUARDO
eduardo.costales@epn.edu.ec

Quito, julio 2010








DECLARACIN

Nosotros, ROJAS ROJAS LUIS JAVIER y MOLINA ALVAREZ DARWIN
GEOVANNY declaramos bajo juramento que el trabajo aqu descrito es de
nuestra autora; que no ha sido previamente presentada para ningn grado o
calificacin profesional; y, que hemos consultado las referencias bibliogrficas
que se incluyen en este documento.

A travs de la presente declaracin cedemos nuestros derechos de propiedad
intelectual correspondiente a este trabajo, a la Escuela Politcnica Nacional,
segn lo establecido por la Ley de Propiedad Intelectual, por su reglamento y por
la normatividad institucional vigente.


Rojas Rojas Luis Javier Molina lvarez Darwin Geovanny








CERTIFICACIN

Certifico que el presente trabajo fue desarrollado por ROJAS ROJAS LUIS
JAVIER y MOLINA ALVAREZ DARWIN GEOVANNY, bajo mi supervisin.





Ing. Alcivar Costales
DIRECTOR DE PROYECTO



















DEDICATORIA

El presente trabajo primeramente lo dedico a Dios que me permite terminar
un ciclo ms en la vida y me da la fuerza diaria para continuar, a mis Padres Jos
Oswaldo Rojas y Deifilia Rojas que con su esfuerzo y compresin supieron darme
los valores necesarios para llegar a ser un excelente profesional, a mi hermana
Fernanda Rojas le dedico este trabajo que es con gran esfuerzo y que siempre
contine en la vida hasta lograr alcanzar sus metas.
Este trabajo tambin le dedico a mi novia Joselyn que supo llegar a mi vida
en el momento preciso y que nunca deje sus sueos y metas porque todo se
consigue con esfuerzo.
A todos mis compaeros y amigos que han valorado el esfuerzo que implica
tener una gran amistad.

Rojas Rojas Luis Javier
















DEDICATORIA

El presente trabajo lo dedico a Dios por permitirme alcanzar una meta mas
en mi vida, a mis padres Marco Molina y Aida Alvarez quienes con su amor y
paciencia siempre me han apoyado y guiado por el buen camino, a mis hermanos
Sonia, Mnica, Marco y Freddy quienes me aconsejaron para siempre cumplir las
metas que hay en la vida y me dieron fuerzas para conseguirlas paso a paso, a
mi novia Andrea Gavilanes quien siempre estuvo a mi lado tanto en los buenos
como en los malos momentos y finalmente a mis compaeros que estuvieron
pendientes de mi formacin profesional.


Molina Alvarez Darwin Geovanny
TEMARIO

i. RESMEN.
ii. INTRODUCCIN.
CAPITULO 1. MARCO TERICO
1.1 TECLADO MATRICIAL. ................................................................................. 1
1.1.1 ESTRUCTURA INTERNA. ......................................................................... 1
1.1.2 CONEXIN. ............................................................................................... 2
1.2 LCD I2C. ....................................................................................................... 3
1.2.1 PARTES CONSTITUTIVAS. .................................................................... 4
1.2.2 MEMORIA INTERNA. .............................................................................. 4
1.2.3 CONEXIN. ............................................................................................. 5
1.3 TOUCH SCREEN. .......................................................................................... 5
1.3.1 TIPOS ...................................................................................................... 6
1.3.2 BENEFICIOS Y UTILIDADES. ................................................................. 9
1.3.3 PROGRAMACIN. .................................................................................. 9
1.4 MICROPROCESADORES. ........................................................................... 13
1.4.1 PIC`s 18FXXX. ....................................................................................... 13
1.4.2 DISPONIBILIDAD I2C. ............................................................................. 15
1.5 PROTOCOLO I2C. ....................................................................................... 15
1.5.1 INTRODUCCIN. ..................................................................................... 15
1.5.2 COMUNICACIN I2C. ............................................................................. 16
1.5.3 IMPLEMENTACIN. ................................................................................ 17
1.6 USB ............................................................................................................. 18
1.6.1 INTRODUCCIN. .................................................................................... 18
1.6.2 USOS. ..................................................................................................... 21
1.7 VISUAL BASIC. .......................................................................................... 22
1.7.1 INTRODUCCIN. ................................................................................... 22

1.7.2 APLICACIONES A LOS Pics 18FXXX .......................................... 24

CAPITULO 2. DISEO

2.1 HARDWARE. .............................................................................................. 25
2.1.1 DIAGRAMA EN BLOQUES. ................................................................ 25
2.1.2 PLANIFICACIN DE ELEMENTOS EN PROTO BOARD. .............. 28
2.1.3 ENSAMBLAJE EN PROTO BOARD. ............................................ 30
2.1.4 ELABORACIN DE PLACA ELECTRNICA. ................................... 31
2.1.4.1 Creacin De Pistas Mediante Proteus Professional (ARES) ....... 31
2.1.4.2 Traslado De Pistas Hasta Baquelita Para Obtener Tarjeta Final... 36
2.1.5 CONEXIONES. ..................................................................................... 37
2.2 SOFTWARE. ............................................................................................... 38
2.2.1 SIMULACIN MEDIANTE PROTEUS PROFESSIONAL (ISIS). ....... 38
2.2.2 PROGRAMAS DE PRUEBA PARA LA TARJETA ELABORADA EN
MIKROC. ......................................................................................................... 41
2.2.3 IMPLEMENTACIN DE UN PROGRAMA EN VISUAL BASIC PARA
INTERACCIN PC TARJETA . ...................................................................... 62
2.2.4 CORRECCIN DE ERRORES. ............................................................ 89

CAPITULO 3.

3.1 CONCLUSIONES Y RECOMENDACIONES ........................................... 91
3.2 BIBLIOGRAFA. ...................................................................................... 94
3.3 ANEXOS. ................................................................................................. 95






i. RESMEN.

El presente trabajo abarca aspectos metodolgicos conocidos en su
mayora por los estudiantes, que permitirn desarrollar una gran gama de
aplicaciones para comprender y familiarizarse con dispositivos electrnicos
desarrollados de tal manera que son compatibles con tecnologas que hoy en da
son muy comunes y estn presentes en muchas aplicaciones ya sean
domsticas, industriales, mecnicas, etc.

El comportamiento creciente de aplicaciones que utilizan
microprocesadores para control y monitoreo de mltiples aplicaciones, hace que
sea de gran importancia el conocimiento del manejo de estos dispositivos y
aprovechar al mximo su potencial, es as, que ponemos en consideracin
algunas aplicaciones que puedan ayudar a entender el funcionamiento de un Pic
18F4550 y la forma como interactuar entre medios tangibles y no tangibles
(medios fsicos y programacin involucrada).














ii. INTRODUCCIN.

La utilizacin de dispositivos electrnicos en mltiples aplicaciones es muy
comn en muchos lugares que visitamos y vara de acuerdo a las necesidades y
requerimientos del cliente.

As para quin disea y proporciona los diferentes dispositivos, trata de que
sean lo ms sencillo posible para una interaccin fcil y rpida.

Utilizar pantallas tctiles (Touch Screen) como perfiles de entrada y salida
a la vez, dejando de lado la necesidad de utilizar botones (Teclados), selectores
manuales, temporizadores externos, etc., producen una optimizacin del
microcontrolador que gobierna todo el circuito y as tener ms aplicaciones
controladas por un solo dispositivo inteligente.

Es necesario conocer entonces el funcionamiento de elementos tales
como: Touch Screen, Teclado Matricial, PIC 18F4550, LCD I2C utilizados en este
proyecto y que se los encuentra en mltiples lugares y en mltiples aplicaciones.

Adems de la interaccin con un ordenador ya sea mediante comunicacin
serial (RS 232), comunicacin paralela (Puerto de Impresora LPT) o ya sea
mediante USB que es la que se utiliza en nuestro proyecto, es importante tambin
conocer como un complemento entre medios fsicos hacia un ordenador y
viceversa.














CAPTULO
1
1


MARCO TERICO

1.1 TECLADO MATRICIAL.

Representa un dispositivo de
entrada generalmente conectado
hacia el microprocesador el cual
permite introducir nicamente
seales de voltaje al momento de ser
presionada una de las teclas y de
esta manera ser procesado este
valor (voltaje) para su respectiva
aplicacin.



1.1.1 ESTRUCTURA INTERNA.

Un teclado matricial est constituido por
pulsadores normalmente abiertos formando
un circuito, el cual se activa al momento de
presionar cualquiera de las teclas enviando
as una seal de voltaje que ser procesada
en el microprocesador o ya sea mediante un
decodificador de teclados.



Para nuestro proyecto se utiliz un teclado
matricial 4x3 que tiene cuatro filas y tres
columnas (Figura 1.2), el cul es un circuito
muy simple permitiendo que solo se active el pulsador o tecla que ha sido
Figura 1.1 Teclado Matricial
Figura 1.2 Teclado Matricial
Estructura Interna
2


presionado.
El dispositivo LDC I2C que se utiliza en este proyecto consta de una
conexin para este tipo de teclado.

Existen teclados que en su estructura interna poseen decodificadores los
cules envan hacia el microprocesador nicamente un valor numrico el cual
representa el nmero de tecla que ha sido presionada.


1.1.2 CONEXIN.

La conexin de un teclado
matricial depende del nmero
de filas y columnas que tenga
ste y generalmente cada
salida del teclado matricial se
lo conecta a una entrada del
microprocesador que va a
gobernar el circuito ya sea en
un solo puerto o entre puertos.

En algunos casos se utilizan resistencias de proteccin para evitar enviar
valores parsitos debido a armnicos que se generan en muchos dispositivos
electrnicos.

Mediante software implementado en el compilador, se puede disminuir de
manera considerable los denominados rebotes o armnicos realizando un
muestreo continuo a una rapidez determinada.



Figura 1.3 Teclado Matricial Esquemtico
3


1.2 LCD I2C.

Es un dispositivo esclavo, es decir, nicamente recibe datos desde el
microprocesador y los presenta en pantalla.
En si es un LCD gobernado por un microprocesador en su estructura
constitutiva, el cual permite transferir datos desde el microprocesador principal, es
decir, desde el circuito de aplicacin, hacia la pantalla utilizando 2 protocolos de
transferencia:

- Protocolo I2C (el cul se va a utilizar en este proyecto) y,
- Protocolo SPI.

Los dos protocolos son de tipo serial, y necesitan nicamente un bus de
datos para su funcionamiento.

La forma de utilizacin entre un protocolo y otro se la realiza mediante la
utilizacin de un jumper, el cual permite inicializar el LCD en modo SPI (jumper
on) o I2C (jumper off).

Se ha considerado a este dispositivo como LCD I2C ya que es el protocolo
de transferencia que se va a utilizar en este proyecto, la forma correcta de
llamarlo es LCD SERIAL.

Figura 1.4 LCD I2C
4


Tal como fue mencionado anteriormente, el dispositivo LCD I2C tiene
incorporado pines de entrada para un teclado matricial 4x3.

El software de programacin ( MikroC por ejemplo ) a utilizarse debe tener
incluida la funcin para habilitar el modo I2C , el cul enva cdigos hacia el
microprocesador propio del LCD Serial, el cul interpreta, procesa y muestra el
carcter deseado.




1.2.1 PARTES CONSTITUTIVAS.

En la Figura 1.5, tenemos
la distribucin de pines del LCD
Serial, en la cual se muestra al
lado izquierdo en color rojo 4
pines los cuales representan la
polarizacin del LCD as como el
BUS SERIAL de datos, en la
parte inferior y de color rojo
tambin se muestran los pines
correspondientes a la conexin del
TECLADO MATRICIAL 4x3 indicndose la forma de conexin tanto en filas y
columnas y por ltimo en una circunferencia de color rojo se muestra el jumper
para seleccin entre modo SPI e I2C.


1.2.2 MEMORIA INTERNA.

Teniendo en cuenta que el dispositivo en su conjunto lleva incluido un
microprocesador 16F819, es aqu donde se ha designado un Buffer de 64bytes
para recibir datos desde el circuito principal, procesarlos y sacarlos en pantalla
Figura 1.5 LCD I2C Parte
5


mediante sistema FIFO (First In First Out).

Se trata entonces de un Buffer de 8 bytes, con lo que puede recibir hasta
paquetes de hasta 8 caracteres por vez.

1.2.3 CONEXIN.

Como se trata de un BUS I2C nicamente, las lneas SDA y SCL del LCD
I2C son conectadas directamente hacia los pines P33 (RB0) y P34 (RB1) del
microprocesador 18F4550 respectivamente y en alguna parte de esta conexin
conectar resistencias de pull-up de un valor de 10K c/u necesarias para
proteccin del dispositivo I2C y necesarias tambin para las condiciones de Inicio
de transferencia de datos (Start) y Parada de transferencia de datos (Stop).


1.3 TOUCH SCREEN.

Un Touch Screen o pantalla tctil
es una lmina resistiva transparente
que puede detectar una pulsacin
dentro de una rea determinada, esta
pulsacin puede estar dada por la
mano o comnmente por un lpiz
ptico.

El dispositivo acta como perifrico de
entrada y la accin ocurrida en est se
lo transfiere a un GLCD (Graphical
Led Display).

Se tiene una gran variedad de aplicaciones para estos dispositivos
generalmente en computadoras y celulares.

Figura 1.6 G LCD con Touch Screen
6


1.3.1 TIPOS

En el desarrollo de los Touch Screen se utilizan varias topologas como:
Capacitancia.
Superficie de Onda Acstica (SAW).
Infrarrojo.
Resistiva.
TOUCH SCREEN CAPACITIVO

Recubierto con un material que almacena cargas elctricas, cuando el
panel est tocado, una pequea cantidad de carga es atrada por el punto de
contacto.

Circuitos ubicados en cada esquina del panel detectan la variacin de
corriente y enva informacin al controlador para su procesamiento.

Paneles de pantalla tctil capacitiva se debe tocar con un dedo a
diferencia de los paneles de resistencia y la onda de superficie que pueden utilizar
los dedos y lpiz, adems que pantallas tctiles capacitivas no se ven afectadas
por elementos externos y tienen una gran claridad.

TOUCH SCREEN DE SUPERFICIE DE ONDA ACSTICA (SAW).

La tecnologa Surface Acoustic Wave es uno de los tipos de pantalla tctil
ms avanzada y se basa en el envo de ondas acsticas a travs de un panel de
vidrio transparente con una serie de transductores y reflectores.

Cuando un dedo toca la pantalla, las ondas son absorbidas causando un
evento tctil que se detecta en ese punto.

Debido a que el panel es enteramente de cristal, no hay capas que se
puede usar, dando a esta tecnologa el mayor factor de durabilidad y tambin la
mayor claridad.
7


TOUCH SCREEN DE INFRARROJO.

En una pantalla tctil de infrarrojos se utiliza una matriz de XY infrarrojos
LED y un foto-detector pares alrededor de los bordes de la pantalla para detectar
una alteracin en el patrn de LED.

Al momento de la pulsacin, se interrumpe el haz de luz infrarrojo desde el
emisor hasta el detector, provocando en ambos ejes (X, Y) un punto muerto que
es detectado y enviado al microcontrolador para su procesamiento.

Una ventaja importante de este sistema es que puede detectar
prcticamente cualquier entrada incluyendo un dedo, dedo enguantado, lpiz o
bolgrafo.

A diferencia de pantallas tctiles capacitivas, las pantallas tctiles de
infrarrojos no requieren ningn patrn en el cristal que aumenta la durabilidad y la
claridad ptica de todo el sistema.

TOUCH SCREEN RESISTIVO.

Usada en nuestro proyecto, esta topologa es la ms comn y por tanto la
ms utilizada debido a su fortaleza y confianza al momento de realizar alguna
aplicacin.

Podemos encontrar Touch Screen de 4, 5, 6, 7, 8 hilos.

La diferencia entre uno y otro vara de acuerdo al tamao de la pantalla
tctil, puntos de sensibilidad y sobre todo la aplicacin.




8


El funcionamiento de esta topologa bsicamente consta de un divisor de
tensin (voltaje) de acuerdo a cuatro posiciones X, Y, -X, -Y, como se puede ver
en la Figura 1.7.




El diseo de un Touch Screen se basa en tres capas:

Capa X+Y+.
Capa X- Y-.
Capa de vidrio transparente.

Las capas: X+Y+ y X-Y- son resistivas y su composicin es un baado de
ITO (oxido de indio y estao).

Los voltajes analgicos que en estas capas se generan son enviados hacia
el microprocesador para ser procesados.

En cambio la capa de vidrio transparente es nicamente de proteccin para
las otras 2 capas y evita que estas se deterioren.
Figura 1.7 Capas de Touch Screen (4 Hilos)
9


1.3.2 BENEFICIOS Y UTILIDADES.

Tenemos variedad de aplicaciones entre otros tenemos:

Monitores.
Control de Computadoras.
Control de UPS.
Celulares.
Lector de Huellas.
Teclados Virtuales.
Aplicaciones Grficas de Alta Velocidad.
Control de Refrigeradoras, Televisores, Lavadoras, etc.


1.3.3 PROGRAMACIN.

De acuerdo a la aplicacin, el funcionamiento y por tanto la programacin de
un Touch Screen depende bsicamente de un controlador diseado a base de
transistores PNP y NPN que trabajan conjuntamente para obtener valores
analgicos de voltaje de las 2 capas resistivas que constituyen el Touch Screen.

De esta manera los valores obtenidos son procesados y convertidos en
valores digitales para aplicarlos ya sea en un LCD o en un GLCD.

10




Ntese en la Figura 1.8 que existen 2 Drivers (DRIVEA y DRIVEB) los
cules van conectados hacia el microprocesador y controlan (salidas digitales) el
estado de polarizacin de los transistores tanto NPN como PNP para que puedan
ser obtenidos valores analgicos desde cada una de las capas (X+Y+ y X-Y-).

Valores analgicos ingresan al microprocesador mediante pines que son
configurados como entradas analgicas (depende de cada microprocesador) para
su procesamiento y posterior aplicacin.

Estos valores analgicos una vez convertidos en valores digitales son ya
interpretados por el microprocesador y nos dan coordenadas X (capa X+Y+) y
coordenada Y (capa X-Y-) para representar un punto en el GLCD o bien realizar la
lectura de un valor previamente programado.
Es necesario entender tambin que el rango en el que puede caer el valor
digital est estrechamente relacionado con el rango de conversin que nos da el
microprocesador, el cual est dado por el nmero de bits de conversin.
Figura 1.8 Controlador de Touch Screen
11


Ecuacin 1.1
Ecuacin 1.2
Es as que al tener un convertidor A/D de 10 bits, implica que el menor valor
analgico ledo y procesado corresponder a un valor digital 0x0 (0 en sistema
decimal) y el mayor valor analgico ledo y procesado corresponder a un valor
digital 0x3FF (1023 en sistema decimal) de acuerdo con la frmula:

# Valores digitales = 2
#bits A/D
-1

El valor digital (1023 valores) que corresponde a cada valor de voltaje
analgico depende en cambio del tamao del paso del convertidos A/D y de los
valores de la fuente de polarizacin tanto en estado bajo como en estado alto ya
que la diferencia de potencial entre estos estados determinan cada qu valor de
voltaje analgico es asignado un valor digital.

Sea K = tamao del paso:



En nuestro caso al tener una fuente de polarizacin de 0v (0mv) en estado
bajo y 5v (5000mv) en estado alto, el tamao del paso es de:



As para un valor analgico de 2v, el valor digital ser:



De esta forma se obtienen los valores digitales para cada capa (X+Y+, X-Y-)
y por tanto se determina la coordenada X, Y para representar un punto en el
GLCD.

Ntese que la resolucin obtenida se refiere a un sistema cuadrado de 1024
12


x 1024 puntos o pixeles posibles el cul debe ser transformado a una resolucin
que pueda ser vista en el dispositivo que se est utilizando, es decir, si se utiliza
un GLCD de resolucin 128x64 pixeles para el eje de coordenadas X el mayor
valor digital (1023) corresponder el valor 128 y para el otro eje de coordenadas Y
el mayor valor digital (1023) corresponder en cambio el valor 64.

Este cambio de coordenadas se lo puede realizar de manera sencilla en el
programa que se est diseando utilizando una variable la cual toma el valor para
cada coordenada mediante una simple regla de tres.

Para nuestro proyecto se utilizaron:

Entradas Analgicas (PIC 18F4550):
- Port A.F0 (Left Touch Screen)
- Port A.F1 (Bottom Touch Screen)

Salidas Digitales (PIC 18F4550):
- Port A.F2 (Driver A)
- Port A.F3 (Driver B)

Ejemplos de aplicacin son detallados en el Captulo 2.2.2 Programas de
Prueba Para La Tarjeta Elaborada en Mikro-C




13


1.4 MICROPROCESADORES.

Un Microprocesador forma parte de un circuito integrado llamado
Microcontrolador.

Un Microcontrolador en su interior incluye las tres unidades de una
computadora y puede ser programado:
- Unidad Central de Procesamiento (CPU).
- Memoria y
- Unidades de E/S (Entrada y Salida):


Figura 1.9. Esquema de un Microcontrolador.

La estructura interna de un microprocesador es muy compleja y depende del
tipo de chip que se trate. Aunque todos poseen el esquema general mostrado en
la Figura 1.9

1.4.1 PIC`s 18FXXX.

Son Microcontroladores en cuya estructura interna se tienen caractersticas
mejoradas en comparacin con Microcontroladores de familias anteriores, sean
estas 16FXXX y/o 14FXXX, tanto en memoria de programa, de datos, como en
funciones para las que se les puede utilizar.

14


El nmero de puertos y por tanto el nmero de pines de algunos
Microcontroladores de esta familia se incrementa teniendo as hasta 44 pines con
los cules se optimiza de mejor manera la utilizacin de un nico microprocesador
para mltiples funciones tales como:

Convertidores Analgicos Digitales y viceversa.
Comunicacin con otros Microcontroladores.
Modulacin PWM.
Comunicacin SPI.
Comunicacin I2C.
Comunicacin USB.

Estas 2 ltimas (USB e I2C) propias de varios tipos de microcontroladores
18FXXX por ejemplo:

18F2455.
18F2550.
18F4455.
18F4550.

El microprocesador que se utiliza para desarrollar nuestra tarjeta es el
PIC18F4550, se lo escogi por sus caractersticas tanto de memoria y facilidad
de conectarse a la computadora ya que permite conexin USB y adems
podemos trabajar mediante
comunicacin I2C.


Figura 1.10 Distribucin de Pines del 18F4550
15


1.4.2 DISPONIBILIDAD I2C.

Detallados en el numeral anterior, los microprocesadores con disponibilidad
I2C pueden ser de 2 formatos.

SDIP (Standard DIP)
SOIC (Small Outline Integrated Circuit)
TQFP (Thin Quad Flat Pack)
PDIP(Dual In Line Package)

Es decir, en formato planar (soldados encima de la placa) o en formato
transversa (soldados al lado contrario de la placa mediante orificios para cada
pin).


1.5 PROTOCOLO I2C.

El protocolo de comunicacin I2C (Integrated Integrated Circuit)
es una forma serial de enviar o recibir datos desde distintos
dispositivos conectados en una red y se la realiza mediante un BUS
I2C.


1.5.1 INTRODUCCIN.

En un BUS I2C estn conectados todos los dispositivos I2C todos ellos con
distintas direcciones fsicas y que requieren:
Una nica lnea para transmitir y recibir datos (SDA) dependiendo de qu
dispositivo inicia la transferencia de datos.
Una lnea la cual representa la seal de reloj a la que trabaja el sistema
(SCL).
Dos lneas para polarizacin de los dispositivos conectados al bus: GND y
VCC.
16


En el BUS I2C las lneas de datos y reloj SDA y SCL respectivamente, van
conectadas hacia la fuente de polarizacin Vcc mediante resistencias de pull-up
generalmente de 10K cada una.

La transmisin y recepcin de datos se realiza nicamente en la lnea de
datos SDA mediante
cdigos de start, direccin
de dispositivo, instruccin
a realizar y cdigo de stop
bsicamente.


Figura 1.11 Condiciones de START y STOP del Bus I2C


1.5.2 COMUNICACIN I2C.

Para nuestro proyecto, la comunicacin se realiza entre el microprocesador
(18F4550) y el LCD I2C nicamente ya que este tipo de LCD est diseado con
esta finalidad (adems de comunicacin SPI).

Si bien es posible la comunicacin de un microprocesador con una PC
mediante comunicacin I2C, este tipo de conexin no es comn ya que la
comunicacin mediante USB representa la gran mayora de dispositivos Plug &
Play por su gran rapidez y facilidad de conexin.

Entonces si es posible la comunicacin PC-I2C a travs de una interfaz ya
sea RS232 o el llamado USB ya que muchas computadoras llevan integradas en
sus tarjetas madre (mainboards) stos terminales (RS232 y USB).

Dispositivos I2C tales como: relojes en tiempo real, sensores,
microprocesadores, memorias, etc. pueden ser conectados hacia el bus I2C
nicamente conectando sus respectivas lneas (SDA y SCL) hacia el bus como
17


podemos observar en la Figura 1.12


Figura 1.12 Dispositivos en Bus I2C


1.5.3 IMPLEMENTACIN.

Con la ayuda del compilador MikroC el cual tiene incorporado libreras
necesarias para que la comunicacin I2C sea realizada, se realiza el programa
que permitir enviar datos desde el microprocesador (dispositivo maestro) hacia el
LCD I2C (dispositivo esclavo) y mostrar los caracteres deseados en una
determinada secuencia que puede ser repetitiva o no.

Si bien es posible la comunicacin entre PC LCD I2C, esta requiere de una
interfaz que permita esta comunicacin ya sea mediante USB o RS232 como ya
se expuso anteriormente.

De hecho para enviar datos o instrucciones desde una PC hacia el LCD I2C
se realiza la siguiente operacin:

Con la ayuda de una aplicacin en Visual Basic desde el ordenador hacia
el microprocesador (18F4550) utilizando comunicacin USB se realiza la
interaccin PC - C.
Mediante programacin en MikroC se realiza la interaccin C - LCD I2C.

Ejemplos de aplicacin sern detallados en la seccin 2.2.2 Programas de
prueba para la tarjeta elaborada en Mikro-C, adems de la seccin ANEXOS en la
18


que estn detallados todos los programas que se realizaron para este proyecto.


1.6 USB

El protocolo de comunicacin USB ( Universal Serial Bus )
como su nombre lo indica es otro tipo de comunicacin serial
que al igual que el protocolo I2C se lo realiza mediante un Bus
en el cul constan la lnea de datos D+, lnea de reloj D- y dos
lneas de polarizacin GND y Vcc.

La diferencia entre USB e I2C radica en la mayor velocidad con la que en
USB son transferidos los datos desde un lugar a otro, ideal para dispositivos que
requieren rapidez para su funcionamiento tales como:

Impresoras.
Cmaras Web.
Micrfonos.
Parlantes.
Telfonos Mviles.
Lectores de Huellas, etc.

Por esta razn a sido difundido con mayor amplitud este tipo de
comunicacin y por tanto los dispositivos que utilizan este protocolo tambin han
ido en aumento.


1.6.1 INTRODUCCIN.

(Universal Serial Bus) o bus serial universal naci con el propsito de
remplazar la comunicacin serie o paralelo que tenamos anteriormente.

Con la comunicacin USB se pudo unificar todos los perifricos externos.
19


La comunicacin USB es la ms aplicada en nuestros das ya que por sus
facilidades, su velocidad y versatilidad han permitido un desarrollo increble con
este protocolo de comunicacin, lo que permite que una gran cantidad de
perifricos puedan conectarse a la computadora de una forma simple y rpida.

En un bus USB existen dos tipos de elementos: Anfitrin ("host") y
dispositivos; a su vez, los dispositivos pueden ser de dos tipos: concentradores
y funciones
Los concentradores ("Hubs") son el centro de una estrella, y sirven para
conectar con el sistema anfitrin, con otro hub o con una funcin.
Cada hub puede conectar hasta 7 dispositivos, aunque lo normal es que
sean de 4 salidas y proporcionan 500 mA de alimentacin (hasta 2.5 W) a cada
uno de ellos, ya que el cable de conexin tiene hilos de seal (datos) y de
alimentacin (5 V. CC 0.25 V).
Una funcin es un dispositivo capaz de transmitir o recibir datos o
informacin de control en un bus USB, suele conectarse como un dispositivo
independiente enlazado por un cable de menos de 5 metros, a un puerto del hub
o directamente al sistema anfitrin.
Que un hub pueda estar conectado a otro hub, significa que pueden
conectarse dispositivos en cascada; el sistema soporta un total 127dispositivos.
Una caracterstica importante es que el concentrador (hub), proporcionan la
energa necesaria a la funcin por el cable de conexin (que transporta fuerza y
datos), lo que evita la necesidad de fuentes de alimentacin independientes a las
funciones.
El cable USB es de 4 hilos, y comprende lnea de seal de datos (D+),
lnea de seal de reloj (D-) y alimentacin (GND y Vcc) con lo que las funciones
pueden utilizar un nico cable.
Existen dos tipos de cable: apantallado y sin apantallar, en el primer caso el
par de hilos de seal es trenzado; los de tierra y alimentacin son rectos, y la
20


Figura 1.13 Izq. Propiedades del Conductor, Der. Distribucin de Pines USB
cubierta de proteccin (pantalla) solo puede conectarse a tierra en el anfitrin, en
el cable sin apantallar todos los hilos son rectos, las conexiones a 15 Mbps y
superiores exigen cable apantallado.







Se utilizan dimetros estndar para los hilos de alimentacin del bus, para
cada seccin se autoriza una longitud mxima del segmento, en la tabla izquierda
se muestran estas distancias, a la derecha se muestran la disposicin de pines y
colores de identificacin.
Se usan dos tipos de conectores, A y B, ambos son polarizados (solo
pueden insertarse en una posicin) y utilizan sistemas de presin para sujetarse.
Los de tipo A utilizan conectores hembra en el sistema anfitrin, y suelen
usarse en dispositivos en los que la conexin es permanente (por ejemplo,
ratones y teclados).
Los de tipo B utilizan conectores hembra en el dispositivo USB (funcin) y
se utilizan en sistemas mviles (por ejemplo, cmaras fotogrficas o altavoces).
AWG mm long. Mx.
28 0.321 0.81 m
26 0.405 1.31 m
24 0.511 2.08 m
22 0.644 3.33 m
20 0.812 5.00 m
Pin Nombre Descripcin Color
1 VBUS + 5 V. CC rojo
2 D- Data - azul
3 D+ Data + amarillo
4 GND Tierra verde

21


En general podemos afirmar que los conectores tipo A estn en el lado
del host (PC) o de los concentradores (hubs), mientras que los conectores tipo B
estn del lado de los perifricos.


Conector tipo A Conector tipo B

Figura 1.14 Tipos de Conectores USB


1.6.2 USOS.

Los usos son diversos dentro de este sistema de comunicacin por la gran
diversidad ya que hoy en da casi todas las conexiones de los perifricos se los
realizan con un protocolo de comunicacin USB, los perifricos como el mouse, o
memorias externas, cmaras digitales, teclados, etc. Una diversidad de perifricos
ha adoptado este protocolo de comunicacin.

La tarjeta de prueba que se desarroll lleva implementada una comunicacin
USB lo que nos permite conectar nuestro microprocesador con una CPU para
poder interactuar entre estos dos dispositivos, para esto se desarrollo programa
creado en visual Basic y en micro C con la finalidad de enviar datos y se puedan
observar en display en nuestro caso un LCD.


22


1.7 VISUAL BASIC.

Mediante este software, es posible
generar un programa el cul permita de
manera didctica controlar los dispositivos
pertenecientes a la TARJETA.

Esta interaccin PC-TARJETA se la
realiza gracias a un asistente de conexin (no
es el nico) llamado Easy HID.


1.7.1 INTRODUCCIN.

Visual Basic es un software de programacin orientado a objetos, es decir,
posee funciones prediseadas las que pueden ser utilizadas indistintamente sin
necesidad de generar cdigo alguno para su creacin mas si para su
funcionamiento.

De esta manera podemos disear a nuestro parecer y de manera sencilla
una aplicacin para interactuar desde el computador y as enviar cdigos hacia el
microprocesador ubicado en la tarjeta para controlar los dispositivos electrnicos,
sean estos el GLCD y/o LCD I2C.

Esta interaccin (PC-TARJETA) se la realiza mediante protocolo de
comunicacin USB utilizando para ello un Asistente de Conexin, que para
nuestro proyecto es el EASY HID WIZARD.

EASY HID WIZARD es un software de distribucin gratuita (hasta ciertos
lmites), que genera automticamente los cdigos necesarios para la
comunicacin USB tanto para Visual Basic como para el compilador utilizado para
programar el microprocesador.

23






Figura 1.15Archivos
Generados por EASY HID.





En la Figura 1.15 se muestran los archivos generados mediante EASY HID,
y ntese que para el compilador se genera un archivo en PicBasicPRO lo cul no
es til para nuestro proyecto ya que nuestro compilador es MikroC.





Para solucionar este problema
se recurre a generar el programa para
conexin USB utilizando el Asistente
HID (Human Interface Device) del
propio MikroC, el que permite generar
el cdigo para MikroC, MikroBasic o
MikroPascal como se observa en la
Figura1.16.

Adjuntando el archivo generado por el Asistente HID de MikroC al programa
de aplicacin que se est realizando para la comunicacin entre el computador y
la tarjeta mediante comunicacin USB, se genera en el computador un lazo de
Figura1.16 Archivo Generado por Mikro C
24


unin que es reconocido e instalado y de esta manera realizar operaciones entre
PC-TARJETA a travs de la aplicacin diseada en Visual Basic.

Los pasos a realizarse para este efecto, son detallados en la seccin 2.2.3
Implementacin de un programa en Visual Basic para interaccin PC-
Tarjeta.

1.7.2 APLICACIONES A LOS Pics 18FXXX

Como se explic
anteriormente, el software que
ayuda a generar tanto la
aplicacin para Visual Basic como
para el compilador a utilizarse es
EASY HID WIZARD, siendo
posibles nicamente 4
microcontroladores 18FXXX para
comunicacin USB, ya que stos
microcontroladores son los
nicos de esta familia con disponibilidad USB.
De esta manera se debe estar seguro del microprocesador a utilizarse para
comenzar a generar la aplicacin en Visual Basic y as no tener problemas de
reconocimiento del dispositivo fsico (Tarjeta Electrnica).



Figura 1.17 Proyecto Generado por EASY
HID










CAPTULO
2
25


DISEO

2.1 HARDWARE.

Mediante las pruebas realizadas en Proto-Board en lo que a conexin USB
se refiere, se determin la necesidad de utilizar una fuente externa ya que el
puerto USB no entrega la corriente necesaria para el funcionamiento de la tarjeta.
Esto se debe a que tericamente cualquier puerto USB tiene la capacidad
de entregar una corriente mxima de 500mA, pero en la prctica, esta corriente no
alcanza los 100mA razn por la cual al momento de conectar la tarjeta al
computador, sta no llega a funcionar normalmente debido precisamente a
cuestiones elctricas.
Con la fuente de voltaje externa y diseada para una corriente mxima de
1A, se supera este problema pero constituye un bloque adicional a la Tarjeta.
El diseo de la tarjeta con todas las consideraciones tanto de energa como
de espacio, han determinado un total de 4 bloques de hardware los cuales son
detallados a continuacin.

2.1.1 DIAGRAMA EN BLOQUES.

El programador de Pics GTP-USB dispuesto en nuestra Tarjeta
Electrnica resulta muy til debido a la facilidad de utilizacin y rapidez al
momento de programar un microprocesador.



26











Windows XP es compatible con este programador ya que versiones
posteriores tienen conflictos al momento de conectarlo al computador.

El controlador de Touch Screen consiste
de un arreglo de transistores NPN-PNP,
resistores y capacitores que permiten leer
valores analgicos desde el dispositivo Touch
Screen mediante valores lgicos de polarizacin
enviados desde el microprocesador para
polarizar los transistores ubicados en lugares
adecuados.
Esto permite que en tiempos muy
pequeos (s) se obtengan valores de cada
una de las capas individualmente, es decir, una
capa por vez.
Dependiendo de qu Driver acta primero
se habilita una de las capas del Touch Screen y
esto se lo realiza mediante programacin en el microprocesador.
1
2
3
4
J1
CONN-H4
Q1
2N3904
Q2
2N3904
Q3
2N3904
Q4
2N3906
Q5
2N3906
VSS
R1
1k
R2
1k
1
2
3
4
J2
CONN-H4
R3
47k
C1
100n
R4
1k
R5
1k
R6
1k
R7
1k
R8
1k
Top
Left
Botton
Right
Driver A
Driver B
Botton
Left
R11
1k
C12
100n
R12
47k
C
O
N
T
R
O
L
A
D
O
R

T
O
U
C
H

S
C
R
E
E
N
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT/RCV
6
RA5/AN4/SS/LVDIN/C2OUT
7
RA6/OSC2/CLKO
10
OSC1/CLKI
9
RB0/AN12/INT0/FLT0/SDI/SDA
21
RB1/AN10/INT1/SCK/SCL
22
RB2/AN8/INT2/VMO
23
RB3/AN9/CCP2/VPO
24
RB4/AN11/KBI0/CSSPP
25
RB5/KBI1/PGM
26
RB6/KBI2/PGC
27
RB7/KBI3/PGD
28
RC0/T1OSO/T1CKI
11
RC1/T1OSI/CCP2/UOE
12
RC2/CCP1
13
VUSB
14
RC4/D-/VM
15
RC5/D+/VP
16
RC6/TX/CK
17
RC7/RX/DT/SDO
18
RE3/MCLR/VPP
1
U1
PIC18F2550
V
C
C
1
D
+
3
D
-
2
G
N
D
4
J1
USBCONN
C7
100nF
D1
DIODE
D2
DIODE
D3
DIODE
D4
DIODE
R1
2k2
Q1
BC548
Q2
BC548
R2
4k7
R3
4k7
C1
1uF
C2
1uF
C3
10uF
R4
10k
C4
15pF
C5
15pF
R5
100
R6
100
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT/RCV
6
RA5/AN4/SS/LVDIN/C2OUT
7
RA6/OSC2/CLKO
14
OSC1/CLKI
13
RB0/AN12/INT0/FLT0/SDI/SDA
33
RB1/AN10/INT1/SCK/SCL
34
RB2/AN8/INT2/VMO
35
RB3/AN9/CCP2/VPO
36
RB4/AN11/KBI0/CSSPP
37
RB5/KBI1/PGM
38
RB6/KBI2/PGC
39
RB7/KBI3/PGD
40
RC0/T1OSO/T1CKI
15
RC1/T1OSI/CCP2/UOE
16
RC2/CCP1/P1A
17
VUSB
18
RC4/D-/VM
23
RC5/D+/VP
24
RC6/TX/CK
25
RC7/RX/DT/SDO
26
RD0/SPP0
19
RD1/SPP1
20
RD2/SPP2
21
RD3/SPP3
22
RD4/SPP4
27
RD5/SPP5/P1B
28
RD6/SPP6/P1C
29
RD7/SPP7/P1D
30
RE0/AN5/CK1SPP
8
RE1/AN6/CK2SPP
9
RE2/AN7/OESPP
10
RE3/MCLR/VPP
1
U2
PIC18F4550
C6
47uF
D7
DIODE
R9
2k2
R8
1k
R7
1k
D5
LED-BLUE
D6
LED-BLUE
PROGRAMADOR
GTP - USB LITE
Figura 2.1 Esquema del Programador GTP-
USB LITE (PROTEUS)
Figura 2.2 Esquema del
Controlador Touch Screen
(Proteus).
27


El microcontrolador conjuntamente con el GLCD, Touch Screen, Teclado
Matricial y LCD I2C constituyen otro bloque de nuestra tarjeta aunque puede ser
dividida en 2 pequeos bloques debido a la posibilidad de utilizar un par de
dispositivos independientemente.
Nos referimos al par Touch Screen GLCD y al par LCD I2C Teclado
Matricial.
La habilitacin de cada par se la realiza mediante la activacin de un
switch, esto debido a que una vez conectada la fuente de energa a la tarjeta,
siempre se tendr activados los dispositivos de la misma y mediante el uso switch
podemos inhabilitar una seccin cualquiera que se trate ahorrando de esta
manera energa en el sistema.












Figura 2.3 Esquema de la Tarjeta de Desarrollo (Proteus)
C
S
1
1
C
S
2
2
G
N
D
3
V
C
C
4
V
0
5
R
S
6
R
/W
7
E
8
D
B
0
9
D
B
1
1
0
D
B
2
1
1
D
B
3
1
2
D
B
4
1
3
D
B
5
1
4
D
B
6
1
5
D
B
7
1
6
R
S
T
1
7
-V
o
u
t
1
8
GLCD
AMPIRE128X64
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT/RCV
6
RA5/AN4/SS/LVDIN/C2OUT
7
RA6/OSC2/CLKO
14
OSC1/CLKI
13
RB0/AN12/INT0/FLT0/SDI/SDA
33
RB1/AN10/INT1/SCK/SCL
34
RB2/AN8/INT2/VMO
35
RB3/AN9/CCP2/VPO
36
RB4/AN11/KBI0/CSSPP
37
RB5/KBI1/PGM
38
RB6/KBI2/PGC
39
RB7/KBI3/PGD
40
RC0/T1OSO/T1CKI
15
RC1/T1OSI/CCP2/UOE
16
RC2/CCP1/P1A
17
VUSB
18
RC4/D-/VM
23
RC5/D+/VP
24
RC6/TX/CK
25
RC7/RX/DT/SDO
26
RD0/SPP0
19
RD1/SPP1
20
RD2/SPP2
21
RD3/SPP3
22
RD4/SPP4
27
RD5/SPP5/P1B
28
RD6/SPP6/P1C
29
RD7/SPP7/P1D
30
RE0/AN5/CK1SPP
8
RE1/AN6/CK2SPP
9
RE2/AN7/OESPP
10
RE3/MCLR/VPP
1
U3
PIC18F4550
R18
10k
R19
1k
C9
100p
C8
100p
OSC
20Mz
RV1 1k
C11
100n
C10
100n
1
2
3
4
LCD I2C
CONN-H4
R20
10k
R21
10k
1234567
TECLADO 4X3 I2C
CONN-SIL7
1 2 3
4 5 6
7 8 9
0 #
123
A
B
C
D
1
2
J3
HEADER
FU1
1A
1
2
3
4
J6
CONN-H4 1
2
J8
CONN-SIL2
1
2
3
J10
CONN-SIL3
1
J7
CONN-SIL1
1
J9
CONN-SIL1
1
J11
CONN-SIL1
1
J12
CONN-SIL1
1
J13
CONN-SIL1
V
C
C
D
+
D
-
G
N
D
J4
AU-Y1006-R
SW1
SWITCH-PRINCIPAL
SW2
SWITCH - GLCD _ TOUCH SCREEN
SW3
SWITCH - LCD I2C
28


Adems se ubica un interruptor general (switch) para encender o apagar la
tarjeta en su conjunto.
La fuente de
alimentacin es considerada
un bloque adicional a la
Tarjeta Electrnica ya que
como se explic
anteriormente, la energa
suministrada por un puerto
USB es insuficiente para el
correcto funcionamiento de
los dispositivos constitutivos
de dicha tarjeta.
Como podemos observar es una fuente muy simple con la particularidad de
entregar hasta una corriente mxima de 1A, lo cual es suficiente para su correcto
funcionamiento.

2.1.2 PLANIFICACIN DE ELEMENTOS EN PROTO BOARD.

Pensando en la comodidad para el usuario, la ubicacin de los dispositivos
se ha diseado de tal manera que el GLCD con su respectivo TOUCH SCREEN
estn lo ms cerca posible hacia el CONTROLADOR Touch Screen ya que es
necesario para su funcionamiento y de la misma manera, el LCD I2C lo ms cerca
posible del TECLADO MATRICIAL ya que en su conjunto forman un nico
dispositivo completo.
Se refiere entonces a la seccin inferior de la Tarjeta Electrnica en la que
se ubica el Controlador Touch Screen precisamente a continuacin del GLCD con
su respectivo Touch Screen y con el switch que habilita o deshabilita todo este
conjunto permitiendo ahorrar energa para aplicaciones en las que no se utilice
estos dispositivos.
PUENTE DIODOS / 1A
TRANSFORMADOR 12/12 V
C1
2200u
VI
1
VO
3
G
N
D
2
U1
7805
C2
100p
1
2
J1
SALIDA FUENTE 5V
D1
LED
R1
1k
V
120V
FUSIBLE
Figura 2.4 Esquema de la Fuente de
Alimentacin 5V/1A (Proteus).
29


Cabe recalcar que para aplicaciones en las que interviene nicamente el
GLCD, tanto el Controlador y el Touch Screen pasan desapercibidos ya que su
funcionamiento depende de una programacin mediante 4 pines del
microprocesador, caso contrario no recibe polarizacin y por consiguiente no
intervendran en lo absoluto.
En la parte superior en cambio se ubica el Teclado Matricial 4x3 a
continuacin del LCD I2C y de igual manera un switch el cul habilita o deshabilita
el conjunto de igual manera para ahorrar energa.
Finalmente, en la parte inferior derecha se ubica el programador de pics
(18F4550 y 18F2550) GTP-USB LITE para facilidad y rapidez al momento de
poner en prctica los programas desarrollados para los dispositivos electrnicos
de la Tarjeta Electrnica.
La programacin de microprocesadores se la realiza mediante el software
WinPic800 el que es distribuido de manera gratuita en la siguiente direccin
http://www.winpic800.com/ y como se explic anteriormente es compatible con
Windows XP.


30


2.1.3 ENSAMBLAJE EN PROTO BOARD.


Figura 2.5 Ensamblaje y Pruebas en Proto-Board

De acuerdo a la ubicacin que tomar cada dispositivo en la Placa
Electrnica, se procede a armar el circuito en Proto-Board tomando en cuenta la
optimizacin del espacio fsico en una dimensin aconsejable para su correcta
manipulacin.
Ntese que en la Figura mostrada, no consta el Programador GTP-USB
Lite ya que no constituye una herramienta de control desde el computador o el
microprocesador.



31


2.1.4 ELABORACIN DE PLACA ELECTRNICA.

Consiste de 3 etapas claramente diferenciadas y que para cada una de
ellas se realiza un procedimiento dirigido, es decir, tomar en cuenta aspectos
elctricos, aspectos fsicos y medios qumicos.
As por ejemplo para el diseo se determinan aspectos elctricos mediante
Proteus ISIS (2.2.1 Diagrama En Bloques), el cual nos ayuda a determinar la
validez o no de una conexin mediante simulacin.
Para aspectos fsicos en cambio nos remitimos a ARES, el cual nos permite
representar los elementos en un plano (Board Edge) y as determinar las
distancias correctas a las que se debe ubicar un elemento de otro para optimizar
el espacio.
Y en aspectos qumicos nos referimos al mtodo mediante el cual nuestras
pistas elctricas ya elaboradas son transferidas hacia un medio tangible
(baquelita) ubicando nuestros dispositivos electrnicos y as realizar las
respectivas pruebas de funcionamiento para determinar posibles errores. Para
nuestro caso se realiz el mtodo de Insolacin el cul ser explicado
posteriormente.

2.1.4.1 CREACIN DE PISTAS MEDIANTE PROTEUS PROFESIONAL (ARES)

Terminada la etapa de diseo en bloques realizada en Proteus ISIS,
mediante el cono ARES ,
procedemos a ubicar los elementos
electrnicos en la posicin detallada en el
captulo 2.2 Planificacin de elementos
en Proto-Board previamente
estableciendo la capa de soldadura
(Board Edge) indispensable para la
creacin de pistas, sin esta sera
imposible enrutar cada dispositivo mediante una lnea de conexin y as colocar
Figura 2.6 Seleccin de Capa de
Suelda.
32


cada elemento de tal forma que sean lo ms compactamente posible y tomando
en cuenta espacios fsicos reales de los elementos constituyentes de la Tarjeta
Electrnica.


Una vez ingresado al software para creacin de pistas ARES ,
inmediatamente tenemos todos los elementos utilizados en el diseo mediante
Proteus ISIS y cuya lista aparece en orden alfabtico y as ubicar un elemento
rpidamente para su colocacin en el plano de soldadura





Figura 2.7 Traslado de Componentes para el
Diseo.





Trasladados todos los elementos a la mesa de trabajo se procede a la
ubicacin de nuestros elementos.

Esta tal vez es la parte ms complicada ya que para evitar errores al mandar
a enrutar nuestro circuito, lo hacemos a doble lado por la complejidad y
dimensiones de la tarjeta.

De esta manera se logra disminuir potenciales errores en lo que a cercana
de pistas se refiere aunque esto conlleva a la creacin automtica de puentes
que para nuestra tarjeta resultan ser 9.

La forma de ubicar los elementos electrnicos se la realiza de manera
33


manual o automtica, siendo esta ltima la menos recomendable ya que si bien
enruta todos los elementos electrnicos establece en muchos de los casos un
nmero exagerado de puentes que hacen difciles las conexiones entre capas
superior e inferior.

Se observa en la Figura 2.8 un ejemplo de distribuir - enrutar
automticamente todos los elementos y la generacin de puentes sealados por
el crculo en rojo.


Para evitar precisamente este problema, se coloca manualmente todos y
cada uno de los elementos electrnicos de manera tal que cumpla con las
caractersticas de ser
compacta y disminuir al
mximo la generacin
de puentes.

Una vez
planificada
adecuadamente la
distribucin de
elementos y colocadas
en nuestro plano de
soldadura, enrutamos
teniendo como
resultado un total de 19
puentes los que son
reducidos a 9 mediante
caminos manuales de pista ya que existen caminos que no son tomados en
cuenta por el Diseo Automtico de Pistas ya que se trata de un software que
sigue determinados parmetros.
Logrando as un circuito elctrico tanto en capa superior como en capa
inferior con un nmero relativamente aceptable de uniones alternas (puentes).
Figura 2.8 Enrutamiento Automtico
(Generacin de Mltiples Puentes).
34


As nuestra tarjeta en capa inferior (Bottom) consiste en su mayor parte de
pistas con un espesor T30 y en capa superior con puentes del mismo espesor
indicado.

El grfico en la Figura 2.9 detallado muestra el esquema final de la placa en
su parte inferior (Bottom) y ntese que se ha agregado un relleno de cobre.





















Figura 2.9 Tarjeta de Desarrollo Parte Inferior



En la Figura 2.10 se observa el esquema de la placa final en la parte
superior (Top), en el que constan tanto los puentes generados (9) adems de la
35


simbologa de los elementos electrnicos utilizados.






















Figura 2.10 Tarjeta de Desarrollo Parte Superior


36


2.1.4.2 TRASLADO DE PISTAS HASTA BAQUELITA PARA OBTENER
TARJETA FINAL.

El proceso mediante el cual se traslada el diseo con sus respectivas
pistas electrnicas desde un computador hacia un medio fsico se lo realiza de
muchas maneras algunas sofisticadas y otras caseras.
As por ejemplo como medio sofisticado tenemos mquinas especiales que
de manera automtica y guiadas mediante algn software, graban en una placa
las pistas de forma muy precisa y rpida , pero que constituyen una alternativa no
muy econmica en lo que a ahorro de dinero se refiere.

Por esta razn se determin la necesidad de seguir un mtodo alternativo y
relativamente econmico para trasladar las pistas hacia una placa.

De esta manera construimos un INSOLADOR que mediante exposicin a
rayos ultravioleta en un ambiente oscuro con ayuda de NEGATIVOS tanto de
placa inferior como de placa superior y de algunos qumicos (cido Ntrico,
Esmalte Fotosensible, cido Crmico) permiten grabar en una baquelita o placa
las pistas diseadas de forma muy aceptable.

El procedimiento es el siguiente:
En primer lugar lijar (lija # 40 o # 50) la superficie de la baquelita para
obtener una superficie suficientemente liza para que pueda ser impregnada
de mejor manera el Esmalte Fotosensible.
Una vez lijado y secado, limpiamos la superficie con Polvo Blanco de
Espaa (polvo muy fino), el cual elimina cualquier resto de impurezas
presentes todava en la baquelita.
Se la lava con agua y se la seca nuevamente.
Aislamos en un ambiente obscuro para impregnar sobre esta el Esmalte
Fotosensible y la dejamos secar.
Seco el Esmalte Fotosensible y siempre en un ambiente obscuro, se
procede a adjuntar los negativos del circuito electrnico al lado correcto
para ingresar el conjunto a la INSOLADORA.
37


Alrededor de 6 minutos son necesarios para impregnar mediante luz
ultravioleta los campos (pistas) en la baquelita.
Luego de sacar el conjunto de la INSOLADORA, se sumerge la baquelita
en Acido Crmico hasta distinguir claramente todas las pistas de la capa en
cuestin (15 a 20 seg.).
Inmediatamente despus se roca con agua a chorro para eliminar el
exceso de Esmalte que no fue expuesto a luz ultravioleta, obteniendo de
esta manera un dibujo exacto del negativo.
Con la ayuda de un mechero a una distancia de al menos 10cm y siempre
en movimiento la baquelita, se queman las pistas hasta llegar a una
coloracin Caf Oscuro punto en el cual est lista para retirar el cobre que
no es de nuestra utilidad.
Finalmente, introducimos la baquelita en Acido Ntrico hasta que
nicamente queden las pistas de color Caf Oscuro y con cuidado ya que
se trata de qumicos muy peligrosos.


Experimentando este mtodo y al momento de realizar pruebas de
funcionamiento se obtienen resultados satisfactorios.

2.1.5 CONEXIONES.

Una vez retirado el cobre innecesario, realizamos en primer lugar una
verificacin visual cuidadosa del circuito impreso para detectar posibles fallas de
conexin al utilizar el mtodo por INSOLACIN.
De no encontrar ninguna anomala visual, retiramos el Barniz de los puntos
de soldadura de los elementos con una lija suave para mediante el uso de un
Multmetro medir continuidad desde todos y cada uno de los puntos hacia sus
respectivos terminales (conexiones) asegurando con los 2 procesos anteriores
que no exista falencias en conexiones y as someter a pruebas de funcionamiento
nuestra Placa Electrnica.
38


De existir fallas detectadas visualmente o mediante el multmetro ser
necesario elaborar la Tarjeta Electrnica nuevamente desde un inicio.


2.2 SOFTWARE.

El presente captulo se refiere a las herramientas informticas (software) que
ayudan al usuario a disear, simular e interactuar con dispositivos electrnicos de
manera sencilla y lgica.

As para determinar la validez de una conexin recurrimos a una
simulacin la cul muestra el funcionamiento de un determinado circuito y de
esta manera asimilar los conocimientos y determinar la validez o no de dicha
conexin.

Podemos decir que el diseo y la simulacin van claramente de la mano
ayudndonos a realizar un circuito y a determinar errores por confusin de ideas o
por fallidas conexiones.

En lo que a interaccin se refiere una forma de realizarla es precisamente
mediante simulacin, en especial para comunicarnos hacia nuestra tarjeta la que
existe como un medio virtual dentro de nuestro computador.

Esto siempre y cuando tengamos un programa para el microprocesador que
permita dichas simulaciones y que para nuestro caso utilizamos MikroC.


2.2.1 SIMULACIN MEDIANTE PROTEUS PROFESSIONAL (ISIS).

Proteus Professional ISIS es una herramienta muy til que nos permite
disear con una gran cantidad de dispositivos elctricos y electrnicos un sin-
39


nmero de circuitos y poder observar su funcionamiento como si tuviramos el
hardware en nuestras manos.

El manejo de este software es relativamente simple ya que permite
interconectar cada elemento de forma rpida y sin necesidad de crear puntos de
acceso a ellos como si resulta ser en otro simulador (Eagle).
Observamos una simulacin en la cual nicamente interviene un Pic
18F4550 y un GLCD Figura 2.11.
Ntese que los pines utilizados para el manejo del GLCD, MCLR y
polarizacin del GLCD intervienen en la simulacin.
Tanto el oscilador como resistencias adicionales al circuito quedan
relegadas ya que se supone deben estar conectadas.











Figura 2.11 Conexin del GLCD mediante Pic 18F4550
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT/RCV
6
RA5/AN4/SS/LVDIN/C2OUT
7
RA6/OSC2/CLKO
14
OSC1/CLKI
13
RB0/AN12/INT0/FLT0/SDI/SDA
33
RB1/AN10/INT1/SCK/SCL
34
RB2/AN8/INT2/VMO
35
RB3/AN9/CCP2/VPO
36
RB4/AN11/KBI0/CSSPP
37
RB5/KBI1/PGM
38
RB6/KBI2/PGC
39
RB7/KBI3/PGD
40
RC0/T1OSO/T1CKI
15
RC1/T1OSI/CCP2/UOE
16
RC2/CCP1/P1A
17
VUSB
18
RC4/D-/VM
23
RC5/D+/VP
24
RC6/TX/CK
25
RC7/RX/DT/SDO
26
RD0/SPP0
19
RD1/SPP1
20
RD2/SPP2
21
RD3/SPP3
22
RD4/SPP4
27
RD5/SPP5/P1B
28
RD6/SPP6/P1C
29
RD7/SPP7/P1D
30
RE0/AN5/CK1SPP
8
RE1/AN6/CK2SPP
9
RE2/AN7/OESPP
10
RE3/MCLR/VPP
1
U1
PIC18F4550
C
S
1
1
C
S
2
2
G
N
D
3
V
C
C
4
V
0
5
R
S
6
R
/
W
7
E
8
D
B
0
9
D
B
1
1
0
D
B
2
1
1
D
B
3
1
2
D
B
4
1
3
D
B
5
1
4
D
B
6
1
5
D
B
7
1
6
R
S
T
1
7
-
V
o
u
t
1
8
LCD1
AMPIRE128X64
40


Representado
por 2 potencimetros,
el siguiente circuito
muestra una
simulacin mediante
Touch Screen en la
cual se observa un
punto por cada
coordenada XY
generadas por cada
convertidor A/D.




Esto es precisamente el funcionamiento de un Touch Screen y su resultado
expresado en un GLCD es muy diverso dependiendo del programa.

Un Touch Screen nos ayuda a poner en prctica varias aplicaciones tanto
didcticas como de seguridad.

Por ejemplo:
- Con la ayuda de un lpiz propio de un Touch Screen dibujar y grabar
un bosquejo para luego editarlo si se desea.
- Un programa para crear una calculadora tctil con su respectivo
valor expresado en la misma pantalla.
- Control de acceso mediante el uso de una contrasea.
- Interaccin entre dispositivos escogidos desde la pantalla tctil.
- Control de iluminacin de un sector de una vivienda, edificio, etc.
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT/RCV
6
RA5/AN4/SS/LVDIN/C2OUT
7
RA6/OSC2/CLKO
14
OSC1/CLKI
13
RB0/AN12/INT0/FLT0/SDI/SDA
33
RB1/AN10/INT1/SCK/SCL
34
RB2/AN8/INT2/VMO
35
RB3/AN9/CCP2/VPO
36
RB4/AN11/KBI0/CSSPP
37
RB5/KBI1/PGM
38
RB6/KBI2/PGC
39
RB7/KBI3/PGD
40
RC0/T1OSO/T1CKI
15
RC1/T1OSI/CCP2/UOE
16
RC2/CCP1/P1A
17
VUSB
18
RC4/D-/VM
23
RC5/D+/VP
24
RC6/TX/CK
25
RC7/RX/DT/SDO
26
RD0/SPP0
19
RD1/SPP1
20
RD2/SPP2
21
RD3/SPP3
22
RD4/SPP4
27
RD5/SPP5/P1B
28
RD6/SPP6/P1C
29
RD7/SPP7/P1D
30
RE0/AN5/CK1SPP
8
RE1/AN6/CK2SPP
9
RE2/AN7/OESPP
10
RE3/MCLR/VPP
1
U1
PIC18F4550
C
S
1
1
C
S
2
2
G
N
D
3
V
C
C
4
V
0
5
R
S
6
R
/W
7
E
8
D
B
0
9
D
B
1
1
0
D
B
2
1
1
D
B
3
1
2
D
B
4
1
3
D
B
5
1
4
D
B
6
1
5
D
B
7
1
6
R
S
T
1
7
-
V
o
u
t
1
8
LCD1
AMPIRE128X64
R1
10k
RV2
1k
RV1
1k
Figura 2.12 Representacin de Touch Screen Mediante
Divisin de Tensin
41


Debemos tener en cuenta que todas estas aplicaciones las realiza el
microprocesador que gobierna el circuito, un Touch Screen nicamente nos da
una facilidad visual y esttica de cualquier aplicacin que deseemos.

2.2.2 PROGRAMAS DE PRUEBA PARA LA TARJETA ELABORADA EN
MIKROC.

Los programas expuestos a continuacin son desarrollados en MikroC,
comprobados mediante Proto-Board y nicamente representan pruebas de
funcionamiento de cada uno de los elementos electrnicos componentes de
nuestra tarjeta electrnica (GLCD, LCD I2C y Touch Screen).

El resultado obtenido puede ser observado mediante fotografas tomadas al
momento de poner en prctica el programa desarrollado.

* PRIMER PROGRAMA DE PRUEBA:
Prueba de Funcionamiento del GLCD.
unsigned char const ESFOT_bmp [1024] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,240, 48, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0,
42


0, 0, 0, 0, 0, 0,192,224, 48, 16, 16, 16, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,112, 16, 16, 16, 16,
16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 32,
16, 16, 16, 16, 48,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 16, 16,240,240, 16, 16, 16, 16, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,192,254, 7, 4, 4, 4, 4, 0, 0, 0,128,128, 0, 0, 0,
0, 0, 0, 0,128, 0, 1, 3, 6,140,252,120, 0, 0,128,128,
0, 0, 0, 0, 0, 0, 0, 0,192,254, 15, 4, 4, 4, 4, 0,
0,128,128, 0, 0, 0, 0, 0, 0, 0, 0,124,255,129, 0, 0,
0, 0,128,192,120, 31, 0, 0,128,128, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,128,252, 31, 0, 0, 0, 0, 0,128,128, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 0, 0,128, 1, 1, 0, 0, 0,
0,128, 0, 0, 0, 1, 1,129,129,129,128, 0, 0, 0, 1,129,
128,128,128, 0, 0, 0, 0,128,129,129,128, 0, 0, 0, 0, 0,
128, 1, 1, 0, 0,128,128,128,128,128,128, 0, 0,129,129,129,
129, 1, 0, 0, 0,128,128,128,129, 1, 0, 0,128, 0, 0, 0,
128,128,128,128, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,120, 67, 64, 64, 96, 16, 28,
19, 17, 31, 64, 0, 0,120, 71, 68, 68, 62, 1, 0, 60, 67, 64,
64, 64, 32, 25, 6, 0,120, 7, 4, 12,114, 1, 96, 16, 28, 19,
17, 31, 64, 0, 0, 0, 96, 31, 0, 0, 0, 60, 67, 64, 64, 64,
32, 25, 6, 0,120, 7, 4, 12,114, 1, 0,120, 3, 0, 60, 67,
64, 64, 64, 32, 25, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
43


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,224, 28, 28,192, 0,128, 32, 24,236, 12, 0,192, 28, 0,
224, 24, 12, 4, 4, 12, 0,192, 60, 36,100,148, 8, 0,224, 24,
4, 4, 4, 4,200, 48, 0,192, 92, 68, 68, 36, 24, 0,192, 60,
36,100,148, 8, 0,224, 24, 4, 4, 4, 4,200, 48, 0,224, 24,
12, 4, 4, 12, 0,192, 60, 36, 36, 4, 4, 16, 44,100,196, 8,
0,128,224,152,140,248, 0, 0, 0,192, 28, 4, 4, 4,200, 48,
0,224, 24, 4, 4, 4, 4,200, 48, 0,192, 60, 36,100,148, 8,
0,192, 60, 36, 36, 4, 4, 16, 44,100,196, 8, 0, 0, 0, 0,
0, 0, 3, 0, 0, 3, 3, 0, 0, 0, 3, 0, 0, 3, 0, 0,
1, 2, 2, 2, 1, 0, 0, 3, 0, 0, 0, 3, 0, 0, 1, 2,
2, 2, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0,
0, 0, 3, 0, 0, 1, 2, 2, 2, 2, 1, 0, 0, 0, 1, 2,
2, 2, 1, 0, 0, 3, 2, 2, 2, 0, 1, 2, 2, 2, 1, 0,
3, 0, 0, 0, 0, 0, 2, 0, 0, 3, 2, 2, 2, 1, 0, 0,
0, 1, 2, 2, 2, 2, 1, 0, 0, 0, 3, 0, 0, 0, 3, 0,
0, 3, 2, 2, 2, 0, 1, 2, 2, 2, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
unsigned char const TARJETA_bmp[1024] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
44


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,130,254, 30, 2, 2,
2, 2, 0, 0,128, 96, 56, 14, 30,252, 0, 0, 0, 0, 0,192,
254,142,130,130,194,102, 60, 8, 0, 0, 0, 0,248, 62, 0, 0,
192,254,134,130,130,130, 2, 2, 0, 0, 2, 2,130,254, 30, 2,
2, 2, 2, 0, 0,128, 96, 56, 14, 30,252, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,192,254, 6, 2, 2, 2, 2, 4,252, 96, 0,
0,192,254,134,130,130,130, 2, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 63, 3, 0, 0, 0,
0, 48, 28, 7, 5, 4, 4, 4, 4, 15, 63, 0, 0, 0, 56, 63,
1, 0, 0, 1, 15, 62, 0, 32, 32, 32, 48, 31, 3, 0, 0, 56,
63, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 48, 63, 3, 0, 0,
0, 0, 48, 28, 7, 5, 4, 4, 4, 4, 15, 63, 0, 0, 0, 0,
0, 0, 0, 0, 56, 63, 32, 32, 32, 32, 16, 24, 14, 3, 0, 0,
56, 63, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
45


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,192,254, 6, 2, 2, 2, 2, 4,252,
96, 0, 0,192,254,134,130,130,130, 2, 2, 0, 0, 56,124,198,
130,130, 2, 4, 0, 0, 0,128, 96, 56, 14, 30,252, 0, 0, 0,
0, 0,192,254,142,130,130,194,102, 60, 8, 0, 0,192,254,142,
130,130,194,102, 60, 8, 0,128,240, 56, 12, 4, 2, 2, 2, 2,
6,252, 0, 0, 0,192,254, 6, 0, 0, 0, 0, 0,192,254, 6,
0, 0, 0, 0,128,240, 56, 12, 4, 2, 2, 2, 2, 6,252, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 56, 63, 32, 32, 32, 32, 16, 24, 14, 3,
0, 0, 56, 63, 32, 32, 32, 32, 32, 0, 0, 16, 32, 32, 32, 32,
49, 31, 15, 0, 48, 28, 7, 5, 4, 4, 4, 4, 15, 63, 0, 0,
0, 56, 63, 1, 0, 0, 1, 15, 62, 0, 0, 0, 56, 63, 1, 0,
0, 1, 15, 62, 0, 0, 0, 15, 31, 48, 32, 32, 32, 32, 16, 24,
15, 3, 0, 0, 56, 63, 32, 32, 32, 32, 0, 0, 56, 63, 32, 32,
32, 32, 0, 0, 15, 31, 48, 32, 32, 32, 32, 16, 24, 15, 3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
46


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
unsigned char const grupo_bmp[1024] = {
0, 0, 0, 0, 0, 0, 0,128,128,128,128,128, 0, 0, 0, 0,
0, 0, 0,128,128, 0, 0, 0, 0, 0,128,128,128,128,128, 0,
0, 0,128, 0, 0, 0, 0,128,128, 0, 0, 0, 0,128,128, 0,
0,128, 0, 0, 0,128, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,
0, 0, 0,128,128, 0, 0, 0, 0, 0, 0,128,128, 0, 0, 0,
0, 0,128,128,128,128, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,
0, 0,128, 0, 0, 0,128, 0, 0, 0, 0, 0,128, 0, 0, 0,
0, 0,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,224, 63, 1, 0, 0,128,193, 63, 12,128,224,
48, 44, 35, 33, 63,240, 0, 0,224, 63, 17, 16, 48,232, 15, 0,
0, 0,255,128,192, 48, 12, 3,255,128,192, 48, 12, 3, 0,224,
63, 1, 0,224, 63, 1, 7, 60,224,192,124, 7, 0, 0, 0, 0,
0,224, 63, 3, 15,248,128, 96, 48, 12, 6,241, 15, 0, 0,248,
134, 1, 0, 0,128,192,127, 4, 0,224, 63, 1, 0, 0, 0, 0,
224, 63, 1, 0,224, 63, 1, 7, 60,224,192,124, 7,128,224, 48,
44, 35, 33, 63,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
47


0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,240, 28, 0, 0,128, 96, 24, 12,252,128, 0,
0, 0,252,128, 0, 0,192,112, 24, 4, 0,248, 12, 0, 0,248,
76, 68, 68, 68, 4, 0, 0,248,140,132,132, 68,124, 0, 0, 0,
0, 0, 0, 0,248,140,132,132, 68,124, 0, 0,192, 48, 8, 4,
4, 4, 4,248, 32, 0, 0, 0,240, 28, 0, 0,128, 96, 24, 12,
252,128, 0, 0, 0,120, 68,196,132, 12, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 8, 8, 6, 3, 0, 12, 7, 1, 1, 1, 1, 1, 15, 0,
0, 0, 0, 15, 12, 3, 0, 0, 0, 0, 15, 1, 0, 0, 15, 9,
8, 8, 8, 0, 0, 0, 15, 1, 0, 0, 1, 15, 0, 0, 0, 0,
0, 0, 0, 15, 1, 0, 0, 1, 15, 0, 0, 0, 7, 12, 8, 8,
8, 12, 6, 3, 0, 8, 8, 6, 3, 0, 12, 7, 1, 1, 1, 1,
1, 15, 0, 4, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,128,192,192, 0, 0, 0, 0, 0, 0,192,192, 0, 0,
0, 0, 0,128,192,192, 0, 0, 0, 0,192, 0, 0, 0, 0,192,
64, 0, 0,128, 64, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,192, 96, 0, 0, 0, 0, 0,128, 64,
64, 64,192, 0, 0, 0,128,192, 64, 64,192,128, 0, 0, 0,128,
128,192, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,240, 31, 1, 7,252,192, 48, 24, 6, 3,248, 7, 0,192,
112, 24, 22, 17, 16, 31,248, 0, 0, 0, 1,255, 28, 6, 3, 0,
0,124,195,128,128,128,192, 96, 63, 2, 0, 0, 0, 0, 0, 0,
48


0, 0,128, 96, 48, 12, 3, 0, 0, 0, 0, 0,128,192,224,176,
152,140, 7, 0, 0,126,131,128,128, 64, 56, 15, 0,128,129,193,
252,131,128, 0, 0,126,131,128,128, 64, 56, 15, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
unsigned char const estudiando_bmp[1024] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,128,192, 64,192,128,128,128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 8,248,252,252,252,
248,184,240,224,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 64,
32,156,228, 33,153,251, 3, 31,243, 7, 6, 6, 5, 13, 12, 8,
24, 26, 26, 16, 52, 52, 52, 40, 40,104, 80,240, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255,128,193,255,255,255,
255,255,127, 31, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,128, 64, 32, 32, 96,192,192,192,192,192,128, 0, 0, 0, 0,
0, 0, 0, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 96, 96, 96,176,136, 68, 38, 33, 24, 16,
2, 7,140,124, 63, 7, 63,240, 3,124,192, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,124,192, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,255,255,255,
255,224,192,192,192,192,192,128,128,128,128,128,192,192,192,192,
248, 1, 0, 0, 0, 0, 99,255,255,255,255,255,255,240,240,248,
252,252,254,254,252,252,254,254,254,255,254,255,229,195,154, 70,
46, 94, 62, 54, 42, 10, 22, 10, 10,222,223,184,184,112,224,192,
192,192,192,192, 64, 64,192, 7,127, 64, 97,254,252,240,240,240,
224,224, 96,224,224,224,192,192,192,192,192,192,192,128,131,158,
240,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 31, 31, 31, 63,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 48, 72,224, 96,244,255,255,255,255,223,207,199,231,243,243,
251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,
50


254,254,124,124,126, 60, 62, 28, 31, 31, 15, 15, 15, 15, 15, 12,
30, 29, 61, 61, 57,125,125,125,251,243,243,247,251,250,250,242,
180, 22, 28, 13, 13, 13, 3, 2, 3,195,199,197, 77,109,191,135,
3, 3, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124,192,146,207,253,253,127,127,127,127,127,255,255,127, 63, 31,
15, 15, 7, 7, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 7,
7, 6, 12, 24, 16, 48, 32, 41, 49, 43,110,124, 52, 39, 38, 62,
10, 11, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
void main() {
ADCON1=0b00001101;
TRISB=0;
TRISD=0;
Glcd_Init(&PORTB,2,3,4,5,6,7,&PORTD);
repita:
Glcd_Fill(0);
Glcd_Image(ESFOT_bmp);
51


delay_ms(100);
Glcd_Fill(0);
Glcd_Image(TARJETA_BMP);
delay_ms(100);
Glcd_Fill(0);
Glcd_Image(grupo_BMP);
delay_ms(100);
Glcd_Fill(0);
Glcd_Image(estudiando_bmp);
delay_ms(100);
goto repita;
}
52


Ntese en la Figura 2.13 que los grficos
generados en este ejemplo constituyen la
gran mayora de lneas de cdigo y en s
el programa para presentar en pantalla
estos caracteres es por lo contrario muy
corto.

Observamos el resultado deseado
mostrado en pantalla de acuerdo a la
programacin.





Resultado real en nuestra
tarjeta electrnica




Figura 2.13 GLCD Prueba de
Funcionamiento (Proto - Board).
Figura 2.14 GLCD Prueba de
Funcionamiento (Tarjeta de Desarrollo).
53


* SEGUNDO PROGRAMA DE PRUEBA:
Prueba de Funcionamiento del LCDI2C.

void main(){
ADCON1 = 0xFF;
TRISB = 0;
PORTB = 0;
repita:
Soft_I2C_Config(&PORTb, 0, 1);
Soft_I2C_Start();
Soft_I2C_Write(0xc6);
Soft_I2C_Write(0);
Soft_I2C_Write(19);
Soft_I2C_Write(12);
Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(1);
Soft_I2C_Write('D');
Soft_I2C_Write('A');
Soft_I2C_Write('R');
Soft_I2C_Write('W');
Soft_I2C_Write('I');
Soft_I2C_Write('N');

Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(21);
Soft_I2C_Write('G');
54


Soft_I2C_Write('E');
Soft_I2C_Write('O');
Soft_I2C_Write('V');
Soft_I2C_Write('A');
Soft_I2C_Write('N');
Soft_I2C_Write('N');
Soft_I2C_Write('Y');

Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(41);
Soft_I2C_Write('M');
Soft_I2C_Write('O');
Soft_I2C_Write('L');
Soft_I2C_Write('I');
Soft_I2C_Write('N');
Soft_I2C_Write('A');

Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(61);
Soft_I2C_Write('A');
Soft_I2C_Write('L');
Soft_I2C_Write('V');
Soft_I2C_Write('A');
Soft_I2C_Write('R');
Soft_I2C_Write('E');
Soft_I2C_Write('Z');
Soft_I2C_Stop();
55


delay_ms(1000);

Soft_I2C_Start();
Soft_I2C_Write(0xc6);
Soft_I2C_Write(0);
Soft_I2C_Write(19);
Soft_I2C_Write(12);
Soft_I2C_Write(0xc6);
Soft_I2C_Write(0);
Soft_I2C_Write(12);
Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(6);
Soft_I2C_Write('E');
Soft_I2C_Write('S');
Soft_I2C_Write('C');
Soft_I2C_Write('U');
Soft_I2C_Write('E');
Soft_I2C_Write('L');
Soft_I2C_Write('A');

Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(24);
Soft_I2C_Write('P');
Soft_I2C_Write('O');
Soft_I2C_Write('L');
Soft_I2C_Write('I');
Soft_I2C_Write('T');
56


Soft_I2C_Write('E');
Soft_I2C_Write('C');
Soft_I2C_Write('N');
Soft_I2C_Write('I');
Soft_I2C_Write('C');
Soft_I2C_Write('A');

Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(46);
Soft_I2C_Write('N');
Soft_I2C_Write('A');
Soft_I2C_Write('C');
Soft_I2C_Write('I');
Soft_I2C_Write('O');
Soft_I2C_Write('N');
Soft_I2C_Write('A');
Soft_I2C_Write('L');
Soft_I2C_Stop();
delay_ms(1000);
goto repita;
}
57



Observamos un
correcto funcionamiento de
nuestro LCD-I2C teniendo en
cuenta que el control del mismo
es desarrollado mediante
software:

Soft_I2C_Config(&PORTb, 0,
1);





Resultado en nuestra tarjeta.





Figura 2.15 LCD I2C Prueba de
Funcionamiento (Proto Board).
Figura 2.16 LCD I2C Prueba de
Funcionamiento (Tarjeta de Desarrollo).
58


* TERCER PROGRAMA DE PRUEBA:
Prueba de Funcionamiento del Touch Screen.

const unsigned int ADC_THRESHOLD = 970; //Mximo valor digital de GLCD
float x_min, y_min, x_max, y_max;
char PressDetect() { // para detectar una presin del touch
unsigned adc_rd;
char result;
PortA.F2=0;
PortA.F3=0;
adc_rd = ADC_read(1);
result = (adc_rd > ADC_THRESHOLD);
Delay_us(10);
adc_rd = ADC_read(1);
result = result & (adc_rd > ADC_THRESHOLD);
return result;
}
unsigned int x() { // para encontrar la cordenada x
unsigned int lecturax;
float x;
PortA.F2=1;
PortA.F3=0;
lecturax=adc_read(0);
x=lecturax/8,0;
return x; }
unsigned int y() { // para encontrar la coordenada y
unsigned int lecturay;
float y;
59


PortA.F2=0;
PortA.F3=1;
lecturay=adc_read(1);
y=lecturay/16,0;
return y;
}
unsigned float x1(){ //sectorizacin de GLCD
float x1;

x1 = ((x()+1)-(64/x()));
return x1;
}
unsigned float x2(){ //sectorizacin de GLCD
float x2;
x2 = (((5*x())-64)/4);
return x2;
}
unsigned float y1(){ //sectorizacin de GLCD
float y1;
y1 = ((y()+1)-(72/y()));
return y1;
}
unsigned float y2(){ //sectorizacin de GLCD
float y2;
y2 = (((4*y())-33)/3);
return y2;
}
void main(){
ADCON1=0b00001101;
60


PORTA=0;
TRISA=0b0000011;
Glcd_Init(&PortB,2,3,4,5,6,7,&PortD);
Glcd_Fill(0);
delay_us(100);
repita:
Glcd_Rectangle(119,1,127,11,1);
Glcd_Write_Text("B",121,0,1);
while(!PressDetect()){ //Mientras hay pulsacin
if ((x()<=64)&&(y()<=32)){
glcd_dot(x1(),y1(),1);
delay_us(750);
goto repita;}
if ((x()<=64)&&(y()>32)){
glcd_dot(x1(),y2(),1);
delay_us(750);
goto repita;}
if ((x()>64)&&(y()<=32)){
x2();
y1();
if((((x2()<=127)&&(y1()<=10))&&((x2()>=119)&&(y1()>=0)))){
glcd_fill(0);
delay_us(750);
goto repita;}
else {
glcd_dot(x2(),y1(),1);
delay_us(750);
goto repita;}
}
61


if ((x()>64)&&(y()>32)){
glcd_dot(x2(),y2(),1);
delay_us(750);
goto repita;}
}
}

Observamos un bosquejo
cualquiera realizado con la
ayuda de un lpiz plstico el
cul protege las delicadas
capas que conforman el Touch
Screen.







Resultado en Placa Electrnica.




Figura 2.17 Touch Screen Prueba de
Funcionamiento (Proto Board).
Figura 2.18 Touch Screen Prueba de
Funcionamiento (Tarjeta de Desarrollo).
62


2.2.3 IMPLEMENTACIN DE UN PROGRAMA EN VISUAL BASIC PARA
INTERACCIN PC TARJETA.

Como anteriormente se mencion, mediante la ayuda de EASY HID
generamos la aplicacin de Interfaz de Usuario PC-TARJETA.
Esta aplicacin tiene que ser diseada de acuerdo a nuestras necesidades
de tal manera que sea realista y fcil de implementar.
A continuacin de muestran los pasos realizados para este efecto tanto en
Visual Basic como en MikroC.

* GENERACIN DE PROYECTO MEDIANTE EASY HID.


Figura 2.19 PARMETROS DE
IDENTIFICACIN.


Figura2.20
PARMETROS
IMPORTANTES PARA
COMPATIBILIDAD CON
MIKRO C


63




Figura 2.21 NOMBRE DE
PROYECTO USB EN VISUAL BASIC
Y SU LOCALIZACIN.






Figura 2.22 VALORES
PREDETERMINADOS
RECOMENDADOS)






Figura 2.23 PROYECTO
CREADO Y GUARDADO EN LA
DIRECCIN DESEADA.


64


* ARCHIVO CREADO MEDIANTE MIKROC *



Figura 2.24 COMPATIBILIDAD
CON VISUAL BASIC













Figura 2.25 DIRECCIN EN DONDE ES CREADO EL ARCHIVO EN MIKROC
(Cambiar la extensin del archivo y ponerlo en USB_CONEXIN.c)

65



* DISEO DEL PROGRAMA EN VISUAL BASIC *


Figura 2.26 Diseo de
Botones y Textos
constitutivos del programa
de prueba.






Figura 2.27 Asignacin de
variables.






Figura 2.28 Generacin del
archivo FORMESFOT.EXE
66


* GENERACIN DEL PROGRAMA EN MIKROC *



Figura 2.29 Variables del
Proyecto a Realizarse.





**** PROGRAMA EN MIKROC. ****

#include "C:\Users\Darwin Geovanny\Desktop\ESFOT\USB_CONEXION.c"
unsigned char const SERVICIOS_BMP[1024] = {
0, 0, 0,192, 0, 0, 0, 0,192, 0, 0,128, 64, 64, 64, 64,
0, 0,128, 64, 64,128,128, 0, 0, 0, 0, 64,248, 68, 68, 4,
64, 64, 64,128, 0, 0, 0,192, 64, 64, 64, 64,128, 64, 64, 64,
64,128, 0,196, 0, 0,252, 0, 0,196, 0, 0, 0, 0, 64, 64,
64,128, 0, 0,128,128, 64, 0, 0, 0, 0, 0,128, 64, 64, 64,
64,192, 0, 0, 0,128, 64, 0,192, 64, 64, 64, 64,128, 64, 64,
64, 64,128, 0,252, 64, 64, 64,128, 0, 0, 0,128, 64, 64, 64,
128, 0, 0, 0,252, 0, 0,128, 64, 64, 64, 64, 0, 0, 0, 0,
0, 0, 0, 15, 16, 16, 16, 16, 31, 0, 0, 9, 18, 18, 12, 0,
0, 15, 18, 18, 18, 18, 11, 2, 0, 0, 0, 0, 31, 0, 0, 12,
18, 17, 17, 31, 0, 0, 0, 31, 0, 0, 0, 0, 31, 0, 0, 0,
67


0, 31, 0, 31, 0, 0, 31, 0, 0, 31, 0, 0, 0, 12, 18, 17,
17, 31, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 9, 18, 18, 12,
0,129,198, 56, 6, 1, 0, 0, 31, 0, 0, 0, 0, 31, 0, 0,
0, 0, 31, 0, 31, 16, 16, 16, 8, 7, 0, 0, 15, 16, 16, 16,
8, 7, 0, 0, 31, 0, 0, 9, 18, 18, 12, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,224,
240,240, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,248,248,240,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,224,160, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32,160,224, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,192,224,112, 48, 56,248,252,252,254,254,252,
249,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,248,252,
252,252,248, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,255, 0, 1, 2, 4,136,208, 96, 64, 64, 64, 64, 64, 64, 96,
208,136, 4, 2, 1, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 31, 31, 0, 0,252,255,255,255,255,199, 1,
3, 7, 6, 14, 12, 28, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,128,192,192,224,240,240,248,248,252,255,255,255,255,
254,252,248,248,240,240,224,192,192,128, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0,255,255,
255,192,192,192,192,192,192,192,192, 0, 0, 0, 0, 0, 0, 0,
0, 31, 24, 28, 22, 19, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 17, 19, 22, 28, 24, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
68


0, 0, 0, 0, 0, 0,192,248,255,127, 31, 7, 3, 7, 31,255,
254,248,192, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,120,124, 62,
62, 63, 31, 31, 31, 15, 15, 15, 7, 7, 7, 3,255,255,255,255,
3, 3, 7, 7, 7, 15, 15, 15, 31, 31, 31, 63, 62, 62,124,120,
112, 0, 0, 0, 0, 0,128,240,252, 28, 6, 7, 3, 0, 31, 31,
31, 25, 25, 25, 25, 25, 25, 25, 25, 24, 24,248,248,240,128, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 16, 30, 31, 7, 1, 0, 0, 0, 0, 0, 0, 0,
7, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,255,255,127,255,
240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 31, 62,248,240,192,128,128, 0, 0,
0, 0, 0, 0, 0, 0, 0,128,192,224,240,112, 7, 63,255,252,
224, 96, 96,112, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 1, 0, 0, 0, 0,
0, 1, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 3, 3,
6, 6, 6, 6, 7, 7, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

unsigned char const ESTUDIANDO_bmp[1024] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
69


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,128,192, 64,192,128,128,128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 8,248,252,252,252,
248,184,240,224,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 64,
32,156,228, 33,153,251, 3, 31,243, 7, 6, 6, 5, 13, 12, 8,
24, 26, 26, 16, 52, 52, 52, 40, 40,104, 80,240, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3,255,128,193,255,255,255,
255,255,127, 31, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,128, 64, 32, 32, 96,192,192,192,192,192,128, 0, 0, 0, 0,
0, 0, 0, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 96, 96, 96,176,136, 68, 38, 33, 24, 16,
2, 7,140,124, 63, 7, 63,240, 3,124,192, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,124,192, 0,
70


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,255,255,255,
255,224,192,192,192,192,192,128,128,128,128,128,192,192,192,192,
248, 1, 0, 0, 0, 0, 99,255,255,255,255,255,255,240,240,248,
252,252,254,254,252,252,254,254,254,255,254,255,229,195,154, 70,
46, 94, 62, 54, 42, 10, 22, 10, 10,222,223,184,184,112,224,192,
192,192,192,192, 64, 64,192, 7,127, 64, 97,254,252,240,240,240,
224,224, 96,224,224,224,192,192,192,192,192,192,192,128,131,158,
240,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 24, 31, 31, 31, 63,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 48, 72,224, 96,244,255,255,255,255,223,207,199,231,243,243,
251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,
254,254,124,124,126, 60, 62, 28, 31, 31, 15, 15, 15, 15, 15, 12,
30, 29, 61, 61, 57,125,125,125,251,243,243,247,251,250,250,242,
180, 22, 28, 13, 13, 13, 3, 2, 3,195,199,197, 77,109,191,135,
3, 3, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124,192,146,207,253,253,127,127,127,127,127,255,255,127, 63, 31,
15, 15, 7, 7, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 3, 7,
7, 6, 12, 24, 16, 48, 32, 41, 49, 43,110,124, 52, 39, 38, 62,
10, 11, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
71


0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

unsigned char const GRUPO_bmp[1024] = {
0, 0, 0, 0, 0, 0, 0,128,128,128,128,128, 0, 0, 0, 0,
0, 0, 0,128,128, 0, 0, 0, 0, 0,128,128,128,128,128, 0,
0, 0,128, 0, 0, 0, 0,128,128, 0, 0, 0, 0,128,128, 0,
0,128, 0, 0, 0,128, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,
0, 0, 0,128,128, 0, 0, 0, 0, 0, 0,128,128, 0, 0, 0,
0, 0,128,128,128,128, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,
0, 0,128, 0, 0, 0,128, 0, 0, 0, 0, 0,128, 0, 0, 0,
0, 0,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,224, 63, 1, 0, 0,128,193, 63, 12,128,224,
48, 44, 35, 33, 63,240, 0, 0,224, 63, 17, 16, 48,232, 15, 0,
0, 0,255,128,192, 48, 12, 3,255,128,192, 48, 12, 3, 0,224,
63, 1, 0,224, 63, 1, 7, 60,224,192,124, 7, 0, 0, 0, 0,
0,224, 63, 3, 15,248,128, 96, 48, 12, 6,241, 15, 0, 0,248,
134, 1, 0, 0,128,192,127, 4, 0,224, 63, 1, 0, 0, 0, 0,
224, 63, 1, 0,224, 63, 1, 7, 60,224,192,124, 7,128,224, 48,
44, 35, 33, 63,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
72


1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,240, 28, 0, 0,128, 96, 24, 12,252,128, 0,
0, 0,252,128, 0, 0,192,112, 24, 4, 0,248, 12, 0, 0,248,
76, 68, 68, 68, 4, 0, 0,248,140,132,132, 68,124, 0, 0, 0,
0, 0, 0, 0,248,140,132,132, 68,124, 0, 0,192, 48, 8, 4,
4, 4, 4,248, 32, 0, 0, 0,240, 28, 0, 0,128, 96, 24, 12,
252,128, 0, 0, 0,120, 68,196,132, 12, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 8, 8, 6, 3, 0, 12, 7, 1, 1, 1, 1, 1, 15, 0,
0, 0, 0, 15, 12, 3, 0, 0, 0, 0, 15, 1, 0, 0, 15, 9,
8, 8, 8, 0, 0, 0, 15, 1, 0, 0, 1, 15, 0, 0, 0, 0,
0, 0, 0, 15, 1, 0, 0, 1, 15, 0, 0, 0, 7, 12, 8, 8,
8, 12, 6, 3, 0, 8, 8, 6, 3, 0, 12, 7, 1, 1, 1, 1,
1, 15, 0, 4, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,128,192,192, 0, 0, 0, 0, 0, 0,192,192, 0, 0,
0, 0, 0,128,192,192, 0, 0, 0, 0,192, 0, 0, 0, 0,192,
64, 0, 0,128, 64, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,192, 96, 0, 0, 0, 0, 0,128, 64,
64, 64,192, 0, 0, 0,128,192, 64, 64,192,128, 0, 0, 0,128,
128,192, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,240, 31, 1, 7,252,192, 48, 24, 6, 3,248, 7, 0,192,
112, 24, 22, 17, 16, 31,248, 0, 0, 0, 1,255, 28, 6, 3, 0,
73


0,124,195,128,128,128,192, 96, 63, 2, 0, 0, 0, 0, 0, 0,
0, 0,128, 96, 48, 12, 3, 0, 0, 0, 0, 0,128,192,224,176,
152,140, 7, 0, 0,126,131,128,128, 64, 56, 15, 0,128,129,193,
252,131,128, 0, 0,126,131,128,128, 64, 56, 15, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

unsigned char Read_buffer[8];
unsigned char Write_buffer[8];
unsigned char Buffer;

// Timer interrupt service routine

void interrupt()
{
HID_InterruptProc(); // Keep alive
TMR0L = 100; // Re-load TMR0L
INTCON.TMR0IF = 0; // Re-enable TMR0 interrupts
}
void main()
{
74


ADCON1 = 0xFF; // Set PORT B to digital I/O
TRISB = 0; // Set PORT B to outputs
PORTB = 0; // Clear all outputs
TRISc = 0; // Set PORT c to outputs
PORTc = 255; // Clear all outputs
TRISD=0;

// Set interrupt registers to power-on defaults
// Disable all interrupts

INTCON=0;
INTCON2=0xF5;
INTCON3=0xC0;
RCON.IPEN=0;
PIE1=0;
PIE2=0;
PIR1=0;
PIR2=0;

// Configure TIMER 0 for 3.3ms interrupts. Set prescaler to 256
// and load TMR0L to 100 so that the time interval for timer
// interrupts at 48MHz is 256*(256-100)*0.083 = 3.3ms

// The timer is in 8-bit mode by default

T0CON = 0x47; // Prescaler = 256
TMR0L = 100; // Timer count is 256-156 = 100
INTCON.TMR0IE = 1; // Enable T0IE
T0CON.TMR0ON = 1; // Turn Timer 0 ON
75


INTCON = 0xE0; // Enable interrupts

// Enable USB port

Hid_Enable(&Read_buffer, &Write_buffer);
Delay_ms(1000);

// Read from the USB port. Number of bytes read is in num

Soft_I2C_Config(&PORTb, 0, 1); // Initialize full master mode
Soft_I2C_Start(); // Issue start signal
Soft_I2C_Write(0xc6); // Address LCD
Soft_I2C_Write(0); // Start from word at address 0 (configuration word)
Soft_I2C_Write(12); // Start from word at address 0 (configuration word)
Soft_I2C_Write(19);
Soft_I2C_Write(2);
Soft_I2C_Write(22);
Soft_I2C_Write('L');
Soft_I2C_Write('A');
Soft_I2C_Write('B');
Soft_I2C_Write('O');
Soft_I2C_Write('R');
Soft_I2C_Write('A');
Soft_I2C_Write('T');
Soft_I2C_Write('O');
Soft_I2C_Write('R');
Soft_I2C_Write('I');
Soft_I2C_Write('O');
Soft_I2C_Write(' ');
76


Soft_I2C_Write(' ');
Soft_I2C_Write(' ');
Soft_I2C_Write('D');
Soft_I2C_Write('E');

Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(41);
Soft_I2C_Write('M');
Soft_I2C_Write('I');
Soft_I2C_Write('C');
Soft_I2C_Write('R');
Soft_I2C_Write('O');
Soft_I2C_Write('P');
Soft_I2C_Write('R');
Soft_I2C_Write('O');
Soft_I2C_Write('C');
Soft_I2C_Write('E');
Soft_I2C_Write('S');
Soft_I2C_Write('A');
Soft_I2C_Write('D');
Soft_I2C_Write('O');
Soft_I2C_Write('R');
Soft_I2C_Write('E');
Soft_I2C_Write('S');
Soft_I2C_Stop();

while (1){

77


Buffer=Read_buffer[0];

if (Read_buffer[0] == 'A'){
Soft_I2C_Start();
Soft_I2C_Write(0xc6); // BACKLIGHT ON
Soft_I2C_Write(0);
Soft_I2C_Write(19);
Soft_I2C_Stop();
Read_buffer[0]=0;}

if (Read_buffer[0] == 'B'){
Soft_I2C_Start();
Soft_I2C_Write(0xc6); // BACKLIGHT OFF
Soft_I2C_Write(0);
Soft_I2C_Write(20);
Soft_I2C_Stop();
Read_buffer[0]=0;}

if (Read_buffer[0] == 'C'){
Soft_I2C_Start();
Soft_I2C_Write(0xc6); // MOSTRAR CURSOR
Soft_I2C_Write(0);
Soft_I2C_Write(5);
Soft_I2C_Stop();
Read_buffer[0]=0;}

if (Read_buffer[0] == 'D'){
Soft_I2C_Start();
Soft_I2C_Write(0xc6); // OCULTAR CURSOR
78


Soft_I2C_Write(0);
Soft_I2C_Write(4);
Soft_I2C_Stop();
Read_buffer[0]=0;}

if (Read_buffer[0] == 'E'){
Soft_I2C_Start();
Soft_I2C_Write(0xc6); // BORRAR LCD-I2C
Soft_I2C_Write(0);
Soft_I2C_Write(12);
Soft_I2C_Stop();
Read_buffer[0]=0;}

if (Read_buffer[0] == 'F'){
Soft_I2C_Start();
Soft_I2C_Write(0xc6);
Soft_I2C_Write(0);
Soft_I2C_Write(12);
Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(6);
Soft_I2C_Write('E');
Soft_I2C_Write('S');
Soft_I2C_Write('C');
Soft_I2C_Write('U');
Soft_I2C_Write('E'); // MOSTRA TEXTO EN PANTALLA
Soft_I2C_Write('L');
Soft_I2C_Write('A');

79


Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(24);
Soft_I2C_Write('P');
Soft_I2C_Write('O');
Soft_I2C_Write('L');
Soft_I2C_Write('I');
Soft_I2C_Write('T');
Soft_I2C_Write('E');
Soft_I2C_Write('C');
Soft_I2C_Write('N');
Soft_I2C_Write('I');
Soft_I2C_Write('C');
Soft_I2C_Write('A');
Soft_I2C_Write(0);
Soft_I2C_Write(2);
Soft_I2C_Write(46);
Soft_I2C_Write('N');
Soft_I2C_Write('A');
Soft_I2C_Write('C');
Soft_I2C_Write('I');
Soft_I2C_Write('O');
Soft_I2C_Write('N');
Soft_I2C_Write('A');
Soft_I2C_Write('L');
Soft_I2C_Stop();
Read_buffer[0]=0;}

if (Read_buffer[0] == 'G'){
80


Glcd_Init(&PORTB,2,3,4,5,6,7,&PORTD);
Glcd_Fill(0);
Glcd_Image(ESTUDIANDO_BMP);
delay_ms(10);
Read_buffer[0]=0;}

if (Read_buffer[0] == 'H'){
Glcd_Init(&PORTB,2,3,4,5,6,7,&PORTD);
Glcd_Fill(0);
Glcd_Image(SERVICIOS_BMP);
delay_ms(10);
Read_buffer[0]=0;}

if (Read_buffer[0] == 'I'){
Glcd_Init(&PORTB,2,3,4,5,6,7,&PORTD);
Glcd_Fill(0);
Glcd_Image(GRUPO_BMP);
delay_ms(10);
Read_buffer[0]=0;}

if (Read_buffer[0] == 'J'){
Glcd_Init(&PORTB,2,3,4,5,6,7,&PORTD);
Glcd_Fill(0);
delay_ms(10);
Read_buffer[0]=0;}
}
Hid_Disable();
}

81


**** PROGRAMA DE VISUAL BASIC ****

' vendor and product IDs
Private Const VendorID = 100
Private Const ProductID = 1

' read and write buffers
Private Const BufferInSize = 8
Private Const BufferOutSize = 8
Dim BufferIn(0 To BufferInSize) As Byte
Dim BufferOut(0 To BufferOutSize) As Byte
Private Sub Command1_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("A")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "BACKLIGHT ON..."
End Sub

Private Sub Command10_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("J")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "GLCD BORRADO!!!"
End Sub

Private Sub Command11_Click()
Form_Unload (0)
End
82


End Sub

Private Sub Command2_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("C")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "CURSOR ON..."
End Sub

Private Sub Command3_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("E")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "LCD - I2C BORRADO !!!!"
End Sub

Private Sub Command4_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("B")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "BACKLIGHT OFF..."
End Sub

Private Sub Command5_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("D")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "CURSOR OFF..."
End Sub
83


Private Sub Command6_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("F")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "TEXTO ENVIADO..."
End Sub

Private Sub Command7_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("G")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "ESTUDIANDO EN PANTALLA..."
End Sub

Private Sub Command8_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("H")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "SERVICIOS EN PANTALLA..."
End Sub

Private Sub Command9_Click()
BufferOut(0) = 0
BufferOut(1) = Asc("I")
hidWriteEx VendorID, ProductID, BufferOut(0)
Label4 = "GRUPO EN PANTALLA..."
End Sub


84


' ****************************************************************
' when the form loads, connect to the HID controller - pass
' the form window handle so that you can receive notification
' events...
'*****************************************************************
Private Sub Form_Load()
' do not remove!
ConnectToHID (Me.hwnd)
End Sub

'*****************************************************************
' disconnect from the HID controller...
'*****************************************************************
Private Sub Form_Unload(Cancel As Integer)
DisconnectFromHID
End Sub

'*****************************************************************
' a HID device has been plugged in...
'*****************************************************************
Public Sub OnPlugged(ByVal pHandle As Long)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) =
ProductID Then
' ** YOUR CODE HERE **
Label4 = "TARJETA CONECTADA !!!!"
End If
End Sub

'*****************************************************************
85


' a HID device has been unplugged...
'*****************************************************************
Public Sub OnUnplugged(ByVal pHandle As Long)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) =
ProductID Then
' ** YOUR CODE HERE **
Label4 = " TARJETA DESCONECTADA !!!"
End If
End Sub

'*****************************************************************
' controller changed notification - called
' after ALL HID devices are plugged or unplugged
'*****************************************************************
Public Sub OnChanged()
Dim DeviceHandle As Long

' get the handle of the device we are interested in, then set
' its read notify flag to true - this ensures you get a read
' notification message when there is some data to read...
DeviceHandle = hidGetHandle(VendorID, ProductID)
hidSetReadNotify DeviceHandle, True
End Sub

'*****************************************************************
' on read event...
'*****************************************************************
Public Sub OnRead(ByVal pHandle As Long)

86


' read the data (don't forget, pass the whole array)...
If hidRead(pHandle, BufferIn(0)) Then
' ** YOUR CODE HERE **
' first byte is the report ID, e.g. BufferIn(0)
' the other bytes are the data from the microcontrolller...
End If
End Sub

'*****************************************************************
' this is how you write some data...
'*****************************************************************
Public Sub WriteSomeData()
BufferOut(0) = 0 ' first by is always the report ID
BufferOut(1) = 10 ' first data item, etc.

' write the data (don't forget, pass the whole array)...
hidWriteEx VendorID, ProductID, BufferOut(0)
End Sub
87



*** RECONOCIMIENTO DEL DISPOSITIVO COMO ENTRADA USB EN
ELCOMPUTADOR ***











Figura 2.30 Reconocimiento de la Tarjeta de Desarrollo en el Computador.
88


* UTILIZACIN DEL ARCHIVO FORMESFOT.EXE PARA CONTROL DE
TARJETA *

Figura 2.31 Conexin PC TARJETA DE DESARROLLO mediante archivo
FORMESFOT.exe
*** RESULTADO EN MEDIO EXTERNO
***
Figura 2.32 Conexin PC Proto - Board.
89


Se distingue la aplicacin realizada desde el computador para el LCD-I2C
(ESCUELA POLITECNICA NACIONAL) y para el GLCD (DARWIN MOLINA,
JAVIER ROJAS MAYO 2010).













2.2.4 CORRECCIN DE ERRORES.

Los siguientes errores que se obtuvieron al disear nuestra Tarjeta de
Desarrollo fueron los siguientes:

Mediante pruebas realizadas en Proto Board, la corriente entregada por
el puerto USB del computador ( 500mA) no eran suficientes para
alimentar los dispositivos pertenecientes a la Tarjeta de Desarrollo, por lo
que recurrimos a implementar una fuente de alimentacin externa la cual
est diseada para entregar una corriente mxima de 1A
Figura 2.33 Conexin PC-
TARJETA DE
DESARROLLO.
90


Una vez trasladados los elementos hasta la primera placa de prueba, nos
dimos cuenta que algunos elementos tenan sueldas fras lo que
provocaba fallas de voltaje que impedan el correcto funcionamiento del
Microprocesador, GLCD, LCD I2C.

Al momento de disear la placa, tuvimos problemas en el tamao de las
pistas ya que resultaron ser muy finas, que al momento de soldar con
cautn de 40w, algunas pistas se daaron y no soportaron el exceso de
calor, lo que condujo a que en el diseo final de la Tarjeta de Desarrollo se
incremente considerablemente el grosor de las pistas para evitar los
mismos errores que tuvimos en la placa de prueba.

La manipulacin incorrecta y excesiva del Touch Screen en las pruebas
inciales condujo a la rotura irreversible del FLEX que es la parte
fundamental de conexin entre el Touch Screen y el Microcontrolador, lo
que oblig a comprar un nuevo dispositivo.

Debido a la utilizacin de una fuente de alimentacin externa, nos dimos
cuenta que al momento de conectar la Tarjeta de Desarrollo hacia el
computador, era necesario unir la Tierra del computador con la Tierra de la
fuente externa y deshabilitar el voltaje proveniente del computador, debido
a que no reconoca el computador a la Tarjeta como un Dispositivo de
Interfaz Humana (HID).

En el primer diseo no se tom en cuenta el tamao del porta fusible
que se puede encontrar en nuestro medio, lo que llev a modificar el
diseo final considerando el tamao ms esttico y existente en el
mercado.












CAPTULO
3
92


3.1 CONCLUSIONES Y RECOMENDACIONES

El diseo y construccin de nuestra Tarjeta de Desarroll para el
laboratorio de microprocesadores genera las siguientes conclusiones obtenidas
durante el proceso de elaboracin:

El objetivo de nuestra Tarjeta era lograr interactuar entre el hardware y
software lo que se obtuvo satisfactoriamente.

Se desarroll una tarjeta con la facilidad para que el estudiante pueda
elaborar nuevos programas utilizando la tecnologa que ofrece un touch
screen, adems de lograr utilizar la comunicacin I2C a travs de un LCD
con dicha tecnologa.

La facilidad que tiene la Tarjeta de programar y borrar los Pics que se
utilicen a travs de un puerto USB es una gran ventaja de nuestro sistema
ya que se puede conectar a cualquier computadora que tenga un sistema
operativo XP o Vista, no se ha probado la tarjeta con otros sistemas
operativos como Windows 7 o Linux.

Nuestra Tarjeta consta de un sistema de proteccin en caso de un corto
circuito lo que permite protegerla de cualquier sobre carga que se pueda
producir.

Con la finalidad de facilitar al estudiante en el desarrollo de nuevos
programas para interactuar con una PC tambin la Tarjeta puede
conectarse directamente a un computador ya que la reconoce como un
Dispositivo de Interfaz Humana (Human Interface Device), esto nos permite
utilizar el programa Visual Basic dando una potencialidad al estudiante
dentro de la programacin orientada a objetos.

93


Adems la construccin de nuestra Tarjeta se la realiz por etapas lo que
permite utilizarla cuando se requiera manejar el touch screen con el GLCD
o solo el LCD I2C o a su vez los dos al mismo tiempo, tomando en cuenta
que esto nos permite ahorrar energa dentro de nuestra tarjeta.

La ventaja que ofrece nuestra Tarjeta es que permite utilizar todos los
pines del Pic siempre y cuando se tome en cuenta la distribucin del mismo
con relacin al GLCD y el LCD I2C lo que aumenta la potencialidad del
mismo para desarrollar diferentes tipos de programas.

Se recomienda que cuando se utilice la tarjeta para programar el Pic se
utilice el sistema operativo de Windows XP ya que con este sistema se
obtuvo mejores resultados.

Adems se recomienda que se utilice la fuente que se diseo para nuestra
tarjeta que aproximadamente consume 800mA.

Al realizar las pruebas con la tarjeta utilizando el programa Visual Basic se
probaron en los sistemas operativos XP y Vista, en ambos casos los
resultados fueron satisfactorios.

Se recomienda utilizar Windows XP para el funcionamiento del
Programador GTP-USB LITE ya que es diseado nicamente para el
sistema operativo mencionado.


94


3.2 BIBLIOGRAFA.

Folletos
- Pic18F4550 Datasheet Microchip
Pginas Web
-http://www.winmate.com.tw/ (Informacin Touch Screen)
-http://www.dmccoltd.com/ (Touch Screen)
-http://www.actel.com/documents/ (Documentacin Touch Screen)
-http://www.eetimes.com/design/ (Resistividad del Touch Screen)
-http://www.eetimes.com/design/ (Datos Touch Screen)
-http://www.alldatasheet.com/ (Datasheets Componetes)
-http://es.wikipedia.org/wiki/USB (Tutoriales de USB)
-http://msdn2.microsoft.com/en-us/
default.aspx (Ayuda Visual Basic)
95


3.3 ANEXOS.

Proceso de elaboracin de la placa baquelita a travs del mtodo de insolacin.


Foto donde se puede observar los negativos de nuestra placa tanto superior como
inferior.



Para la elaboracin de los dos lados de nuestra placa los dos negativos deben
fijarse para que las dos caras concuerden correctamente.
96



Momento dentro de la cmara de insoladora donde se absorbe el aire para que el
negativo de nuestra placa se pegue a la baquelita.



Momento donde se fotocopia el negativo de nuestra placa a la baquelita a travs
de luz ultravioleta (Cmara insoladora)
97



Foto donde se observa la impresin de nuestro negativo en la placa baquelita
despus de terminar el proceso de la insolacin y revelado.




Foto donde se ve terminada la placa baquelita despus del atacado qumico.

98




Tarjeta de Desarrollo Terminada

Oros ejemplos, manuales (PIC 18F4550, LCD I2C, Touch Screen) y videos de
elaboracin de la placa electrnica son incluidos dentro del CD ANEXOS.

Vous aimerez peut-être aussi