ESCUELA POLITÉCNICA NACIONAL - Repositorio...

109
ESCUELA POLITÉCNICA NACIONAL ESCUELA DE FORMACIÓN TECNOLÓGICA CONSTRUCCIÓN DE TARJETA DE DESARROLLO PARA VERIFICAR PROGRAMAS DE MICROCONTROLADORES PIC’S DE LA FAMILIA 18FXXX PARA EL LABORATORIO DE MICROPROCESADORES DE LA ESFOT PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN ELECTRÓNICA Y TELECOMUNICACIONES ROJAS ROJAS LUIS JAVIER [email protected] MOLINA ALVAREZ DARWIN GEOVANNY [email protected] DIRECTOR: COSTALES GUADALUPE ALCIVAR EDUARDO [email protected] Quito, julio 2010

Transcript of ESCUELA POLITÉCNICA NACIONAL - Repositorio...

Page 1: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

ESCUELA POLITÉCNICA

NACIONAL

ESCUELA DE FORMACIÓN TECNOLÓGICA

CONSTRUCCIÓN DE TARJETA DE DESARROLLO PARA VERIFICAR PROGRAMAS DE MICROCONTROLADORES PIC’S DE LA FAMILIA 18FXXX PARA EL LABORATORIO DE MICROPROCESADORES DE

LA ESFOT

PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN ELECTRÓNICA Y TELECOMUNICACIONES

ROJAS ROJAS LUIS JAVIER

[email protected]

MOLINA ALVAREZ DARWIN GEOVANNY

[email protected]

DIRECTOR: COSTALES GUADALUPE ALCIVAR EDUARDO

[email protected]

Quito, julio 2010

Page 2: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

DECLARACIÓN

Nosotros, ROJAS ROJAS LUIS JAVIER y MOLINA ALVAREZ DARWIN GEOVANNY declaramos bajo juramento que el trabajo aquí descrito es de nuestra autoría; que no ha sido previamente presentada para ningún grado o calificación profesional; y, que hemos consultado las referencias bibliográficas que se incluyen en este documento.

A través de la presente declaración cedemos nuestros derechos de propiedad intelectual correspondiente a este trabajo, a la Escuela Politécnica Nacional, según 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

Page 3: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

CERTIFICACIÓN

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

Ing. Alcivar Costales

DIRECTOR DE PROYECTO

Page 4: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

DEDICATORIA

El presente trabajo primeramente lo dedico a Dios que me permite terminar un ciclo más 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 compresión 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 continúe en la vida hasta lograr alcanzar sus metas.

Este trabajo también le dedico a mi novia Joselyn que supo llegar a mi vida en el momento preciso y que nunca deje sus sueños y metas porque todo se consigue con esfuerzo.

A todos mis compañeros y amigos que han valorado el esfuerzo que implica tener una gran amistad.

Rojas Rojas Luis Javier

Page 5: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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, Mónica, 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 compañeros que estuvieron pendientes de mi formación profesional.

Molina Alvarez Darwin Geovanny

Page 6: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

TEMARIO

i. RESÚMEN.

ii. INTRODUCCIÓN.

CAPITULO 1. MARCO TEÓRICO

1.1 TECLADO MATRICIAL. ................................................................................. 1

1.1.1 ESTRUCTURA INTERNA. ......................................................................... 1

1.1.2 CONEXIÒN. ............................................................................................... 2

1.2 LCD I2C. ....................................................................................................... 3

1.2.1 PARTES CONSTITUTIVAS. .................................................................... 4

1.2.2 MEMORIA INTERNA. .............................................................................. 4

1.2.3 CONEXIÒN. ............................................................................................. 5

1.3 TOUCH SCREEN. .......................................................................................... 5

1.3.1 TIPOS ...................................................................................................... 6

1.3.2 BENEFICIOS Y UTILIDADES. ................................................................. 9

1.3.3 PROGRAMACIÒN. .................................................................................. 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 INTRODUCCIÒN. ..................................................................................... 15

1.5.2 COMUNICACIÒN I2C. ............................................................................. 16

1.5.3 IMPLEMENTACIÒN. ................................................................................ 17

1.6 USB ............................................................................................................. 18

1.6.1 INTRODUCCIÒN. .................................................................................... 18

1.6.2 USOS. ..................................................................................................... 21

1.7 VISUAL BASIC. .......................................................................................... 22

1.7.1 INTRODUCCIÒN. ................................................................................... 22

Page 7: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

1.7.2 APLICACIONES A LOS Pic´s 18FXXX .......................................... 24

CAPITULO 2. DISEÑO

2.1 HARDWARE. .................................... .......................................................... 25

2.1.1 DIAGRAMA EN BLOQUES. ...................... .......................................... 25

2.1.2 PLANIFICACIÒN DE ELEMENTOS EN PROTO – BOARD. .............. 28

2.1.3 ENSAMBLAJE EN PROTO – BOARD. ........ .................................... 30

2.1.4 ELABORACIÒN DE PLACA ELECTRÒNICA. ......... .......................... 31

2.1.4.1 Creación De Pistas Mediante Proteus Profes sional (ARES) ....... 31

2.1.4.2 Traslado De Pistas Hasta Baquelita Para Obt ener Tarjeta Final. .. 36

2.1.5 CONEXIONES. ..................................................................................... 37

2.2 SOFTWARE. ............................................................................................... 38

2.2.1 SIMULACIÒN MEDIANTE PROTEUS PROFESSIONA L (ISIS). ....... 38

2.2.2 PROGRAMAS DE PRUEBA PARA LA TARJETA ELABORADA EN MIKRO–C. ......................................................................................................... 41

2.2.3 IMPLEMENTACIÒN DE UN PROGRAMA EN VISUAL BASIC PARA INTERACCIÒN PC – TARJETA . ...................................................................... 62

2.2.4 CORRECCIÒN DE ERRORES. ............................................................ 89

CAPITULO 3.

3.1 CONCLUSIONES Y RECOMENDACIONES ........... ................................ 91

3.2 BIBLIOGRAFÍA. ...................................................................................... 94

3.3 ANEXOS. ................................................................................................. 95

Page 8: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

i. RESÙMEN.

El presente trabajo abarca aspectos metodológicos conocidos en su

mayoría por los estudiantes, que permitirán desarrollar una gran gama de

aplicaciones para comprender y familiarizarse con dispositivos electrónicos

desarrollados de tal manera que son compatibles con tecnologías que hoy en día

son muy comunes y están presentes en muchas aplicaciones ya sean

domésticas, industriales, mecánicas, etc.

El comportamiento creciente de aplicaciones que utilizan

microprocesadores para control y monitoreo de múltiples aplicaciones, hace que

sea de gran importancia el conocimiento del manejo de estos dispositivos y

aprovechar al máximo su potencial, es así, que ponemos en consideración

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 físicos y programación involucrada).

Page 9: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

ii. INTRODUCCIÒN.

La utilización de dispositivos electrónicos en múltiples aplicaciones es muy

común en muchos lugares que visitamos y varía de acuerdo a las necesidades y

requerimientos del cliente.

Así para quién diseña y proporciona los diferentes dispositivos, trata de que

sean lo más sencillo posible para una interacción fácil y rápida.

Utilizar pantallas táctiles (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 optimización del

microcontrolador que gobierna todo el circuito y así tener más 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 múltiples lugares y en múltiples aplicaciones.

Además de la interacción con un ordenador ya sea mediante comunicación

serial (RS 232), comunicación paralela (Puerto de Impresora LPT) o ya sea

mediante USB que es la que se utiliza en nuestro proyecto, es importante también

conocer como un complemento entre medios físicos hacia un ordenador y

viceversa.

Page 10: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

CAPÌTULO

1

Page 11: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

1

MARCO TEÒRICO

1.1 TECLADO MATRICIAL.

Representa un dispositivo de

entrada generalmente conectado

hacia el microprocesador el cual

permite introducir únicamente

señales de voltaje al momento de ser

presionada una de las teclas y de

esta manera ser procesado este

valor (voltaje) para su respectiva

aplicación.

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 señal 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 cuál 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

Page 12: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

2

presionado.

El dispositivo LDC I2C que se utiliza en este proyecto consta de una

conexión para este tipo de teclado.

Existen teclados que en su estructura interna poseen decodificadores los

cuáles envían hacia el microprocesador únicamente un valor numérico el cual

representa el número de tecla que ha sido presionada.

1.1.2 CONEXIÒN.

La conexión de un teclado

matricial depende del número

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 protección para evitar enviar

valores parásitos debido a armónicos que se generan en muchos dispositivos

electrónicos.

Mediante software implementado en el compilador, se puede disminuir de

manera considerable los denominados “rebotes” o armónicos realizando un

muestreo continuo a una rapidez determinada.

Figura 1.3 Teclado Matricial – Esquemático

Page 13: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 aplicación, hacia la pantalla utilizando 2 protocolos de

transferencia:

- Protocolo I2C (el cuál 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 utilización entre un protocolo y otro se la realiza mediante la

utilización 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

Page 14: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

4

Tal como fue mencionado anteriormente, el dispositivo LCD I2C tiene

incorporado pines de entrada para un teclado matricial 4x3.

El software de programación ( MikroC por ejemplo ) a utilizarse debe tener

incluida la función para habilitar el modo I2C , el cuál envía códigos hacia el

microprocesador propio del LCD Serial, el cuál interpreta, procesa y muestra el

carácter deseado.

1.2.1 PARTES CONSTITUTIVAS.

En la Figura 1.5, tenemos

la distribución de pines del LCD

Serial, en la cual se muestra al

lado izquierdo en color rojo 4

pines los cuales representan la

polarización del LCD así como el

BUS SERIAL de datos, en la

parte inferior y de color rojo

también se muestran los pines

correspondientes a la conexión del

TECLADO MATRICIAL 4x3 indicándose la forma de conexión tanto en filas y

columnas y por último en una circunferencia de color rojo se muestra el jumper

para selección 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

Page 15: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 CONEXIÒN.

Como se trata de un BUS I2C únicamente, las líneas 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 conexión

conectar resistencias de pull-up de un valor de 10KΩ c/u necesarias para

protección del dispositivo I2C y necesarias también 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 táctil

es una lámina resistiva transparente

que puede detectar una pulsación

dentro de una área determinada, esta

pulsación puede estar dada por la

mano o comúnmente por un lápiz

óptico.

El dispositivo actúa como periférico de

entrada y la acción 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

Page 16: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

6

1.3.1 TIPOS

En el desarrollo de los Touch Screen se utilizan varias topologías como:

• Capacitancia.

• Superficie de Onda Acústica (SAW).

• Infrarrojo.

• Resistiva.

TOUCH SCREEN CAPACITIVO

Recubierto con un material que almacena cargas eléctricas, cuando el

panel está tocado, una pequeña cantidad de carga es atraída por el punto de

contacto.

Circuitos ubicados en cada esquina del panel detectan la variación de

corriente y envía información al controlador para su procesamiento.

Paneles de pantalla táctil 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 lápiz, además que pantallas táctiles capacitivas no se ven afectadas

por elementos externos y tienen una gran claridad.

TOUCH SCREEN DE SUPERFICIE DE ONDA ACÙSTICA (SAW).

La tecnología Surface Acoustic Wave es uno de los tipos de pantalla táctil

más avanzada y se basa en el envío de ondas acústicas a través 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 táctil 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 tecnología el mayor factor de durabilidad y también la

mayor claridad.

Page 17: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

7

TOUCH SCREEN DE INFRARROJO.

En una pantalla táctil 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 alteración en el patrón de LED.

Al momento de la pulsación, 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

prácticamente cualquier entrada incluyendo un dedo, dedo enguantado, lápiz o

bolígrafo.

A diferencia de pantallas táctiles capacitivas, las pantallas táctiles de

infrarrojos no requieren ningún patrón en el cristal que aumenta la durabilidad y la

claridad óptica de todo el sistema.

TOUCH SCREEN RESISTIVO.

Usada en nuestro proyecto, esta topología es la más común y por tanto la

más utilizada debido a su fortaleza y confianza al momento de realizar alguna

aplicación.

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

La diferencia entre uno y otro varía de acuerdo al tamaño de la pantalla

táctil, puntos de sensibilidad y sobre todo la aplicación.

Page 18: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

8

El funcionamiento de esta topología básicamente consta de un divisor de

tensión (voltaje) de acuerdo a cuatro posiciones X, Y, -X, -Y, como se puede ver

en la Figura 1.7.

El diseño 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 composición es un bañado de

ITO (oxido de indio y estaño).

Los voltajes analógicos que en estas capas se generan son enviados hacia

el microprocesador para ser procesados.

En cambio la capa de vidrio transparente es únicamente de protección para

las otras 2 capas y evita que estas se deterioren.

Figura 1.7 Capas de Touch Screen (4 Hilos)

Page 19: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 Gráficas de Alta Velocidad.

• Control de Refrigeradoras, Televisores, Lavadoras, etc.

1.3.3 PROGRAMACIÒN.

De acuerdo a la aplicación, el funcionamiento y por tanto la programación de

un Touch Screen depende básicamente de un controlador diseñado a base de

transistores PNP y NPN que trabajan conjuntamente para obtener valores

analógicos 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.

Page 20: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

10

Nótese en la Figura 1.8 que existen 2 Drivers (DRIVEA y DRIVEB ) los

cuáles van conectados hacia el microprocesador y controlan (salidas digitales) el

estado de polarización de los transistores tanto NPN como PNP para que puedan

ser obtenidos valores analógicos desde cada una de las capas (X+Y+ y X-Y-).

Valores analógicos ingresan al microprocesador mediante pines que son

configurados como entradas analógicas (depende de cada microprocesador) para

su procesamiento y posterior aplicación.

Estos valores analógicos 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 también que el rango en el que puede caer el valor

digital está estrechamente relacionado con el rango de conversión que nos da el

microprocesador, el cual está dado por el número de bits de conversión.

Figura 1.8 Controlador de To uch Screen

Page 21: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

11

Ecuación 1.1

Ecuación 1.2

Es así que al tener un convertidor A/D de 10 bits, implica que el menor valor

analógico leído y procesado corresponderá a un valor digital 0x0 (0 en sistema

decimal) y el mayor valor analógico leído y procesado corresponderá a un valor

digital 0x3FF (1023 en sistema decimal) de acuerdo con la fórmula:

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

El valor digital (1023 valores) que corresponde a cada valor de voltaje

analógico depende en cambio del tamaño del paso del convertidos A/D y de los

valores de la fuente de polarización tanto en estado bajo como en estado alto ya

que la diferencia de potencial entre estos estados determinan cada qué valor de

voltaje analógico es asignado un valor digital.

Sea K = tamaño del paso:

En nuestro caso al tener una fuente de polarización de 0v (0mv) en estado

bajo y 5v (5000mv) en estado alto, el tamaño del paso es de:

Así para un valor analógico 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.

Nótese que la resolución obtenida se refiere a un sistema cuadrado de 1024

Page 22: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

12

x 1024 puntos o pixeles posibles el cuál debe ser transformado a una resolución

que pueda ser vista en el dispositivo que se esté utilizando, es decir, si se utiliza

un GLCD de resolución 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é diseñando utilizando una variable la cual toma el valor para

cada coordenada mediante una simple regla de tres.

Para nuestro proyecto se utilizaron:

Entradas Analógicas (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 aplicación son detallados en el Capítulo 2.2.2 Programas de

Prueba Para La Tarjeta Elaborada en Mikro-C

Page 23: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 características

mejoradas en comparación 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.

Page 24: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

14

El número de puertos y por tanto el número de pines de algunos

Microcontroladores de esta familia se incrementa teniendo así hasta 44 pines con

los cuáles se optimiza de mejor manera la utilización de un único microprocesador

para múltiples funciones tales como:

• Convertidores Analógicos Digitales y viceversa.

• Comunicación con otros Microcontroladores.

• Modulación PWM.

• Comunicación SPI.

• Comunicación I2C.

• Comunicación 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 características tanto de memoria y facilidad

de conectarse a la computadora ya que permite conexión USB y además

podemos trabajar mediante

comunicación I2C.

Figura 1.10 Distribución de Pines del 18F4550

Page 25: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 comunicación 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 INTRODUCCIÓN.

En un BUS I2C están conectados todos los dispositivos I2C todos ellos con

distintas direcciones físicas y que requieren:

• Una única línea para transmitir y recibir datos (SDA) dependiendo de qué

dispositivo inicia la transferencia de datos.

• Una línea la cual representa la señal de reloj a la que trabaja el sistema

(SCL).

• Dos líneas para polarización de los dispositivos conectados al bus: GND y

VCC.

Page 26: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

16

En el BUS I2C las líneas de datos y reloj SDA y SCL respectivamente, van

conectadas hacia la fuente de polarización Vcc mediante resistencias de pull-up

generalmente de 10KΩ cada una.

La transmisión y recepción de datos se realiza únicamente en la línea de

datos SDA mediante

códigos de start, dirección

de dispositivo, instrucción

a realizar y código de stop

básicamente.

Figura 1.11 Condiciones de START y STOP del Bus I2 C

1.5.2 COMUNICACIÒN I2C.

Para nuestro proyecto, la comunicación se realiza entre el microprocesador

(18F4550) y el LCD I2C únicamente ya que este tipo de LCD está diseñado con

esta finalidad (además de comunicación SPI).

Si bien es posible la comunicación de un microprocesador con una PC

mediante comunicación I2C, este tipo de conexión no es común ya que la

comunicación mediante USB representa la gran mayoría de dispositivos Plug &

Play por su gran rapidez y facilidad de conexión.

Entonces si es posible la comunicación PC-I2C a través 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 líneas (SDA y SCL) hacia el bus como

Page 27: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

17

podemos observar en la Figura 1.12

Figura 1.12 Dispositivos en Bus I2C

1.5.3 IMPLEMENTACIÒN.

Con la ayuda del compilador MikroC el cual tiene incorporado librerías

necesarias para que la comunicación 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 comunicación entre PC – LCD I2C, esta requiere de una

interfaz que permita esta comunicación 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 operación:

• Con la ayuda de una aplicación en Visual Basic desde el ordenador hacia

el microprocesador (18F4550) utilizando comunicación USB se realiza la

interacción PC - µC.

• Mediante programación en MikroC se realiza la interacción µC - LCD I2C.

Ejemplos de aplicación serán detallados en la sección 2.2.2 Programas de

prueba para la tarjeta elaborada en Mikro-C, además de la sección ANEXOS en la

Page 28: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

18

que están detallados todos los programas que se realizaron para este proyecto.

1.6 USB

El protocolo de comunicación USB ( Universal Serial Bus )

como su nombre lo indica es otro tipo de comunicación serial

que al igual que el protocolo I2C se lo realiza mediante un Bus

en el cuál constan la línea de datos D+, línea de reloj D- y dos

líneas de polarización 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.

• Cámaras Web.

• Micrófonos.

• Parlantes.

• Teléfonos Móviles.

• Lectores de Huellas, etc.

Por esta razón a sido difundido con mayor amplitud este tipo de

comunicación y por tanto los dispositivos que utilizan este protocolo también han

ido en aumento.

1.6.1 INTRODUCCIÒN.

(Universal Serial Bus) o bus serial universal nació con el propósito de

remplazar la comunicación serie o paralelo que teníamos anteriormente.

Con la comunicación USB se pudo unificar todos los periféricos externos.

Page 29: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

19

La comunicación USB es la más aplicada en nuestros días ya que por sus

facilidades, su velocidad y versatilidad han permitido un desarrollo increíble con

este protocolo de comunicación, lo que permite que una gran cantidad de

periféricos puedan conectarse a la computadora de una forma simple y rápida.

En un bus USB existen dos tipos de elementos: Anfitrión ("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 anfitrión, con otro hub o con una función.

Cada hub puede conectar hasta 7 dispositivos, aunque lo normal es que

sean de 4 salidas y proporcionan 500 mA de alimentación (hasta 2.5 W) a cada

uno de ellos, ya que el cable de conexión tiene hilos de señal (datos) y de

alimentación (5 V. CC ± 0.25 V).

Una función es un dispositivo capaz de transmitir o recibir datos o

información 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 anfitrión.

Que un hub pueda estar conectado a otro hub, significa que pueden

conectarse dispositivos en cascada; el sistema soporta un total 127dispositivos.

Una característica importante es que el concentrador (hub), proporcionan la

energía necesaria a la función por el cable de conexión (que transporta fuerza y

datos), lo que evita la necesidad de fuentes de alimentación independientes a las

funciones.

El cable USB es de 4 hilos, y comprende línea de señal de datos (D+),

línea de señal de reloj (D-) y alimentación (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 señal es trenzado; los de tierra y alimentación son rectos, y la

Page 30: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

20

Figura 1.13 Izq. Propiedades del Conductor, Der. D istribución de Pines USB

cubierta de protección (pantalla) solo puede conectarse a tierra en el anfitrión, en

el cable sin apantallar todos los hilos son rectos, las conexiones a 15 Mbps y

superiores exigen cable apantallado.

Se utilizan diámetros estándar para los hilos de alimentación del bus, para

cada sección se autoriza una longitud máxima del segmento, en la tabla izquierda

se muestran estas distancias, a la derecha se muestran la disposición de pines y

colores de identificación.

Se usan dos tipos de conectores , A y B, ambos son polarizados (solo

pueden insertarse en una posición) y utilizan sistemas de presión para sujetarse.

Los de tipo A utilizan conectores hembra en el sistema anfitrión, y suelen

usarse en dispositivos en los que la conexión es permanente (por ejemplo,

ratones y teclados).

Los de tipo B utilizan conectores hembra en el dispositivo USB (función) y

se utilizan en sistemas móviles (por ejemplo, cámaras fotográficas o altavoces).

AWG mm Ø long. Máx.

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 Descripción Color

1 VBUS + 5 V. CC rojo

2 D- Data - azul

3 D+ Data + amarillo

4 GND Tierra verde

Page 31: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

21

En general podemos afirmar que los conectores tipo A están en el lado

del host (PC) o de los concentradores (hubs), mientras que los conectores tipo B

están del lado de los periféricos.

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 comunicación por la gran

diversidad ya que hoy en día casi todas las conexiones de los periféricos se los

realizan con un protocolo de comunicación USB, los periféricos como el mouse, o

memorias externas, cámaras digitales, teclados, etc. Una diversidad de periféricos

ha adoptado este protocolo de comunicación.

La tarjeta de prueba que se desarrolló lleva implementada una comunicación

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.

Page 32: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

22

1.7 VISUAL BASIC.

Mediante este software, es posible

generar un programa el cuál permita de

manera didáctica controlar los dispositivos

pertenecientes a la TARJETA.

Esta interacción PC-TARJETA se la

realiza gracias a un asistente de conexión (no

es el único) llamado Easy HID.

1.7.1 INTRODUCCIÒN.

Visual Basic es un software de programación orientado a objetos, es decir,

posee funciones prediseñadas las que pueden ser utilizadas indistintamente sin

necesidad de generar código alguno para su creación mas si para su

funcionamiento.

De esta manera podemos diseñar a nuestro parecer y de manera sencilla

una aplicación para interactuar desde el computador y así enviar códigos hacia el

microprocesador ubicado en la tarjeta para controlar los dispositivos electrónicos,

sean estos el GLCD y/o LCD I2C.

Esta interacción (PC-TARJETA) se la realiza mediante protocolo de

comunicación USB utilizando para ello un Asistente de Conexión, que para

nuestro proyecto es el EASY HID WIZARD.

EASY HID WIZARD es un software de distribución gratuita (hasta ciertos

límites), que genera automáticamente los códigos necesarios para la

comunicación USB tanto para Visual Basic como para el compilador utilizado para

programar el microprocesador.

Page 33: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

23

Figura 1.15Archivos

Generados por EASY HID.

En la Figura 1.15 se muestran los archivos generados mediante EASY HID,

y nótese que para el compilador se genera un archivo en PicBasicPRO lo cuál no

es útil para nuestro proyecto ya que nuestro compilador es MikroC.

Para solucionar este problema

se recurre a generar el programa para

conexión USB utilizando el Asistente

HID (Human Interface Device) del

propio MikroC, el que permite generar

el código 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 aplicación que se esté realizando para la comunicación entre el computador y

la tarjeta mediante comunicación USB, se genera en el computador un lazo de

Figura1.16 Archivo Generado por Mikro C

Page 34: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

24

unión que es reconocido e instalado y de esta manera realizar operaciones entre

PC-TARJETA a través de la aplicación diseñada en Visual Basic.

Los pasos a realizarse para este efecto, son detallados en la sección 2.2.3

Implementación de un programa en Visual Basic para interacción PC-

Tarjeta.

1.7.2 APLICACIONES A LOS Pic´s 18FXXX

Como se explicó

anteriormente, el software que

ayuda a generar tanto la

aplicación para Visual Basic como

para el compilador a utilizarse es

EASY HID WIZARD, siendo

posibles únicamente 4

microcontroladores 18FXXX para

comunicación 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 aplicación en Visual Basic y así no tener problemas de

reconocimiento del dispositivo físico (Tarjeta Electrónica).

Figura 1.17 Proyecto Generado por EASY HID

Page 35: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

CAPÌTULO

2

Page 36: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

25

DISEÑO

2.1 HARDWARE .

Mediante las pruebas realizadas en Proto-Board en lo que a conexión 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 teóricamente cualquier puerto USB tiene la capacidad

de entregar una corriente máxima de 500mA, pero en la práctica, esta corriente no

alcanza los 100mA razón por la cual al momento de conectar la tarjeta al

computador, ésta no llega a funcionar normalmente debido precisamente a

cuestiones eléctricas.

Con la fuente de voltaje externa y diseñada para una corriente máxima de

1A, se supera este problema pero constituye un “bloque” adicional a la Tarjeta.

El diseño de la tarjeta con todas las consideraciones tanto de energía como

de espacio, han determinado un total de 4 bloques de hardware los cuales son

detallados a continuación.

2.1.1 DIAGRAMA EN BLOQUES.

El programador de Pic´s GTP-USB dispuesto en nuestra Tarjeta

Electrónica resulta muy útil debido a la facilidad de utilización y rapidez al

momento de programar un microprocesador.

Page 37: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 analógicos desde el dispositivo Touch

Screen mediante valores lógicos de polarización

enviados desde el microprocesador para

polarizar los transistores ubicados en lugares

adecuados.

Esto permite que en tiempos muy

pequeños (µs) se obtengan valores de cada

una de las capas individualmente, es decir, una

capa por vez.

Dependiendo de qué Driver actúa primero

se habilita una de las capas del Touch Screen y

esto se lo realiza mediante programación en el microprocesador.

1234

J1

CONN-H4

Q12N3904

Q2 2N3904

Q32N3904

Q42N3906

Q52N3906

VSS

R11k

R21k

1234

J2

CONN-H4

R3

47k

C1 100n

R41k

R5

1k

R6

1k

R7

1k

R81k

TopLeft

BottonRight

Driver ADriver B

BottonLeft

R111k

C12100n

R1247k

CO

NT

RO

LAD

OR

TO

UC

H S

CR

EE

N

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO10

OSC1/CLKI 9

RB0/AN12/INT0/FLT0/SDI/SDA21

RB1/AN10/INT1/SCK/SCL22

RB2/AN8/INT2/VMO23

RB3/AN9/CCP2/VPO24

RB4/AN11/KBI0/CSSPP25

RB5/KBI1/PGM26

RB6/KBI2/PGC27

RB7/KBI3/PGD28

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

VC

C1

D+

3

D-

2

GN

D4

J1USBCONN

C7100nF

D1

DIODE

D2

DIODE

D3

DIODE

D4

DIODE

R1

2k2

Q1BC548

Q2BC548

R2

4k7

R3

4k7

C11uF

C21uF

C310uF

R4

10k

C4

15pFC5

15pF

R5100

R6100

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO14

OSC1/CLKI13

RB0/AN12/INT0/FLT0/SDI/SDA33

RB1/AN10/INT1/SCK/SCL34

RB2/AN8/INT2/VMO35

RB3/AN9/CCP2/VPO36

RB4/AN11/KBI0/CSSPP37

RB5/KBI1/PGM38

RB6/KBI2/PGC39

RB7/KBI3/PGD40

RC0/T1OSO/T1CKI 15

RC1/T1OSI/CCP2/UOE 16

RC2/CCP1/P1A 17

VUSB18

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

PROGRAMADORGTP - USB LITE

Figura 2.1 Esquema del Programador GTP-USB LITE (PROTEUS)

Figura 2.2 Esquema del Controlador Touch Screen

(Proteus).

Page 38: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 pequeños 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 habilitación de cada par se la realiza mediante la activación de un

switch, esto debido a que una vez conectada la fuente de energía a la tarjeta,

siempre se tendrá activados los dispositivos de la misma y mediante el uso switch

podemos inhabilitar una sección cualquiera que se trate ahorrando de esta

manera energía en el sistema.

Figura 2.3 Esquema de la Tarjeta de D esarrollo (Proteus)

CS

11

CS

22

GN

D3

VC

C4

V0

5R

S6

R/W

7E

8D

B0

9D

B1

10D

B2

11D

B3

12D

B4

13D

B5

14D

B6

15D

B7

16R

ST

17-V

out

18

GLCDAMPIRE128X64

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO14

OSC1/CLKI13

RB0/AN12/INT0/FLT0/SDI/SDA33

RB1/AN10/INT1/SCK/SCL34

RB2/AN8/INT2/VMO35

RB3/AN9/CCP2/VPO36

RB4/AN11/KBI0/CSSPP37

RB5/KBI1/PGM38

RB6/KBI2/PGC39

RB7/KBI3/PGD40

RC0/T1OSO/T1CKI15

RC1/T1OSI/CCP2/UOE16

RC2/CCP1/P1A17

VUSB18

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/SPP427

RD5/SPP5/P1B28

RD6/SPP6/P1C29

RD7/SPP7/P1D30

RE0/AN5/CK1SPP8

RE1/AN6/CK2SPP9

RE2/AN7/OESPP10

RE3/MCLR/VPP 1

U3

PIC18F4550

R18

10k

R191k

C9

100pC8100p

OSC

20Mz

RV11k

C11

100nC10100n

1234

LCD I2C

CONN-H4

R20

10k

R21

10k

1 2 3 4 5 6 7

TECLADO 4X3 I2CCONN-SIL7

1 2 3

4 5 6

7 8 9

0 #

1 2 3

A

B

C

D

12

J3

HEADER

FU1

1A

1234

J6

CONN-H4 12

J8

CONN-SIL2

123

J10

CONN-SIL3

1J7

CONN-SIL1

1

J9CONN-SIL1

1

J11CONN-SIL1

1

J12

CONN-SIL1

1

J13

CONN-SIL1

VC

CD

+D

-G

ND

J4AU-Y1006-R

SW1

SWITCH-PRINCIPAL

SW2

SWITCH - GLCD _ TOUCH SCREEN

SW3

SWITCH - LCD I2C

Page 39: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

28

Además se ubica un interruptor general (switch) para encender o apagar la

tarjeta en su conjunto.

La fuente de

alimentación es considerada

un bloque adicional a la

Tarjeta Electrónica ya que

como se explicó

anteriormente, la energía

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 máxima de 1A, lo cual es suficiente para su correcto

funcionamiento.

2.1.2 PLANIFICACIÒN DE ELEMENTOS EN PROTO – BOARD.

Pensando en la comodidad para el usuario, la ubicación de los dispositivos

se ha diseñado de tal manera que el GLCD con su respectivo TOUCH SCREEN

estén lo más cerca posible hacia el CONTROLADOR Touch Screen ya que es

necesario para su funcionamiento y de la misma manera, el LCD I2C lo más cerca

posible del TECLADO MATRICIAL ya que en su conjunto forman un único

dispositivo completo.

Se refiere entonces a la sección inferior de la Tarjeta Electrónica en la que

se ubica el Controlador Touch Screen precisamente a continuación del GLCD con

su respectivo Touch Screen y con el switch que habilita o deshabilita todo este

conjunto permitiendo ahorrar energía para aplicaciones en las que no se utilice

estos dispositivos.

PUENTE DIODOS / 1A

TRANSFORMADOR 12/12 V

C12200u

VI1 VO 3

GN

D2

U17805

C2100p

12

J1

SALIDA FUENTE 5V

D1LED

R11k

V120V

FUSIBLE

Figura 2.4 Esquema de la Fuente de Alimentación 5V/1A (Proteus).

Page 40: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 programación mediante 4 pines del

microprocesador, caso contrario no recibe polarización y por consiguiente no

intervendrían en lo absoluto.

En la parte superior en cambio se ubica el Teclado Matricial 4x3 a

continuación del LCD I2C y de igual manera un switch el cuál habilita o deshabilita

el conjunto de igual manera para ahorrar energía.

Finalmente, en la parte inferior derecha se ubica el programador de pic´s

(18F4550 y 18F2550) GTP-USB LITE para facilidad y rapidez al momento de

poner en práctica los programas desarrollados para los dispositivos electrónicos

de la Tarjeta Electrónica.

La programación de microprocesadores se la realiza mediante el software

WinPic800 el que es distribuido de manera gratuita en la siguiente dirección

http://www.winpic800.com/ y como se explicó anteriormente es compatible con

Windows XP.

Page 41: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

30

2.1.3 ENSAMBLAJE EN PROTO – BOARD.

Figura 2.5 Ensamblaje y Pruebas en Proto-Board

De acuerdo a la ubicación que tomará cada dispositivo en la Placa

Electrónica, se procede a armar el circuito en Proto-Board tomando en cuenta la

optimización del espacio físico en una dimensión aconsejable para su correcta

manipulación.

Nótese 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.

Page 42: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

31

2.1.4 ELABORACIÒN DE PLACA ELECTRÒNICA.

Consiste de 3 etapas claramente diferenciadas y que para cada una de

ellas se realiza un procedimiento dirigido, es decir, tomar en cuenta aspectos

eléctricos, aspectos físicos y medios químicos.

Así por ejemplo para el diseño se determinan aspectos eléctricos mediante

Proteus ISIS (2.2.1 Diagrama En Bloques), el cual nos ayuda a determinar la

validez o no de una conexión mediante simulación.

Para aspectos físicos 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 químicos nos referimos al método mediante el cual nuestras

pistas eléctricas ya elaboradas son “transferidas” hacia un medio tangible

(baquelita) ubicando nuestros dispositivos electrónicos y así realizar las

respectivas pruebas de funcionamiento para determinar posibles errores. Para

nuestro caso se realizó el método de Insolación el cuál será explicado

posteriormente.

2.1.4.1 CREACIÒN DE PISTAS MEDIANTE PROTEUS PROFESIONAL (ARES)

Terminada la etapa de diseño en bloques realizada en Proteus ISIS,

mediante el ícono ARES ,

procedemos a ubicar los elementos

electrónicos en la posición detallada en el

capítulo 2.2 Planificación de elementos

en Proto-Board previamente

estableciendo la capa de soldadura

(Board Edge) indispensable para la

creación de pistas, sin esta sería

imposible “enrutar” cada dispositivo mediante una línea de conexión y así colocar

Figura 2.6 Selección de Capa de Suelda.

Page 43: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

32

cada elemento de tal forma que sean lo más compactamente posible y tomando

en cuenta espacios físicos reales de los elementos constituyentes de la Tarjeta

Electrónica.

Una vez ingresado al software para creación de pistas ARES ,

inmediatamente tenemos todos los elementos utilizados en el diseño mediante

Proteus ISIS y cuya lista aparece en orden alfabético y así ubicar un elemento

rápidamente para su colocación en el plano de soldadura

Figura 2.7 Traslado de Componentes para el

Diseño.

Trasladados todos los elementos a la mesa de trabajo se procede a la

ubicación de nuestros elementos.

Esta tal vez es la parte más 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 cercanía

de pistas se refiere aunque esto conlleva a la creación automática de “puentes”

que para nuestra tarjeta resultan ser 9.

La forma de ubicar los elementos electrónicos se la realiza de manera

Page 44: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

33

manual o automática, siendo esta última la menos recomendable ya que si bien

enruta todos los elementos electrónicos establece en muchos de los casos un

número exagerado de “puentes” que hacen difíciles las conexiones entre capas

superior e inferior.

Se observa en la Figura 2.8 un ejemplo de distribuir - enrutar

automáticamente todos los elementos y la generación de “puentes” señalados por

el círculo en rojo.

Para evitar precisamente este problema, se coloca manualmente todos y

cada uno de los elementos electrónicos de manera tal que cumpla con las

características de ser

compacta y disminuir al

máximo la generación

de puentes.

Una vez

planificada

adecuadamente la

distribución 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 Diseño Automático de Pistas ya que se trata de un software que

sigue determinados parámetros.

Logrando así un circuito eléctrico tanto en capa superior como en capa

inferior con un número relativamente aceptable de uniones alternas (puentes).

Figura 2.8 Enrutamiento Automático (Generación de Múltiples Puentes).

Page 45: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 gráfico en la Figura 2.9 detallado muestra el esquema final de la placa en

su parte inferior (Bottom) y nótese 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) además de la

Page 46: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

35

simbología de los elementos electrónicos utilizados.

Figura 2.10 Tarjeta de Desarrollo – Parte Superior

Page 47: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

36

2.1.4.2 TRASLADO DE PISTAS HASTA BAQUELITA PARA OBT ENER

TARJETA FINAL.

El proceso mediante el cual se traslada el diseño con sus respectivas

pistas electrónicas desde un computador hacia un medio físico se lo realiza de

muchas maneras algunas sofisticadas y otras caseras.

Así por ejemplo como medio sofisticado tenemos máquinas especiales que

de manera automática y guiadas mediante algún software, graban en una placa

las pistas de forma muy precisa y rápida , pero que constituyen una alternativa no

muy económica en lo que a ahorro de dinero se refiere.

Por esta razón se determinó la necesidad de seguir un método alternativo y

relativamente económico para trasladar las pistas hacia una placa.

De esta manera construimos un INSOLADOR que mediante exposición a

rayos ultravioleta en un ambiente oscuro con ayuda de NEGATIVOS tanto de

placa inferior como de placa superior y de algunos químicos (Ácido Nítrico,

Esmalte Fotosensible, Ácido Crómico) permiten grabar en una baquelita o placa

las pistas diseñadas 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

España (polvo muy fino), el cual elimina cualquier resto de impurezas

presentes todavía 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 electrónico al lado correcto

para ingresar el conjunto a la INSOLADORA.

Page 48: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 Crómico hasta distinguir claramente todas las pistas de la capa en

cuestión (15 a 20 seg.).

• Inmediatamente después se rocía 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

coloración Café Oscuro punto en el cual está lista para retirar el cobre que

no es de nuestra utilidad.

• Finalmente, introducimos la baquelita en Acido Nítrico hasta que

únicamente queden las pistas de color Café Oscuro y con cuidado ya que

se trata de químicos muy peligrosos.

Experimentando este método 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

verificación visual cuidadosa del circuito impreso para detectar posibles fallas de

conexión al utilizar el método por INSOLACIÓN.

De no encontrar ninguna anomalía visual, retiramos el Barniz de los puntos

de soldadura de los elementos con una lija suave para mediante el uso de un

Multímetro 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 Electrónica.

Page 49: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

38

De existir fallas detectadas visualmente o mediante el multímetro será

necesario elaborar la Tarjeta Electrónica nuevamente desde un inicio.

2.2 SOFTWARE.

El presente capítulo se refiere a las herramientas informáticas (software) que

ayudan al usuario a diseñar, simular e interactuar con dispositivos electrónicos de

manera sencilla y lógica.

Así para determinar la validez de una conexión recurrimos a una

“simulación” la cuál muestra el funcionamiento de un determinado circuito y de

esta manera asimilar los conocimientos y determinar la validez o no de dicha

conexión.

Podemos decir que el diseño y la simulación van claramente de la mano

ayudándonos a realizar un circuito y a determinar errores por confusión de ideas o

por fallidas conexiones.

En lo que a interacción se refiere una forma de realizarla es precisamente

mediante simulación, 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 SIMULACIÒN MEDIANTE PROTEUS PROFESSIONAL (ISI S).

Proteus Professional ISIS es una herramienta muy útil que nos permite

diseñar con una gran cantidad de dispositivos eléctricos y electrónicos un sin-

Page 50: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

39

número de circuitos y poder observar su funcionamiento como si tuviéramos el

hardware en nuestras manos.

El manejo de este software es relativamente simple ya que permite

interconectar cada elemento de forma rápida y sin necesidad de crear puntos de

acceso a ellos como si resulta ser en otro simulador (Eagle).

Observamos una simulación en la cual únicamente interviene un Pic

18F4550 y un GLCD Figura 2.11.

Nótese que los pines utilizados para el manejo del GLCD, MCLR y

polarización del GLCD intervienen en la simulación.

Tanto el oscilador como resistencias adicionales al circuito quedan

relegadas ya que se supone deben estar conectadas.

Figura 2.11 Conexión del GLCD mediante Pic 18F4550

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO14

OSC1/CLKI13

RB0/AN12/INT0/FLT0/SDI/SDA33

RB1/AN10/INT1/SCK/SCL34

RB2/AN8/INT2/VMO35

RB3/AN9/CCP2/VPO36

RB4/AN11/KBI0/CSSPP37

RB5/KBI1/PGM38

RB6/KBI2/PGC39

RB7/KBI3/PGD40

RC0/T1OSO/T1CKI 15

RC1/T1OSI/CCP2/UOE16

RC2/CCP1/P1A 17

VUSB18

RC4/D-/VM 23

RC5/D+/VP 24

RC6/TX/CK25

RC7/RX/DT/SDO 26

RD0/SPP019

RD1/SPP1 20

RD2/SPP2 21

RD3/SPP3 22

RD4/SPP427

RD5/SPP5/P1B 28

RD6/SPP6/P1C 29

RD7/SPP7/P1D 30

RE0/AN5/CK1SPP8

RE1/AN6/CK2SPP 9

RE2/AN7/OESPP 10

RE3/MCLR/VPP 1

U1

PIC18F4550

CS

11

CS

22

GN

D3

VC

C4

V0

5R

S6

R/W

7E

8D

B0

9D

B1

10D

B2

11D

B3

12D

B4

13D

B5

14D

B6

15D

B7

16R

ST

17-V

out

18

LCD1AMPIRE128X64

Page 51: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

40

Representado

por 2 potenciómetros,

el siguiente circuito

muestra una

simulación 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 práctica varias aplicaciones tanto

didácticas como de seguridad.

Por ejemplo:

- Con la ayuda de un lápiz propio de un Touch Screen dibujar y grabar

un bosquejo para luego editarlo si se desea.

- Un programa para crear una calculadora táctil con su respectivo

valor expresado en la misma pantalla.

- Control de acceso mediante el uso de una contraseña.

- Interacción entre dispositivos escogidos desde la pantalla táctil.

- Control de iluminación de un sector de una vivienda, edificio, etc.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO14

OSC1/CLKI13

RB0/AN12/INT0/FLT0/SDI/SDA33

RB1/AN10/INT1/SCK/SCL34

RB2/AN8/INT2/VMO35

RB3/AN9/CCP2/VPO36

RB4/AN11/KBI0/CSSPP37

RB5/KBI1/PGM38

RB6/KBI2/PGC39

RB7/KBI3/PGD40

RC0/T1OSO/T1CKI 15

RC1/T1OSI/CCP2/UOE 16

RC2/CCP1/P1A 17

VUSB18

RC4/D-/VM23

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/SPP427

RD5/SPP5/P1B28

RD6/SPP6/P1C 29

RD7/SPP7/P1D 30

RE0/AN5/CK1SPP 8

RE1/AN6/CK2SPP9

RE2/AN7/OESPP 10

RE3/MCLR/VPP 1

U1

PIC18F4550

CS

11

CS

22

GN

D3

VC

C4

V0

5R

S6

R/W

7E

8D

B0

9D

B1

10D

B2

11D

B3

12D

B4

13D

B5

14D

B6

15D

B7

16R

ST

17-V

out

18

LCD1AMPIRE128X64

R1

10k

RV2

1k

RV1

1k

Figura 2.12 Representación de Touch Screen Mediant e División de Tensión

Page 52: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 estética de cualquier aplicación que deseemos.

2.2.2 PROGRAMAS DE PRUEBA PARA LA TARJETA ELABORADA EN MIKRO–C.

Los programas expuestos a continuación son desarrollados en MikroC,

comprobados mediante Proto-Board y únicamente representan pruebas de

funcionamiento de cada uno de los elementos electrónicos componentes de

nuestra tarjeta electrónica (GLCD, LCD I2C y Touch Screen).

El resultado obtenido puede ser observado mediante fotografías tomadas al

momento de poner en práctica 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,

Page 53: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 54: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 55: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 56: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 57: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 58: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 59: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 60: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 61: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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);

Page 62: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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;

Page 63: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

52

Nótese en la Figura 2.13 que los gráficos

generados en este ejemplo constituyen la

gran mayoría de líneas de código 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

programación.

Resultado real en nuestra

tarjeta electrónica

Figura 2.13 GLCD – Prueba de Funcionamiento (Proto - Board).

Figura 2.14 GLCD – Prueba de Funcionamiento (Tarjeta de Desarrollo).

Page 64: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

53

* SEGUNDO PROGRAMA DE PRUEBA:

Prueba de Funcionamiento del LCD–I2C.

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');

Page 65: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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();

Page 66: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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');

Page 67: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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;

Page 68: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 69: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

58

* TERCER PROGRAMA DE PRUEBA:

Prueba de Funcionamiento del Touch Screen.

const unsigned int ADC_THRESHOLD = 970; //Máximo valor digital de GLCD

float x_min, y_min, x_max, y_max;

char PressDetect() // para detectar una presión 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;

Page 70: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

59

PortA.F2=0;

PortA.F3=1;

lecturay=adc_read(1);

y=lecturay/16,0;

return y;

unsigned float x1() //sectorización de GLCD

float x1;

x1 = ((x()+1)-(64/x()));

return x1;

unsigned float x2() //sectorización de GLCD

float x2;

x2 = (((5*x())-64)/4);

return x2;

unsigned float y1() //sectorización de GLCD

float y1;

y1 = ((y()+1)-(72/y()));

return y1;

unsigned float y2() //sectorización de GLCD

float y2;

y2 = (((4*y())-33)/3);

return y2;

void main()

ADCON1=0b00001101;

Page 71: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 pulsación

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;

Page 72: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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 lápiz plástico el

cuál protege las delicadas

capas que conforman el Touch

Screen.

Resultado en Placa Electrónica.

Figura 2.17 Touch Screen – Prueba de Funcionamiento (Proto – Board).

Figura 2.18 Touch Screen – Prueba de Funcionamiento (Tarjeta de Desarrollo).

Page 73: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

62

2.2.3 IMPLEMENTACIÒN DE UN PROGRAMA EN VISUAL BASIC PARA

INTERACCIÒN PC – TARJETA.

Como anteriormente se mencionó, mediante la ayuda de EASY HID

generamos la aplicación de Interfaz de Usuario PC-TARJETA.

Esta aplicación tiene que ser diseñada de acuerdo a nuestras necesidades

de tal manera que sea realista y fácil de implementar.

A continuación de muestran los pasos realizados para este efecto tanto en

Visual Basic como en MikroC.

* GENERACIÓN DE PROYECTO MEDIANTE EASY HID.

⇒⇒⇒⇒ Figura 2.19 PARÁMETROS DE

IDENTIFICACIÓN.

⇒⇒⇒⇒ Figura2.20

PARÁMETROS

IMPORTANTES PARA

COMPATIBILIDAD CON

MIKRO C

Page 74: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

63

⇒⇒⇒⇒ Figura 2.21 NOMBRE DE

PROYECTO USB EN VISUAL BASIC

Y SU LOCALIZACIÓN.

⇒⇒⇒⇒ Figura 2.22 VALORES PREDETERMINADOS RECOMENDADOS)

⇒⇒⇒⇒ Figura 2.23 PROYECTO

CREADO Y GUARDADO EN LA

DIRECCIÓN DESEADA.

Page 75: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

64

* ARCHIVO CREADO MEDIANTE MIKROC *

⇒⇒⇒⇒ Figura 2.24 COMPATIBILIDAD

CON VISUAL BASIC

Figura 2.25 DIRECCIÓN EN DONDE ES CREADO EL ARCHIV O EN MIKROC

(Cambiar la extensión del archivo y ponerlo en “USB _CONEXIÓN.c”)

Page 76: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

65

* DISEÑO DEL PROGRAMA EN VISUAL BASIC *

⇒⇒⇒⇒ Figura 2.26 Diseño de

Botones y Textos

constitutivos del programa

de prueba.

⇒⇒⇒⇒ Figura 2.27 Asignación de

variables.

⇒⇒⇒⇒ Figura 2.28 Generación del

archivo FORMESFOT.EXE

Page 77: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

66

* GENERACIÓN 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,

Page 78: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 79: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 80: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 81: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 82: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 83: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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,

Page 84: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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()

Page 85: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 86: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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(' ');

Page 87: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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)

Page 88: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 89: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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');

Page 90: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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')

Page 91: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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();

Page 92: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 93: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 94: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 95: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

'*****************************************************************

Page 96: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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)

Page 97: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

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

Page 98: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

87

*** RECONOCIMIENTO DEL DISPOSITIVO COMO ENTRADA USB EN

ELCOMPUTADOR ***

Figura 2.30 Reconocimiento de la Tarjeta de Desarro llo en el Computador.

Page 99: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

88

* UTILIZACIÓN DEL ARCHIVO FORMESFOT.EXE PARA CONTROL DE TARJETA *

Figura 2.31 Conexión PC – TARJETA DE DESARROLLO me diante archivo

FORMESFOT.exe

*** RESULTADO EN MEDIO EXTERNO

***

Figura 2.32 Conexión PC – Proto - Board.

Page 100: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

89

Se distingue la aplicación realizada desde el computador para el LCD-I2C

(ESCUELA POLITECNICA NACIONAL) y para el GLCD (DARWIN MOLINA,

JAVIER ROJAS MAYO 2010).

2.2.4 CORRECCIÒN DE ERRORES.

Los siguientes errores que se obtuvieron al diseñar 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 alimentación externa la cual

está diseñada para entregar una corriente máxima de 1A

Figura 2.33 Conexión PC- TARJETA DE

DESARROLLO.

Page 101: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

90

• Una vez trasladados los elementos hasta la primera placa de prueba, nos

dimos cuenta que algunos elementos tenían sueldas frías lo que

provocaba fallas de voltaje que impedían el correcto funcionamiento del

Microprocesador, GLCD, LCD I2C.

• Al momento de diseñar la placa, tuvimos problemas en el tamaño de las

pistas ya que resultaron ser muy finas, que al momento de soldar con

cautín de 40w, algunas pistas se dañaron y no soportaron el exceso de

calor, lo que condujo a que en el diseño 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 manipulación incorrecta y excesiva del Touch Screen en las pruebas

iníciales condujo a la rotura irreversible del FLEX que es la parte

fundamental de conexión entre el Touch Screen y el Microcontrolador, lo

que obligó a comprar un nuevo dispositivo.

• Debido a la utilización de una fuente de alimentación 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 reconocía el computador a la Tarjeta como un Dispositivo de

Interfaz Humana (HID).

• En el primer diseño no se tomó en cuenta el tamaño del porta – fusible

que se puede encontrar en nuestro medio, lo que llevó a modificar el

diseño final considerando el tamaño más estético y existente en el

mercado.

Page 102: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

CAPÌTULO

3

Page 103: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

92

3.1 CONCLUSIONES Y RECOMENDACIONES

El diseño y construcción de nuestra “Tarjeta de Desarrolló” para el

laboratorio de microprocesadores genera las siguientes conclusiones obtenidas

durante el proceso de elaboración:

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 tecnología que ofrece un touch

screen, además de lograr utilizar la comunicación I2C a través de un LCD

con dicha tecnología.

La facilidad que tiene la Tarjeta de programar y borrar los Pics que se

utilicen a través 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 protección 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 también 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 programación orientada a objetos.

Page 104: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

93

Además la construcción 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 energía 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 distribución del mismo

con relación 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.

Además se recomienda que se utilice la fuente que se diseño 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 diseñado únicamente para el

sistema operativo mencionado.

Page 105: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

94

3.2 BIBLIOGRAFÍA.

Folletos

- Pic18F4550 Datasheet Microchip

Páginas Web

-http://www.winmate.com.tw/ (Información Touch Scr een)

-http://www.dmccoltd.com/ (Touch Screen)

-http://www.actel.com/documents/ (Documentación Tou ch Screen)

-http://www.eetimes.com/design/ (Resistividad del T ouch Screen)

-http://www.eetimes.com/design/ (Datos Touch Screen )

-http://www.alldatasheet.com/ (Datasheets Compone tes)

-http://es.wikipedia.org/wiki/USB (Tutoriales de US B)

-http://msdn2.microsoft.com/en-us/

default.aspx (Ayuda Visual Basic)

Page 106: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

95

3.3 ANEXOS.

Proceso de elaboración de la placa baquelita a través del método de insolación.

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

inferior.

Para la elaboración de los dos lados de nuestra placa los dos negativos deben

fijarse para que las dos caras concuerden correctamente.

Page 107: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

96

Momento dentro de la cámara 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 través

de luz ultravioleta (Cámara insoladora)

Page 108: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

97

Foto donde se observa la impresión de nuestro negativo en la placa baquelita

después de terminar el proceso de la insolación y revelado.

Foto donde se ve terminada la placa baquelita después del atacado químico.

Page 109: ESCUELA POLITÉCNICA NACIONAL - Repositorio …bibdigital.epn.edu.ec/bitstream/15000/2452/1/CD-3160.pdf · 1.7.2 aplicaciones a los pic´s 18fxxx ... 2.2.3 implementaciÒn de un programa

98

Tarjeta de Desarrollo Terminada

Oros ejemplos, manuales (PIC 18F4550, LCD I2C, Touch Screen) y videos de

elaboración de la placa electrónica son incluidos dentro del CD ANEXOS.