Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tablero Basquet
Tablero Basquet
NUMERO RAE
PROGRAMA
INGENIERA ELECTRNICA
AUTOR(ES)
TITULO
PALABRAS
CLAVES
DESCRIPCIN
Faundez
Zanuy,
Marcos,
Circuitos
Electrnicos
Para
WEBLIOGRAFIA
FUENTES
BIBLIOGRAFICAS
Multiled.
Disponible
en:
http//www.multiled.com.ar/esp/relojes_gigantes.php
[Consultada el 25 de abril del 2006 a las 16:02]
Nasio.
Disponible
en:
http//www.nasio.thomasregister.com[Consultada el 25 de abril
del 2006 a las 15:22]
MICROCONTROLADORES.
Disponible
en
http://www.monografias.com/trabajos12/microco/microco.sht
ml. [Consultado en: 06 de junio del 2006 a las 21::20]
MICROCHIP.
Disponible
en:
http://es.wikipedia.orgwiki/microchip_technology_inc.
[Consultado en: 14 de Junio del 2006 a las 20 :00]
MAPLAB.
Disponible
2
en:
http://micropic.wordpress.com/2007/01/22/mplab [Consultado
en: 14 de Junio del 2006 a las 17 :32]
Learobotics.
Disponible
en:
www.iearobotics.com/personal/juan/publicaciones/art9/skypic.
pdf
-http://micropic.wordpress.com/2007/01/22/mplab
Motorola: Disponible en
www.gda.utp.educo/pub/lab_microcontroladores [Consultado
el 13 de abril del 2006 a las 19:24]
Taller
de
tecnologa:
Disponible
en:
http://www.colegiosanmateoapostol.edu.co/web/tallertecnolog
ia/tallercap1.html [Consultado el 13 de abril del 2006 a las
18:30]
FPGA.
Disponible
en:
http://es.wikipedia.org/wiki/FPGA
MAX
PLUS
II
Disponible
en:
http://campusglobal.uc3m.es/asignaturas/C8.52.1000431/TCITIG/tutorial/paginas/paginassinusar/tutorial.htm
[Consultado el 6 de junio del 2006 a las 10:30]
DIODO
EMISOR
DE
LUZ.
Disponible
en:
PARAMETROS.
Disponible
en:
http://www.monografias.com/trabajos11/leds/leds.shtml
[Consultado en: 3 de junio del 2006 a las 12 :20]
Cartel
Electrnico.
Disponible
en:
Neoteo.
Disponible
en:
www.neoteo.com/74ls164n.neo
PIC-mana
Disponible
en:
picmania.garcia-
Decreto
POT.
Disponible
en:
http://www.camarabaq.org.co/cms/documentstorage/com.tms.
cms.document.Document_f991e7d0-c0a8fa20-1a18ee205c6f1595/decreto%200154%202000.pdf[Consultado en: 7 de
julio del 2008 a las 12 :20]
NUMERO RAE
PROGRAMA
INGENIERIA ELECTRONICA
CONTENIDOS
1 OBJETIVOS DE LA INVESTIGACIN
Facilitar la funcin del operario ya que con un tablero de mano podr comparar la
informacin antes de enviarla al tablero que observa el pblico, evitando as fallos
por algn error de digitacin.
Implementar una salida opcional por RS232 por si se quiere agregar mayor
funcionalidad al dispositivo.
2. MARCO DE REFERENCIA
protocolos de
comunicacin, etc.
3. DISEO INGENIERIL
Contiene todos los elementos propuestos para la solucin del problema expuestos
encuentran sistemas de control, diagrama de bloques y circuitos diseados para este fin
4. ANLISIS Y RESULTADOS
5 CONCLUSIONES
En este capitulo se extractan las conclusiones mas importantes que se generaron con el
desarrollo del trabajo.
NUMERO RAE
PROYECTO
INGENIERIA ELECTRONICA
METODOLOGIA
1.ENFOQUE DE LA INVESTIGACION
El enfoque de este trabajo es emprico-analtico ya que por medio de este trabajo se
pretende mejorar la calidad de un encuentro deportivo por medio de la visualizacin de
diversos aspectos mediante un tablero electrnico, permitiendo de esta manera, hacer
uso de la tecnologa para esta finalidad.
adquirido a lo largo del proceso de profesionalizacin, esta encuesta arrojo los datos de
que 8 de cada 10 estudiantes encuestados crean que si era una forma til y neceara
para la universidad y 2 de cada 10 responda
estudiantes encuestados).
4. HIPTESIS
5. VARIABLES
Las variables dependientes del prototipo son los valores necesarios como mnimo para
que la visualizacin del prototipo sea optima y clara para los usuarios en este caso la
corriente debe estar entre valores de 3Amp a 5Amp y el voltaje debe ser de 5 a 12
voltios.
CONCLUSIONES
Se logr el desarrollo del tablero electrnico, con cada una de las
especificaciones requeridas.
Este tipo de tableros electrnicos son muy importantes para el mercado, ya hoy
en da son muy utilizados como medio de informacin en diferentes comercios,
para brindar diferentes mensajes, comunicar y vender.
Director
Ing. BALDOMERO MENDEZ
Nota de aceptacin:
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
Presidente del Jurado
_____________________________
Jurado
_____________________________
Jurado
DEDICATORIA
13
DEDICATORIA
AGRADECIMIENTOS
En primer lugar queremos agradecer a DIOS, por ser la fuente de nuestras capacidades
permitindonos llevar a cabo el presente trabajo de investigacin y a Mamita Mara por
su proteccin y bendicin durante el desarrollo del trabajo y durante nuestra vida.
A nuestros Padres por que con mucho sacrificio y paciencia nos dieron la oportunidad
de estudiar y de profesionalizarnos, en aquello que llenaba nuestras expectativas y que
nos proyecta como futuros ingenieros electrnicos.
15
TABLA DE CONTENIDO
GLOSARIO 10
INTRODUCCIN. 12
1. PLANTEAMIENTO DEL PROBLEMA .. 13
1.1 ANTECEDENTES.. 13
1.2 DESCRIPCIN Y FORMULACIN DEL PROBLEMA 18
1.3 JUSTIFICACIN........... 18
1.4 OBJETIVOS DE LA INVESTIGACIN...19
1.4.1 Objetivo General.19
1.4.2 Objetivos Especficos 19
1.5 ALCANCES Y LIMITACIONES DEL PROYECTO.. 20
2. MARCO DE REFERENCIA 21
2.1 MARCO TERICO CONCEPTUAL 21
2.1.1 Microcontroladores. 21
2.1.1.1 Microchip.. 22
2.1.1.1.1 PIC16F87X 24
2.1.1.1.2 MPLAB...25
2.1.1.1.3 Compilador PCW de CCS.. 26
2.1.1.2 Motorola 28
2.1.1.2.1 Microcontrolador Motorola MC68HC908GP32... 29
2.1.1.2.2 Microgrades.. 30
2.1.2 FPGA 31
2.1.2.1 MAX+PLUS II.. 32
2.1.3 Diodo Emisor de Luz.. 33
2.1.3.1 Parmetros... 34
2.1.4 Visualizadores de 7 Segmentos...35
2.1.4.1 Tipos de Visualizacin 36
2.1.5 Matriz de Leds. 37
2.1.5.1 Caractersticas Matriz de Leds de 7*5. 38
2.1.5.2 Funcionamiento... 40
2.1.6 Circuito Integrado 74LS164N41
2.1.7 Circuito Regulador de Tensin. 44
2.1.8 Teclado PS/2... 45
2.1.8.1 Conexin Elctrica.. 47
2.1.8.2 Protocolo Comunicacin PS/2.. 48
2.2 MARCO LEGAL. 50
2.2.1 Disposiciones Generales.. 50
16
3. METODOLOGA...59
3.1 ENFOQUE DE LA INVESTIGACIN. 59
3.2 LINEA DE INVESTIGACIN DE USB / SUB-LNEA DE FACULTAD / CAMPO
TEMTICO DEL PROGRAMA... 60
3.2.1 Lneas de Investigacin de USB.. 60
3.2.2 Sub-lnea de Facultad 60
3.2.3 Campo Temtico del Programa61
3.3 Tcnicas de Recoleccin de Informacin.. 61
3.4 HIPTESIS. 62
3.5 VARIABLES 63
3.5.1 Variables Independientes.. 63
3.5.2 Variables Dependientes.63
4. DESARROLLO INGENIERIL..64
4.1 INGENIERA DE DISEO 65
4.2 Configuracin en BCD para los Nmeros en los Displays de 7 Segmentos 66
4.3 Configuracin Binaria para las letras.. 67
4.4 Circuitos Implementados y Diagrama de Flujo.. 68
5. RESULTADOS..77
5.1 SIMULACIONES 77
5.2 Fotografas del Montaje.78
6. CONCLUSIONES.79
7. RECOMENDACIONES81
BIBLIOGRAFA..82
WEBLIOGRAFA82
ANEXO A85
17
LISTADO DE FIGURAS
18
GLOSARIO
Tensin: es la diferencia de potencial elctrico que tiene que existir entre los
bornes de conexin o entre dos partes activas de una instalacin, para que la
corriente elctrica circule por dicha instalacin.
20
INTRODUCCIN
La creacin del deporte se remonta muchos aos atrs, hasta los pueblos ms antiguos
han dejado vestigios de la prctica de actividades deportivas, incluso se pueden calificar
como proezas deportivas actos que el hombre ha realizado desde la prehistoria: correr
para escapar a los animales, saltar para franquear los obstculos naturales, atravesar a
nado los cursos de agua, lanzar armas como jabalinas o luchar cuerpo a cuerpo con
sus enemigos. En la antigedad se ritualizaron estas gestas, que quedaron asociadas a
la religin o a las celebraciones. Las civilizaciones precolombinas practicaban cierto
juego con una pelota (el tlachtli), los egipcios eran apasionados del tiro con arco y de
las justas nuticas; 500 aos antes de que tuvieran lugar los primeros Juegos
Olmpicos, los griegos ya medan sus fuerzas en carreras de carros y en combates.
Los primeros Juegos olmpicos de la antigedad, as llamados por disputarse en
Olimpia, se celebraron hacia el ao 776 a.C. Duraban seis das y consistan en
combates y carreras hpicas y atlticas. A medida que se iba avanzando en el tiempo se
hacia notable la necesidad de crear escenarios en los cuales el deporte tuviera su
desarrollo, de esta manera fueron surgiendo los llamados coliseos y estadios. Hoy en
da en los coliseos y polideportivos no solo se practica baloncesto, sino tambin, se
practica volleyball, tenis de mesa, ftbol sala, entre otros. Cada una de estas disciplinas
cuenta con una serie de reglas, a partir de all nace la necesidad de que no solo los
jugadores y el cuerpo arbitral, estn enterados del marcador, del tiempo, de las faltas,
sino que tambin los espectadores, puedan seguir el desarrollo del juego de una
manera ms clara. Es por eso nuestro inters de trabajar en un indicador electrnico
deportivo multifuncional, el cual ser diferente a los tradicionales, ubicados en los
distintos escenarios deportivos. Ac es donde se mezcla el deporte, la comodidad y la
tecnologa.
21
1.1 ANTECEDENTES
Los tableros electrnicos hoy en da son muy utilizados en todo el mundo y hay
compaas dedicadas nica y exclusivamente al diseo y fabricacin de los mismos, ya
que estos son indispensables en cualquier certamen deportivo, pues es necesario que
los espectadores jugadores y jueces lleven un rcord de lo que acontece en un juego,
antes los tableros eran carteleras que se cambiaban manualmente, pero gracias a los
avances tecnolgicos ahora solo se necesita de un simple teclado o en su defecto de un
computador.
El mercado de los tableros electrnicos cuenta con un alto nivel de oferta y demanda,
ya que casi todas las empresas y compaas dedicadas a la electrnica tienen un
departamento dedicado a la parte digital y en especial a los publik' s por lo tanto es muy
fcil conseguir uno. Y en cuanto a la demanda se tienen varios coliseos, polideportivos
y estadios en los cuales una de las partes ms importantes de la construccin es el
tablero
electrnico, por ende tambin tienen una venta muy rpida para los que
Aditeck Mxico
y comercializacin de
Aditec. Disponible en:: http//www.aditeck.com.mx/pizarrasdeportivas [Consultada el 25 de abril del 2006 a las 15:22]
23
Multiled Argentina
24
25
Publik Colombia
Publik es una empresa privada, lder en Amrica Latina, que promueve la cultura de la
informacin y el conocimiento, a travs de sistemas de ltima tecnologa, que propende
por un desarrollo continuo basado en la creatividad, la innovacin y el talento, para
superar las expectativas de nuestros selectos clientes dentro de un profundo respeto
humano y obtener as excelentes resultados socioeconmicos. En Colombia es la
empresa lder en productos informativos, al mismo tiempo de la produccin de tableros
deportivos, que hoy en da se encuentran distribuidos en la mayora de escenarios
deportivos del pas4.
26
1.3 JUSTIFICACION
27
28
Facilitar la funcin del operario ya que con un tablero de mano podr comparar la
informacin antes de enviarla al tablero que observa el pblico, evitando as
fallos por algn error de digitacin.
Implementar una salida opcional por RS232 por si se quiere agregar mayor
funcionalidad al dispositivo.
En cuanto al enfoque del diseo del tablero se desea tener un tablero que no solo
cumpla con lo bsico, como es transmitir los resultados y el tiempo de juego, sino
tambin se pretende que este muestre el nombre de la Universidad, el nombre de los
equipos, el nmero de faltas, en forma electrnica, el nombre de los equipos y el de la
Universidad se podrn cambiar segn las necesidades del encuentro deportivo.
Debido a que es un prototipo, los materiales empleados son de tamao reducido pero
ejemplifican la funcionalidad del tablero.
29
2. MARCO DE REFERENCIA
electrnico pueden ser, Microcontroladores, FPGA, PICs, que son los mas comunes;
sin embargo existen otro tipo de elementos los cuales se pueden utilizar.
2.1.1 Microcontrololadores
Son dispositivos capaces de llevar a cabo procesos lgicos, los cuales son acciones
programadas en un determinado lenguaje ensamblador referenciado por el usuario; y
luego son introducidos al microcontrolador a travs de un programador, en los casos
mas comunes, tarjetas especiales, para programar este tipo de dispositivos.
El microcontrolador es en otras palabras un circuito integrado que incluye todos los
componentes de un computador. El esquema bsico de un microcontrolador, es el
siguiente:
30
2.1.1.1 Microchip
MICROCONTROLADORES. Disponible en
[Consultado en: 06 de junio del 2006 a las 21::20]
http://www.monografias.com/trabajos12/microco/microco.shtml.
31
Los productos que fabricaba eran los microcontoladores PIC y de las memorias
EEPROM y EPROM. Hoy es uno de los lderes del mercado de microcontroladores.
Algunos de sus productos son:
Microcontroladores PIC.
- PC16F84
- PIC16F87X
- PIC16F88
- PIC24H
- PIC32 (MCUS de 32 bits)
- Memorias.
- Productos de radio-frecuencia.
32
2.1.1.1.1 PIC16F87X
Los PIC16F87X son una familia de microcontroladores PIC es la versin mejorada del
caballo de batalla PIC16F84. Consta de los siguientes modelos que varan de acuerdo a
prestaciones, cantidad de terminales y encapsulados:
PIC16F873
PIC16F874
PIC16F876
PIC16F877
Esta familia es de las que tienen memoria tipo Flash, lo que permite
al usuario
reprogramarlos las veces que sea necesario sin necesidad de usar ningn otro
dispositivo ms que el propio programador. Este aspecto es muy importante a la hora
33
del diseo de un dispositivo para evitar prdida de tiempo en borrar los C y volver a
programarlos.
Las caractersticas principales que hacen de esta familia un poco ms potente que otras
son:
- Conversor Analgico/Digital de 10 bits
- Set de 35 instrucciones
- 3 Temporizadores + Watchdog Timer o Perro Guardin
- 2 mdulos PWM
- Protocolos de Comunicaciones USART, PSP e IC6
2.1.1.1.2 MPLAB
MPLAB. Disponible en: http://micropic.wordpress.com/2007/01/22/mplab [Consultado en: 14 de Junio del 2006 a las
17 :32]
34
Este programa permite editar el archivo fuente en lenguaje ensamblador del proyecto
que lo requiera, adems de ensamblarlo y simularlo en la pantalla.
35
Al igual que el compilador de Turbo C, ste "traduce" el cdigo C del archivo fuente (.C)
a lenguaje mquina para los microcontroladores PIC, generando as un archivo en
formato hexadecimal (.HEX). Adems de ste, tambin genera otros seis ficheros.
Para el diseo e implementacin del Tablero Electrnico Deportivo Multifuncional. Se
tiene que tener en cuenta no solo la seleccin del dispositivo y el software respectivo
para su programacin, tambin hay que entrar a seleccionar, el tipo de elementos que
se van utilizar, para la visualizacin de la informacin en el tablero electrnico. Para la
esto se tendrn en cuenta bsicamente cuatro elementos, entre los cuales se
seleccionara, uno de ellos, y para esta seleccin se tendr en cuenta los parmetros de
rendimiento, y todas sus aplicaciones.
Dentro de la familia de semiconductores hay unos que tienen la caracterstica de emitir
luz. La existencia de este tipo de dispositivos ha abierto un amplio campo de
investigacin. Este nuevo campo de investigacin es la Optoelectrnica.
La optoelectrnica es la unin entre los sistemas pticos y los sistemas electrnicos.
Por optoelectrnica entendemos el estudio de componentes que mediante induccin
36
elctrica producen una respuesta ptica (luz visible o no) o que mediante una induccin
ptica generan una respuesta elctrica.
Los componentes optoelectrnicos tienen muchas aplicaciones prcticas, entre las que
podemos destacar las siguientes:
- Elementos de visualizacin
- Control remoto
- Detectores de luz
- Transporte e intercambio de informacin
En esta rea juega un papel importante el LED. Una de aplicaciones ms importantes
de los Diodos Emisores de Luz es el Display de 7 Segmentos que se utiliza para
mostrar informacin acerca del estado de un aparato electrnico. Bsicamente es una
forma de representar los dgitos del sistema numrico que utilizamos actualmente, (09)8.
2.1.1.2 Motorola
Learobotics.
Disponible
en
www.iearobotics.com/personal/juan/publicaciones/art9/skypic.pdf
http://micropic.wordpress.com/2007/01/22/mplab [Consultado en: 14 de Junio del 2006 a las 17 :32]
37
1920, la ms famosa de ellas fue "Victrola", la empresa RCA lanz su "radiola", haba
otra compaa que lanz una mquina tocadiscos al mercado llamada Rock-Ola, y un
editor de pelculas llamado Moviola. El prefijo "Motor-" se eligi en principio porque el
objetivo inicial de Motorola fue la electrnica destinada al automvil.
Los productos ms conocidos de la compaa incluyen microprocesadores (68000,
88000, PowerPC), telfonos mviles y sistemas de conexin a redes de telefona mvil
e inalmbrica. Motorola tambin particip en el lanzamiento de la constelacin de
satlites Iridium.
38
Fuente, http://www.colegiosanmateoapostol.edu.co/web/tallertecnologia/tallercap1.html
[Consultada el 13 de abril del 2006 a las 18:30]
10
39
40
En determinado caso que dentro el desarrollo del proyecto se llegara a utilizar una
FPGA, el programa, que se utilizara para la programacin de la misma, seria el
MAX+PLUSII11.
2.1.2.1 MAX+PLUS II
11 11
FPGA. Disponible en: http://es.wikipedia.org/wiki/FPGA [Consultado en: 15 de abril del 2006 a las 15:44]
12
MAX
PLUS
II
Disponible
en:
http://campusglobal.uc3m.es/asignaturas/C8.52.1000431/TCITIG/tutorial/paginas/paginassinusar/tutorial.htm [Consultado el 6 de junio del 2006 a las 10:30]
41
13
DIODO EMISOR DE LUZ. Disponible en: http://es.wikipedia.org/wiki/Diodo_LED [Consultado en: 1 de junio del
2006 a las 16 :04]
42
2.1.3.1 Parmetros
Los LED's operan con un voltaje bajo, entre 1 y 4 voltios, y la corriente est en un rango
entre 10 y 40 miliamperios. Voltajes y corrientes superiores a los indicados pueden
derretir el chip del LED.
La parte ms importante del "Light emitting diode" (LED) es el chip semiconductor
localizado en el centro del foco, como se ve en la figura.
El chip tiene dos regiones separadas por una juntura. La regin P est dominada por las
cargas positivas, y la N por las negativas. La juntura acta como una barrera al paso de
los electrones entre la regin P y la N; slo cuando se aplica el voltaje suficiente al chip
puede pasar la corriente y entonces los electrones pueden cruzar la juntura hacia la
regin P. Si la diferencia de potencial entre los terminales del LED no es suficiente, la
juntura presenta una barrera elctrica al flujo de electrones14.
FIGURA 12. Esquema LED
14
43
Un LED puede ser activado por corriente continua, por impulsos o corriente alterna.
Los parmetros que caracterizan el funcionamiento de un LED y que sirven de base
para la eleccin del modelo ms adecuado para la aplicacin concreta a que se le va a
destinar, son los siguientes:
Fuente, http://www.electronguia.com.ar/Principiante/Informacion/Displays[Consultada el 5 de
julio del 2006 a las 12:20]
Cada segmento se identifica por una letra de la a a la g (a veces suele existir un punto
que se identifica por dp) y es posible visualizar los dgitos 0 al 9 y las letras de la A la F
activando los segmentos apropiados.
44
Cuando los segmentos son LEDs nos podemos encontrar con dos configuraciones
tpicas:
nodo comn (AC) y ctodo comn (KC). Al polarizar un dispositivo de este tipo
deberemos tener claro qu configuracin posee.
nodo Comn
Ctodo Comn
Fuente, http://www.electronguia.com.ar/Principiante/Informacion/Displays[Consultada el 5 de
julio del 2006 a las 12:20]
Las dos configuraciones bsicas para este tipo de componentes son la visualizacin
esttica y la dinmica. La primera se utiliza, por lo general, cuando hay un solo
visualizador. Cuando se necesitan varios visualizadores se suele utilizar la visualizacin
dinmica.
45
15
Cartel Electrnico. Disponible en: http://www.dbup.com.ar/cartel.htm [Consultado el 12 de junio del 2006 a las
16 :01
46
47
48
2.1.5.2 Funcionamiento
La matriz est formada por una serie de filas y columnas. La interseccin entre ambas
contiene un LED. Para que este encienda, tiene que recibir simultneamente un 0 en
la fila, y un 1 en la columna. Cuando se dan estas condiciones, la electrnica de la
placa se encarga del encendido del LED en cuestin. La forma de generar un mensaje
sobre el display se refiere al siguiente algoritmo:
El tiempo de la demora debe ser tal que permita una visualizacin correcta, sin
molestos parpadeos y con los LEDS brillantes. Hay que tener en cuenta que si
utilizamos tiempos mayores para el encendido de cada fila, el brillo de los LEDS ser
mayor, pero tambin aumentar el parpadeo. La forma de transformar este algoritmo en
un programa funcional depende de la programacin, y puede ser ms o menos
complejo segn se permitan diferentes tipos de caracteres, animaciones, etc.
49
El trmino registro puede ser utilizado en una gran variedad de aplicaciones muy
especficas, pero en todos los casos se refiere a un grupo de flip-flops operando juntos
para formar una unidad capaz de almacenar un dato. No se debe confundir con un
contador, se encarga de generar datos nuevos a partir de los ingresados.
Un contador se puede ver como una clase especializada de registro, capaz de contar
eventos y adems generar un dato de salida, diferencindose del registro de
desplazamiento que se limita a almacenar un dato en su interior y lo hace accesible en
una forma diferente a la original, pero sin transformarlo.
50
51
El terminal 8, con el nombre CLK es el que recibe los pulsos de clock, que son los que
marcaran el paso, ingresando al registro los bits presentes en su entrada con cada pin
positivo de los pulsos de clock.
El pin 9 cumple las funciones de reset, poniendo todas las salidas del integrado en 0
cada vez que se lo pone a masa. Para que el integrado funcione normalmente, este pin
debe estar conectado a +V. En caso en que por algn motivo no se pueda controlar el
pin de reset, se pueden ingresar ocho 0 consecutivos mediante A y B, teniendo el
mismo efecto final sobre las salidas. Este sistema es ms lento (ocho ciclos de clock)
pero permite ahorrar una lnea de control. Los pines 3, 4,5, 6, 10, 11,12 y 13 son las
salidas, denominadas QA, QB, QC, QD, QE, QF, QG y QH. En estos pines irn
apareciendo los valores presentes en la entrada.
El uso del 74LS164N permite el mismo control solo con 3 lneas: una de datos
conectada a las entradas A y B, una de reloj conectado a la entrada CLK y la tercera de
52
16
Neoteo. Disponible en: www.neoteo.com/74ls164n.neo [Consultado el 12 de junio del 2006 a las 16 :01
53
Un teclado PS/2 de 104 teclas para PC es un dispositivo inteligente. Esto quiere decir
que l mismo se encarga de la parte hardware del rastreo de teclas, de evitar rebotes y
de transmitirlos, mediante una trama perfectamente establecida, de los resultados de
las manipulaciones aplicadas sobre sus teclas.
El teclado PS/2 tiene un mapa de teclas a las que asigna un cdigo, de uno o dos bytes,
para cada una de ellas. Estos son los cdigos que van a transmitir para indicarnos que
se est pulsando una tecla determinada. A estos cdigos se les llamar cdigos de
rastreo de teclado.
54
El teclado PS/2 enva el cdigo de rastreo asociado a una tecla al ser sta pulsada,
tantas veces como sea necesario si se mantiene pulsada con una cadencia tal como
indique su tiempo de repeticin, que es programable y el mismo cdigo de rastreo con
el prefijo del byte F0h al ser soltada, tambin conocido como Break Code.
Pulsar
Shift->12h,
Pulsar
"G"->34h,
Soltar
"G"->F0h
34h
55
soltarShift->F0h
12h
1h,
El teclado PS/2 tambin admite comandos. Dispone de funciones build-in que podemos
disparar mediante el envo del comando correspondiente.
El teclado PS/2 se conecta mediante cuatro hilos. Dos de ellos son para alimentacin
Vcc a 5V y GND, y otros dos para las seales Data y Clock. El pinout de los conectores
Mini-DIN PS/2 tanto hembra, los del PC, como machos, los del Teclado17:
17
56
En el Teclado PS/2 las seales Data y Clock son de "colector abierto". Esto quiere decir
que para establecer una comunicacin elctricamente correcta se debe suministrar
voltaje para el nivel lgico alto y es l el encargado de dar los correspondientes niveles
lgicos bajos, enviando la seal a GND cuando sea necesario.
El teclado PS/2 se comunica mediante un Protocolo de Serie Sncrona. Utiliza una seal
de Clock que ndica cuando estn disponibles los correspondientes bits en la seal de
Data.
En reposo la seal de Clock est a nivel alto; a cada pulso a nivel bajo corresponde un
pulso a nivel alto o bajo en la seal de Data, que se traducen respectivamente como
bits 0 1 del dato a transmitir.
57
Para poder habilitar la comunicacin inversa, del PC (host) al Teclado PS/2 (Keyboard)
se debe en primer lugar indicrselo as al Teclado mediante la seal de Clock. Para ello
se debe poner a nivel bajo el Clock durante unos 160 uS, y la seal de Data a bajo unos
35 uS despus de haber enviado la seal del Clock.
A partir de ah se debe esperar la seal del Clock generada por el Teclado. Esto nos
indicar que el teclado est dispuesto para recibir nuestro comando. Se detecta la seal
como primer pulso de Clock, y a partir del siguiente podemos comenzar a enviarle el
byte18.
18
58
59
tableros
electrnicos,
pasacalles,
pendones,
colombinas,
carteleras,
60
ARTCULO 54. CLASES DE AVISOS. Se entiende por aviso el elemento que se utiliza
como medio de propaganda o de identificacin de oficinas y establecimientos
comerciales, industriales o de servicios, en este ltimo caso fijado por medios fsicos o
mecnicos a la edificacin. Para efectos de este Estatuto, los avisos sern con o sin
iluminacin, de fachada, de colocacin fija o mvil, de propaganda comercial o avisos
de identificacin de oficinas y establecimientos en general. Estos se consideran de
fijacin permanente.
61
contener mensajes que constituyan actos de competencia desleal ni que atenten contra
las leyes de la moral, las buenas costumbres o conduzcan a confusin con la
sealizacin vial e informativa. No podrn utilizarse palabras, imgenes o smbolos que
atenten contra el debido respeto a las figuras o smbolos consagrados en la historia
nacional. Igualmente, las que atenten contra las creencias o principios religiosos
culturales o afectivos de las comunidades que defienden los derechos humanos y la
dignidad de los pueblos.
ARTCULO 56. (Modificado por el artculo 110 del Acuerdo 003 de 2007)
Disposicin de avisos: Los avisos y publicidad exterior pueden ser dispuestos de la
siguiente manera:
62
63
ARTCULO 58. (Modificado por el artculo 111 del Acuerdo 003 de 2007)
LUGARES PERMITIDOS DE EXHIBICIN DE AVISOS: Los siguientes son lugares
permitidos para avisos permanentes:
a) Sobre murales artsticos con patrocinios comerciales, los cuales solo podrn ocupar
el 5% del rea total del mural.
b) En las culatas de los edificios o en muros de cerramiento, de la zona Mltiple 2 (M2)
y 3 (M3).
c) En las marquesinas sin sobresalir de los bordes exteriores, paralelo de la lnea de
fachada.
e) En reas de uso pblico slo se permitirn placas que identifiquen el lugar colocando
una placa en cada zona.
f) En estaciones de servicios, el nombre de la estacin deber ir adosado o sobre la
cubierta de la edificacin, con iluminacin fija. Los emblemas de la Compaa
propietaria podrn tener estructura independiente y estar localizados dentro del rea de
la estacin de servicio.
g) En zonas utilizadas por centros comerciales y zonas de uso Mltiple (M2), y (M3) se
permitirn avisos en forma aislada (avisos tipo poste), de los edificios o sobre las
cubiertas de ellos.
64
ARTCULO 59. DE LAS VALLAS: Se entiende por valla toda estructura (metlica,
acrlica o de madera) para anuncio permanente o temporal, utilizado como medio de
difusin de publicidad cvica, turstica, poltica, informativa, educativa, cultural, con
propsitos de inters general dispuestas para su apreciacin visual en sitios exteriores;
los pasacalles metlicos no se consideran vallas si no seales de trnsito, los cuales
estn regidos por las normas consignadas en el manual de dispositivos de sealizacin
vial del Ministerio de Obras Pblicas y de Transporte (M.O.P.T.). Para que la valla sea
considerada como tal, deber cumplir con las siguientes condiciones:
a) Solicitud firmada por el interesado, con nmero de cdula de ciudadana o firma del
representante legal en caso de ser personas jurdicas.
b) Empotrada la estructura metlica de soporte en bloques de concreto enterrados de
0.40mts x 0.40 mts. x 0.40 mts.
c) Separar tanto la estructura como la valla misma de las edificaciones.
d) Tener un rea neta de exhibicin de acuerdo al tipo de va sobre la cual se exhiban.
En lotes ubicados sobre vas del Plan Vial, en caso de arterias y semiarterias, no ser
mayor de cuarenta metros cuadrados (40m) ni menor de veinte cuatro metros
cuadrados (24m). Para vas locales no ser mayor de doce metros cuadrado (12m).
e) Construccin en lmina de acrlico, plstico, ladrillo, aluminio y otro material
resistente a la intemperie.
f) Iluminada fijamente por reflectores, tener iluminacin interior o sin iluminacin.
65
g) La altura del lado inferior con respecto al suelo no mayor de los dos con cincuenta
metros (2.50m); y la altura superior, del lado superior, con respecto al suelo, no mayor
de ocho metros (8m), ni menor de seis con cincuenta (6.50m) metros.
h) La valla debe tener una longitud mxima de doce metros (12m).
i) El espacio longitudinal entre vallas deber ser entre noventa metros (90m) y cien
metros (100m) a lo largo de las vas.
j) Estar colocada paralela a la va o mximo a treinta grado (30) con respecto al eje de
la va.
k) No obstaculizar la instalacin, mantenimiento y operacin de los servicios pblicos
domiciliarios (Artculo 4 de la Ley 140 de 1994).
ARTCULO 63. Modificado por el artculo 113 del Acuerdo 003 de 2007
Lugares permitidos para vallas: La instalacin de vallas se permite con la autorizacin
del IDU en los siguientes lugares:
66
a. En campo abierto sobre vas de acceso a la ciudad, dentro de los dos (2) kilmetros
de carretera siguientes al lmite urbano, podr colocarse una valla cada 200 metros,
despus de este kilometraje podr colocarse una valla cada 250 metros (Artculo 4 de
la Ley 140 de 1994).
c. En lotes privados dentro del casco urbano, siempre que estn ubicadas sobre vas de
alcance Metropolitano y Arterias con la aprobacin previa del IDU, solo se podrn
colocar vallas que anuncien el proyecto que all se construir.
19
Decreto
POT.
Disponible
http://www.camarabaq.org.co/cms/documentstorage/com.tms.cms.document.Document_f991e7d0-c0a8fa201a18ee20-5c6f1595/decreto%200154%202000.pdf[Consultado en: 7 de julio del 2008 a las 12 :20]
67
en:
3. METODOLOGA
Dentro de lo que se pretende con este proyecto es crear una retroalimentacin con la
universidad de San Buenaventura, ya que se pueden aplicar los conocimientos dados
por ella a un tablero electrnico diseado, desarrollado y aplicado por estudiantes de la
universidad, para beneficio de la misma.
68
Este trabajo brinda la oportunidad de desarrollar tecnologa propia, esperamos que con
este trabajo se pueda motivar a otros estudiantes y profesores a desarrollar en el futuro
proyectos de este tipo, ya que es muy importante para nuestro pas que los cientficos
nacionales desarrollen tecnologa propia en todas las reas posibles. La idea es ubicar
el tablero en el polideportivo de la universidad.
Dada la necesidad del hombre por satisfacer sus necesidades, ha tenido que utilizar
todas las herramientas a su alcance para mejorar su calidad de vida por eso tomando
las Tecnologas actuales se ha pensado en mejorar el ambiente en los escenarios
deportivos, en este caso se implementara un tablero electrnico multifuncional para el
polideportivo de la universidad para utilidad no solo de la misma sino tambin de la
sociedad.
Utilizando la Ingeniera como la herramienta til para mejorar la calidad de vida del
hombre se necesita la Instrumentacin y control de procesos en este caso se utiliza
la interfaz hombre maquina para el diseo de un tablero electrnico multifuncional
donde un operario por medio de un teclado acciona el procesador (microcontrolador)
69
donde actan los contadores, registros, memorias y otros componentes que hacen la
visualizacin de lo que se quiere mostrar en el tablero electrnico multifuncional.
Para la recoleccin de datos que nos llevaran a una informacin clara de lo que se
pretenda con el desarrollo del proyecto se realizo una encuesta con los estudiantes de
la Universidad de San Buenaventura, en donde se les pregunto si crean que la
universidad necesitaba un tablero electrnico multifuncional para el polideportivo,
diseado y construido por los mismos estudiantes donde se aplique el conocimiento
adquirido a lo largo del proceso de profesionalizacin, esta encuesta arrojo los datos de
que 8 de cada 10 estudiantes encuestados crean que si era una forma til y neceara
70
estudiantes encuestados).
3.4 HIPTESIS
71
3.5 VARIABLES
Las variables dependientes del prototipo son los valores necesarios como mnimo para
que la visualizacin del prototipo sea optima y clara para los usuarios en este caso la
corriente debe estar entre valores de 3Amp a 5Amp y el voltaje debe ser de 5 a 12
voltios.
72
4. DESARROLLO INGENIERL
Toda la informacin requerida para el desarrollo del proyecto ser recopilada desde
distintas pginas de Internet, revistas tecnolgicas y electrnicas, libros tcnicos, etc.
73
Para la visualizacin de cada una de las letras y los nmeros se emplearon tablas que
fueron almacenadas en la memoria FLASH del microcontrolador, dichas tablas fueron
realizadas con base en los dibujos plasmados en forma matricial y la correspondiente
activacin de filas y columnas para el caso de las matrices y con el respectivo
corrimiento para el caso de los displays.
74
NUMERO 1
CODIGO 11111001
NUMERO 2
CODIGO 10100100
75
NUMERO 3
CODIGO 10110000
NUMERO 4
CODIGO 10011001
C1 C2 C3 C4 C5
F1 1
F2 1
F3 0
F4 0
F5 0
F6 0
76
3_12
4_12
5_12
6_12
10_12
11_12
12_12
13_12
3_13
4_13
5_13
6_13
10_13
11_13
12_13
3_3
4_3
5_3
6_3
10_3
11_3
12_3
RD0
RD1
RD2
RD3
RD4
RD5
RD6
3_4
4_4
5_4
6_4
10_4
11_4
12_4
3_1
4_1
5_1
6_1
10_1
11_1
12_1
77
3_8
4_8
5_8
6_8
10_8
11_8
12_8
3_9
4_9
5_9
6_9
10_9
11_9
12_9
3_10
4_10
5_10
6_10
10_10
11_10
12_10
3_14
4_14
5_14
6_14
10_14
11_14
12_14
13_14
3_15
4_15
5_15
6_15
10_15
11_15
12_15
3_7
4_7
5_7
6_7
10_7
11_7
12_7
3_5
4_5
5_5
6_5
10_5
11_5
12_5
3_6
4_6
5_6
6_6
10_6
11_6
12_6
RC0
RC1
RC2
RC3
RC4
RC5
RC6
3_2
4_2
5_2
6_2
10_2
11_2
12_2
78
U4
9
RA4
RA5
1
2
U5
SRG8
C1/->
RA4
3
&
1D
4
5
6
10
11
12
3_3
1
2
U6
SRG8
C1/->
RA4
3
&
1D
4
4_3
5_3
6_3
10
10_3
11
11_3
12
12_3
13
RE2
RD7
1
2
1
2
9
RE2
3
&
1D
4
5
6
10
11
12
3_7
1
2
C1/->
RA4
3
&
1D
5_4
6_4
10
10_4
11
11_4
12
12_4
3_5
1
2
9
RE2
3
1D
4
4_7
5_7
6_7
10
10_7
11
11_7
12
12_7
C1/->
3
&
1D
4
5
5_5
6_5
10
10_5
11
11_5
12
12_5
3_8
1
2
5_6
6_6
10_6
11_6
12_6
U11
9
RE2
C1/->
3
&
1D
4
5
5_8
6_8
10
10_8
11
11_8
12
12_8
13
3_9
1
2
SRG8
C1/->
3
&
74LS164
1D
4
4_9
5_9
6_9
10
10_9
11
11_9
12
12_9
13
79
4_6
74LS164
SRG8
4_8
74LS164
3_6
13
U10
&
SRG8
4_5
74LS164
C1/->
13
SRG8
13
74LS164
U9
SRG8
C1/->
U7
SRG8
4_4
74LS164
U8
R
3_4
13
74LS164
13
74LS164
3_10
4_10
5_10
6_10
10_10
11_10
12_10
10k
RA0
RA1
RA2
RA3
RA4
RA5
U2
13
15
OSC1/CLKI RC0/T1OSO/T1CKI
1
16
MCLR/VPP RC1/T1OSI/CCP2A
17
RC2/CCP1
2
18
RA0/AN0
RC3/SCK/SCL
3
23
RA1/AN1
RC4/SDI/SDA
4
24
RA2/AN2/VREFRC5/SDO
5
25
RA3/AN3/VREF+ RC6/TX/CK
6
26
RA4/T0CKI
RC7/RX/DT
7
RA5/AN4/SS/LVDIN
14
19
RA6/OSC2/CLKO RD0/PSP0
20
RD1/PSP1
33
21
RB0/INT0
RD2/PSP2
34
22
RB1/INT1
RD3/PSP3
35
27
RB2/INT2
RD4/PSP4
36
28
RB3/CCP2B
RD5/PSP5
37
29
RB4
RD6/PSP6
38
30
RB5/PGM
RD7/PSP7
39
RB6/PGC
40
8
RB7/PGD
RE0/RD/AN5
9
RE1/WR/AN6
10
RE2/CS/AN7
RC0
RC1
RC2
RC3
RC4
RC5
RC6
U1
9
8
RE0
1
2
U3
SRG8
9
RE0
C1/->
3
&
1D
4
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
5
6
RE1
R1
10
11
RE0
RE1
RE2
12
3_1
1
2
SRG8
C1/->
3
&
4_1
5_1
6_1
10
10_1
11
11_1
12
12_1
13
13
PIC18F452
74LS164
80
1D
74LS164
3_2
4_2
5_2
6_2
10_2
11_2
12_2
U12
9
RA0
RA1
1
2
U13
SRG8
C1/->
RA0
3
&
1D
4
5
6
10
11
12
13
3_12
1
2
RA2
RA3
1
2
C1/->
3
&
1D
4
5
5_12
6_12
10
10_12
11
11_12
12
12_12
3_13
4_13
5_13
6_13
10_13
11_13
12_13
13
13_12
74LS164
U14
R
SRG8
4_12
74LS164
U15
SRG8
C1/->
RA2
3
&
1D
4
5
6
10
11
12
13
3_14
1
2
SRG8
C1/->
3
&
4_14
5_14
6_14
10
10_14
11
11_14
12
12_14
13
13_14
74LS164
74LS164
81
1D
3_15
4_15
5_15
6_15
10_15
11_15
12_15
82
83
84
85
5. RESULTADOS
5.1 SIMULACIONES
Para las simulaciones del circuito se emple el software PROTEUS el cual permite
implementar el fichero del PIC en un modelo que se desempea a nivel casi real.
Los resultados al implementar los componentes prcticos y cargando el software en el
microcontrolador fueron los siguientes:
FIGURA 35. Pantallazo de la simulacin empleando el software PROTEUS
86
87
6. CONCLUSIONES
Este tipo de tableros electrnicos son muy importantes para el mercado, ya hoy
en da son muy utilizados como medio de informacin en diferentes comercios,
para brindar diferentes mensajes, comunicar y vender.
88
89
7. RECOMENDACIONES
90
BIBLIOGRAFA
Faundez
Zanuy,
Marcos,
Circuitos
Electrnicos
Para
Sistemas
De
WEBLIOGRAFIA
Multiled.
Disponible
en:
http//www.multiled.com.ar/esp/relojes_gigantes.php
MICROCONTROLADORES.
Disponible
en
91
MICROCHIP.
Disponible
en:
MAPLAB.
Disponible
en:
http://micropic.wordpress.com/2007/01/22/mplab
Learobotics.
Disponible
en:
www.iearobotics.com/personal/juan/publicaciones/art9/skypic.pdf
Motorola:
Disponible
en
www.gda.utp.educo/pub/lab_microcontroladores
Taller
de
tecnologa:
Disponible
en:
http://www.colegiosanmateoapostol.edu.co/web/tallertecnologia/tallercap1.html
[Consultado el 13 de abril del 2006 a las 18:30]
MAX
PLUS
II
Disponible
en:
PARAMETROS.
Disponible
en:
92
Pic-mania
Disponible
en:
picmania.garcia-
Decreto
POT.
Disponible
en:
http://www.camarabaq.org.co/cms/documentstorage/com.tms.cms.document.Doc
ument_f991e7d0-c0a8fa20-1a18ee205c6f1595/decreto%200154%202000.pdf[Consultado en: 7 de julio del 2008 a las
12 :20]
93
ANEXO A
94
///////////////////////////////////////////////////////////////////////////////////////
//
//
//
//
//
//
//
//
//
//
RA0 = CLK_E1
RA1= DATA_E1
//
//
RA2 = CLK_E2
RA3= DATA_E2
//
//
RA4 = CLK_S
RA5=DATA_S
//
//
//
//
RE0 = CLK_F
//
RE2 = CLK_T
RE1=DATA_F
//
//
//
//
//
RB1=
//
//
RB2 =
//
//
RB4 =
RB5=
//
//
RB6 =
RB7=
//
//
//
//
RC0 = ROW1 E2
RC1= ROW2 E2
//
//
RC2 = ROW3 E2
RC3= ROW4 E2
//
//
RC4 = ROW5 E2
RC5= ROW6 E2
//
//
RC6 = ROW7 E2
RC7=
//
//
//
95
//
RD0 = ROW1 E1
RD1= ROW2 E1
//
//
RD2 = ROW3 E1
RD3= ROW4 E1
//
//
RD4 = ROW5 E1
RD5= ROW6 E1
//
//
RD6 = ROW7 E1
RD7= DATA_T
//
//
//
//
//
DIEGO BOHORQUEZ
//
//
//
//////////////////////////////////////////////////////////////////////////////////////
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=19200, xmit=PIN_B2, rcv=PIN_B1)
#zero_ram
//#use rs232(baud=9600, xmit=PIN_B6, rcv=PIN_B7)
#byte
port_a=0xF80
#byte
port_b=0xF81
#byte
port_c=0xF82
#byte
port_d=0xF83
#byte
port_e=0xF84
#byte
tris_a=0xF92
#byte
tris_b=0xF93
#byte
tris_c=0xF94
96
#byte
tris_d=0xF95
#byte
tris_e=0xF96
#byte
sspcon=0XFC6
//************************************************************************//
//
//
//************************************************************************//
#include <stdlib.h>
////////////////////////////////////////////////////////////////////////////////
//************************************************************************//
//
//
DEFINICIONES
//************************************************************************//
#define clk_e1_up
#define clk_t_down
/////////////////////////////////////////////////////////////////////////////////////////////////
//************************************************************************//
//
//
DEFINICION DE VARIABLES
//************************************************************************//
int i=0;
int j=0;
int m=0;
char d2_fc[8];
98
DEFINICION DE FUNCIONES
//************************************************************************//
void foul(int d1_f,int d2_f);
void score(int d1_s,int d2_s);
void time(int min,int seg);
int32 vector(int dato);
int matriz(char caracter,int pos);
void init_kb(void);
100
void dis_timer1();
/////////////////////////////////////////////////////////////////////////////////////////////////
//************************************************************************//
//
//
VECTOR DE INTERRUPCIONES
//************************************************************************//
#int_ext
void int_ext_isr(void){
unsigned char data;
//-------- Los bit 3 a 10 se considerran datos. Paridad, start y stop
//-------- son ignorados
if(bitcount < 11 && bitcount > 2){
data = (data >> 1);
status_b3 = input(PIN_B3);
if((status_b3) == 1){
data = data | 0x80;
}
}
//-------- Todos los bits se han recibido
if(--bitcount == 0){
decode(data);
data = 0;
bitcount = 11;
101
got_interrupt = TRUE;
}
got_interrupt = TRUE;
interrupt_count++;
disable_interrupts(INT_EXT);
}
#int_TIMER1 //Interrupcion de Timer 1
void TIMER1_isr(){
m=m+1;
if(m>=10){
m=0;
segundos=segundos+1;
if(segundos>59){ // es porque pas'o 1 minuto
segundos=0;
minutos=minutos+1;
if(minutos>99){ //para que no se deborden los 2 digitos
minutos=0;
}
}
time(minutos,segundos); //va a visualizar el tiempo
}
set_timer1(3035);
}
102
////////////////////////////////////////////////////////////////////////////////
void main (void){
set_tris_a(0b00000000);
set_tris_c(0b00000000);
set_tris_d(0b00000000);
set_tris_e(0b00000000);
delay_ms(100);
init_kb();
//Tiempo de estabilidad
//Inicializa el teclado PS2
output_float(PIN_B0);
output_float(PIN_B3);
port_b_pullups(TRUE);
delay_us(5);
output_low(PIN_B5);
port_c=0b11111111;
port_d=0b11111111;
interrupt_count = 0;
got_interrupt = FALSE;
status_b3 = 0;
ext_int_edge(H_TO_L);
INTF_BIT = 0;
score(93,87);
time(minutos,segundos);
init_timer1();
for(i=0;i<=15;i++){
output_bit( PIN_A1,0);
clk_e1_up;
clk_e1_down;
}
for(i=0;i<=15;i++){
output_bit( PIN_A3,0);
clk_e2_up;
clk_e2_down;
}
// printf("\r\n %c",equipo1[1]);
for(;;){
restart_wdt();
if(got_interrupt == TRUE){
got_interrupt = FALSE;
//delay_ms(50);
INTF_BIT = 0;
enable_interrupts(INT_EXT);
}
104
for(j=1;j<=3;j++){
for(i=1;i<=5;i++){
port_d=matriz(equipo1[j],i); //saca los datos de las filas
if(j==1 && i==1){
output_bit( PIN_A1,1);
//envia el primer 1
}
else{
output_bit( PIN_A1,0);
//corre los 0
}
clk_e1_up;
clk_e1_down;
//delay_ms(100);
}
}
for(j=1;j<=3;j++){
for(i=1;i<=5;i++){
port_c=matriz(equipo2[j],i); //saca los datos de las filas
if(j==1 && i==1){
output_bit( PIN_A3,1);
//envia el primer 1
}
else{
output_bit( PIN_A3,0);
//corre los 0
}
105
clk_e2_up;
clk_e2_down;
//delay_ms(100);
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
void init_kb(void){
bitcount = 11;
printf("\n\rPC AT Keyboard Interface Ver 1.0 by XP8100");
printf("\n\rAdpapted for 16F628A by Redpic");
printf("\n\rDecoder and Monitoring for 16F628A connected ...\n\r\n\r");
}
{
//-------- SHIFT Izquierdo
case 0x12 :
shift = 0;
break;
//-------- SHIFT Derecho
case 0x59 :
shift = 0;
break;
} // --- End Switch
}
}
void foul(int d1_f,int d2_f){ //Esta funcin visualiza las faltas
itoa(vector(d1_f),10,d1_fc);
itoa(vector(d2_f),10,d2_fc);
for(i=0;i<8;i++){
output_bit( PIN_E1,d2_fc[i]-48);
clk_f_up;
clk_f_down;
}
for(i=0;i<8;i++){
output_bit( PIN_E1,d1_fc[i]-48); //visualiza en el segundo display
clk_f_up;
109
clk_f_down;
}
}
void score(int d1_s,int d2_s){
int ds1_l,ds1_h;
int ds2_l,ds2_h;
char string[3];
char ds[8];
itoa(d1_s,10,string);
ds1_h=(int)string[0]-48;
ds1_l=(int)string[1]-48;
itoa(d2_s,10,string);
ds2_h=(int)string[0]-48;
ds2_l=(int)string[1]-48;
if (d1_s<10){
ds1_l=ds1_h;
ds1_h=0;
}
if (d2_s<10){
ds2_l=ds2_h;
ds2_h=0;
}
itoa(vector(ds2_l),10,ds);
110
for(i=0;i<8;i++){
output_bit( PIN_A5,ds[i]-48);
clk_s_up;
clk_s_down;
}
itoa(vector(ds2_h),10,ds);
for(i=0;i<8;i++){
output_bit( PIN_A5,ds[i]-48);
clk_s_up;
clk_s_down;
}
itoa(vector(ds1_l),10,ds);
for(i=0;i<8;i++){
output_bit( PIN_A5,ds[i]-48);
clk_s_up;
clk_s_down;
}
itoa(vector(ds1_h),10,ds);
for(i=0;i<8;i++){
output_bit( PIN_A5,ds[i]-48);
clk_s_up;
clk_s_down;
}
111
}
void time(int min,int seg){
int m_l,m_h;
int s_l,s_h;
char string[3];
char pt[8];
itoa(min,10,string);
m_h=(int)string[0]-48;
m_l=(int)string[1]-48;
itoa(seg,10,string);
s_h=(int)string[0]-48;
s_l=(int)string[1]-48;
if (min<10){
m_l=m_h;
m_h=0;
}
if (seg<10){
s_l=s_h;
s_h=0;
}
itoa(vector(s_l),10,pt);
for(i=0;i<8;i++){
output_bit( PIN_D7,pt[i]-48);
112
clk_t_up;
clk_t_down;
}
itoa(vector(s_h),10,pt);
for(i=0;i<8;i++){
output_bit( PIN_D7,pt[i]-48);
clk_t_up;
clk_t_down;
}
itoa(vector(m_l),10,pt);
for(i=0;i<8;i++){
output_bit( PIN_D7,pt[i]-48);
clk_t_up;
clk_t_down;
}
itoa(vector(m_h),10,pt);
for(i=0;i<8;i++){
output_bit( PIN_D7,pt[i]-48);
clk_t_up;
clk_t_down;
}
}
int32 vector(int dato){ //Retorna el numero a visualizar en bcd
113
switch (dato) {
case 1:
return 11111001;
break;
case 2:
return 10100100;
break;
case 3:
return 10110000;
break;
case 4:
return 10011001;
break;
case 5:
return 10010010;
break;
case 6:
return 10000010;
break;
case 7:
return 11111000;
break;
case 8:
114
return 10000000;
break;
case 9:
return 10011000;
break;
case 0:
return 11000000;
break;
default:
return 10000000;
break;
}
}
int matriz(char caracter,int pos){
switch (caracter) {
case 'a':
switch (pos) {
case 1:
return 3;
case 2:
return 117;
case 3:
return 118;
115
case 4:
return 117;
case 5:
return 3;
default:
return 255;
break;
}
case 'b':
switch (pos) {
case 1:
return 0;
case 2:
return 54;
case 3:
return 54;
case 4:
return 54;
case 5:
return 73;
default:
return 255;
break;
116
}
case 'c':
switch (pos) {
case 1:
return 65;
case 2:
return 62;
case 3:
return 62;
case 4:
return 62;
case 5:
return 93;
default:
return 255;
break;
}
case 'd':
switch (pos) {
case 1:
return 0;
case 2:
return 62;
117
case 3:
return 62;
case 4:
return 93;
case 5:
return 99;
default:
return 255;
break;
}
case 'e':
switch (pos) {
case 1:
return 0;
case 2:
return 54;
case 3:
return 54;
case 4:
return 54;
case 5:
return 62;
default:
118
return 255;
break;
}
case 'f':
switch (pos) {
case 1:
return 0;
case 2:
return 118;
case 3:
return 118;
case 4:
return 118;
case 5:
return 126;
default:
return 255;
break;
}
case 'g':
switch (pos) {
case 1:
return 65;
119
case 2:
return 62;
case 3:
return 54;
case 4:
return 54;
case 5:
return 69;
default:
return 255;
break;
}
case 'h':
switch (pos) {
case 1:
return 0;
case 2:
return 119;
case 3:
return 119;
case 4:
return 119;
case 5:
120
return 0;
default:
return 255;
break;
}
case 'i':
switch (pos) {
case 1:
return 62;
case 2:
return 62;
case 3:
return 0;
case 4:
return 62;
case 5:
return 62;
default:
return 255;
break;
}
case 'j':
switch (pos) {
121
case 1:
return 94;
case 2:
return 62;
case 3:
return 100;
case 4:
return 126;
case 5:
return 126;
default:
return 255;
break;
}
case 'k':
switch (pos) {
case 1:
return 0;
case 2:
return 119;
case 3:
return 107;
case 4:
122
return 93;
case 5:
return 62;
default:
return 255;
break;
}
case 'l':
switch (pos) {
case 1:
return 0;
case 2:
return 63;
case 3:
return 63;
case 4:
return 63;
case 5:
return 63;
default:
return 255;
break;
}
123
case 'm':
switch (pos) {
case 1:
return 0;
case 2:
return 125;
case 3:
return 123;
case 4:
return 125;
case 5:
return 0;
default:
return 255;
break;
}
case 'n':
switch (pos) {
case 1:
return 0;
case 2:
return 125;
case 3:
124
return 123;
case 4:
return 119;
case 5:
return 0;
default:
return 255;
break;
}
case '':
switch (pos) {
case 1:
return 2;
case 2:
return 118;
case 3:
return 110;
case 4:
return 94;
case 5:
return 2;
default:
return 255;
125
break;
}
case 'o':
switch (pos) {
case 1:
return 65;
case 2:
return 62;
case 3:
return 62;
case 4:
return 62;
case 5:
return 65;
default:
return 255;
break;
}
case 'p':
switch (pos) {
case 1:
return 0;
case 2:
126
return 118;
case 3:
return 118;
case 4:
return 118;
case 5:
return 121;
default:
return 255;
break;
}
case 'q':
switch (pos) {
case 1:
return 65;
case 2:
return 62;
case 3:
return 46;
case 4:
return 30;
case 5:
return 1;
127
default:
return 255;
break;
}
case 'r':
switch (pos) {
case 1:
return 0;
case 2:
return 118;
case 3:
return 102;
case 4:
return 86;
case 5:
return 57;
default:
return 255;
break;
}
case 's':
switch (pos) {
case 1:
128
return 89;
case 2:
return 54;
case 3:
return 54;
case 4:
return 54;
case 5:
return 77;
default:
return 255;
break;
}
case 't':
switch (pos) {
case 1:
return 126;
case 2:
return 126;
case 3:
return 0;
case 4:
return 126;
129
case 5:
return 126;
default:
return 255;
break;
}
case 'u':
switch (pos) {
case 1:
return 64;
case 2:
return 63;
case 3:
return 63;
case 4:
return 63;
case 5:
return 64;
default:
return 255;
break;
}
case 'v':
130
switch (pos) {
case 1:
return 96;
case 2:
return 95;
case 3:
return 63;
case 4:
return 95;
case 5:
return 96;
default:
return 255;
break;
}
case 'w':
switch (pos) {
case 1:
return 0;
case 2:
return 95;
case 3:
return 111;
131
case 4:
return 95;
case 5:
return 0;
default:
return 255;
break;
}
case 'x':
switch (pos) {
case 1:
return 28;
case 2:
return 107;
case 3:
return 119;
case 4:
return 107;
case 5:
return 28;
default:
return 255;
break;
132
}
case 'y':
switch (pos) {
case 1:
return 124;
case 2:
return 123;
case 3:
return 7;
case 4:
return 123;
case 5:
return 124;
default:
return 255;
break;
}
case 'z':
switch (pos) {
case 1:
return 30;
case 2:
return 46;
133
case 3:
return 54;
case 4:
return 58;
case 5:
return 60;
default:
return 255;
break;
}
case '+':
switch (pos) {
case 1:
return 119;
case 2:
return 119;
case 3:
return 0;
case 4:
return 119;
case 5:
return 119;
default:
134
return 255;
break;
}
case '-':
switch (pos) {
case 1:
return 119;
case 2:
return 119;
case 3:
return 119;
case 4:
return 119;
case 5:
return 119;
default:
return 255;
break;
}
case '1':
switch (pos) {
case 1:
return 59;
135
case 2:
return 61;
case 3:
return 0;
case 4:
return 63;
case 5:
return 63;
default:
return 255;
break;
}
case '2':
switch (pos) {
case 1:
return 57;
case 2:
return 30;
case 3:
return 46;
case 4:
return 54;
case 5:
136
return 57;
default:
return 255;
break;
}
case '3':
switch (pos) {
case 1:
return 94;
case 2:
return 62;
case 3:
return 58;
case 4:
return 52;
case 5:
return 78;
default:
return 255;
break;
}
case '4':
switch (pos) {
137
case 1:
return 119;
case 2:
return 115;
case 3:
return 117;
case 4:
return 0;
case 5:
return 119;
default:
return 255;
break;
}
case '5':
switch (pos) {
case 1:
return 88;
case 2:
return 54;
case 3:
return 54;
case 4:
138
return 54;
case 5:
return 78;
default:
return 255;
break;
}
case '6':
switch (pos) {
case 1:
return 67;
case 2:
return 61;
Case 3:
return 54;
case 4:
return 54;
case 5:
return 78;
default:
return 255;
break;
}
139
case '7':
switch (pos) {
case 1:
return 62;
case 2:
return 94;
case 3:
return 110;
case 4:
return 118;
case 5:
return 120;
default:
return 255;
break;
}
case '8':
switch (pos) {
case 1:
return 73;
case 2:
return 54;
case 3:
140
return 54;
case 4:
return 54;
case 5:
return 73;
default:
return 255;
break;
}
case '9':
switch (pos) {
case 1:
return 89;
case 2:
return 54;
case 3:
return 54;
case 4:
return 54;
case 5:
return 65;
default:
return 255;
141
break;
}
case '0':
switch (pos) {
case 1:
return 65;
case 2:
return 46;
case 3:
return 54;
case 4:
return 58;
case 5:
return 65;
default:
return 255;
break;
}
default:
return 0;
break;
}
}
142
void init_timer1(){
m=0;
//Inicializar Timer 1
//Cuando m sea 10 el timer cuenta 1 segundo
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
set_timer1(3035);
//Inicializar Timer 1
//Cuando m sea 10 el timer cuenta 1 segundo
setup_timer_1(T1_DISABLED);
disable_interrupts(INT_TIMER1);
}
143