Professional Documents
Culture Documents
Ingeniería Electrónica
Sistemas Microprocesados I
TEMA:
“Indicador de Mensajes”
Integrantes:
• Juan Villacís
• Edison Riofrio
• Gabriela Chicaisa
• Darío Valarezo.
Periodo
Septiembre2009-Febrero 2010
1.- Análisis de la problemática a resolver
1.1.-Planteamiento del problema a resolver
1.2.- Objetivos
1.3.- Hipótesis
1.4.- Justificación
1.5.- Metodología
1.6.- Alcance y Limitaciones
Problema a Resolver:
Justificación
Ejecución Programa
Informe final
Ejecución. Indicador Mensajes
Aprendizaje grupal
Realización de Ejercicios
Simulación de prueba
Practicas externa
Trabajos Escritos Tutoriales
Programación dinámica ¿Cómo Funciona?
Resolución del Problema Planteado
Clases Sistemas Microprocesados
Clases y Prácticas de Laboratorio.
Video Tutoriales
Búsqueda en exploradores, de ejemplos y consultas de DataSheets
Informe Final detallado.
Alcance y Limitaciones
Indicador
Alcances de Limitaciones
Mensajes
Presentación de Mensajes Costo del Proyecto
Indicador de Figuras Tiempo de Ejecución
Utilización de Filas y Capacidad del
Columnas Microcontrolador
Permite Animación Programación Fija
Es reprogramable
Tiene Alta Resolución
Permite Controlar y filas y columnas
Transistores permiten la amplificación
la corriente
Uso de Subrutinas.
2.1.-Diagrama de Bloques
*
*
Matriz de *
Microcontrolador
Fuente Leds *
de * Demux
5Voltios *
*
*
Transistores
* * * * * * * * * *
Diseño Dinámico Placa PIC ATMEGA644
Matriz de Leds
Fuente 5v
AVR
Atmega644
Demux
Fuente de 5 Voltios
Materiales:
3 borneras
1 7805
2 104
1 led amarillo
1 puente rectificador
1 cap. Elec. 1000 uf 16v-470uf 25v
Diseño de Fuente
PCB, listo para montar los componentes. Posición que deberá ocupar cada componente.
2.3.- Desarrollo de la etapa 2
Bueno en esta parte explicamos el uso de los transistores y porque su utilización.
Utilizaremos los transistores 3904 que nos ayudaran en la amplificación de la corriente y en el
Apagado y encendido de las filas y columnas. Esquema.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Fig. Transistores.
Utilizaremos 36 transistores colocados en cada fila y columna los que nos permitirán controlar la
corriente en cada uno de ellos. Ver figura *DISEÑO PROTEUS
2.4.- Desarrollo de la etapa 3
Construcción Circuito Impreso
Materiales:
324 leds de alta luminosidad
Microcontrolador Atmega644
DEMUX 74LS4
Transistores
Resistencias
Pulsador
Bornera.
.
Circuito impreso.
Diseño en Proteus.
Aquí se puede ver su distribución tanto de los leds y de cada elemento puesto en su
lugar para poder quemar el circuito.
Teniendo en cuenta que va hacer cada uno de ellos para ello su funcionamiento le
explicáremos mas adelante ahora procederemos a Quemar la placa y a soldar los leds
para poder empezar y colocar una memoria adecuada para su Uso.
Quemar la Placa, pasar el Diseño a ARES e imprimir su diseño.
Ya diseñado el circuito en Proteus lo pasamos como imagen *.bmp para su elaboración.
DISEÑO IMPRESO
Fases para
quemar nuestra
Placa
Utilizando
Software como
2.5.- Desarrollo de la etapa 4
DISTRIBUCIÓN DE FILAS Y COLUMNAS DE LA MATRIZ UTILIZANDO EL DEMUX Y EL
CONTROLADOR ATMEGA644 COPNECTANDO SUS REPESTIVAS RERSISTENCIAS Y
TRANSISTORES
Lógica de Programación.
Figura1
Los puertos A, B y C del micro controlador son los encargados de gestionar los códigos binarios
correspondientes a las filas.
Mientras que el puerto D del micro controlador es el encargado de gestionar los códigos binarios
correspondientes a las columnas.
Para el control de las columnas se ha utilizado un Demux de 4 entradas con 16 salidas. Sin embargo aún
faltan 2 salidas más para controlar las 18 columnas de la matriz, estas 2 últimas columnas serán
controladas mediante 2 pines del puerto D. Los transistores utilizados (2N3906) tipo PNP permiten
controlar las columnas de una manera en que se enciendan con valores negados. A continuación la
explicación pertinente del porque de los números expuestos en las columnas en la Figura1.
Figura2
Los 4 primeros pines del puerto D son los encargados de generar el código binario correspondiente a las
entradas del demux, es decir, si por ejemplo se manda el código binario 0000 en los puertos PortD.0,
PortD.1, PortD.2 y PortD.3, respectivamente, se estará habilitando la primera salida del demux, sin
embargo debemos tener en cuenta que hay dos columnas no controladas por el demux y que además, si
queremos apagar todas las columnas, es necesario deshabilitar el demux. Para lograr esto, es necesario
mandar un código binario más amplio que abarque estas consideraciones, por esta razón el PortD.4 es el
encargado de encender o apagar la columna 17, el PortD.5 se encarga de la columna 18 y el PortD.6 se
encarga de gestionar el enable del demux. Ya que el puerto D del micro controlador tiene 8 pines de los
cuales solamente están siendo usados 7, el último pin no es utilizado, esto no afecta a la distribución
mencionada.
Las salidas del demux son negadas, así también como el enable, por esta razón, para habilitar el demux se
debe conectar el enable a tierra o mandar un cero lógico, por esta razón también se han utilizado
transistores PNP para ser activados con pulsos negados. Así, para habilitar las dos últimas columnas se
deben enviar ceros lógicos, y para deshabilitarlas, unos lógicos.
Por ejemplo, si queremos encender solamente la columna 1 de la matriz de leds, el código binario estaría
dado de la siguiente manera:
El primer 0 (cero, contando de izquierda a derecha) corresponde al PortD.7, que no está siendo utilizado,
el segundo 0 corresponde al enable del demux (si es cero se habilita), el 1 que sigue corresponde a la
columna 18 (si es uno se deshabilita), el siguiente 1 corresponde a la columna 17 (si es uno se
deshabilita), y los cuatro últimos dígitos corresponden al código binario que enciende la primera salida
del demux. Con este código estaremos habilitando la primera columna de la matriz de leds.
Si por el contrario queremos habilitar la columna 18, el código binario quedaría así:
El primer 0 (cero, contando de izquierda a derecha) corresponde al PortD.7, que no está siendo utilizado,
el 1 que sigue corresponde al enable del demux (si es uno se deshabilita), el 0 que sigue corresponde a la
columna 18 (si es cero se habilita ya que se habilita con valores negados por el transistor PNP), el
siguiente 1 corresponde a la columna 17 (si es uno se deshabilita), y los cuatro últimos dígitos
corresponden al código binario que enciende la primera salida del demux, sin embargo como el demux
está deshabilitado, este código no tiene importancia. Con este código estaremos habilitando la última
columna de la matriz de leds.
Ya que se facilita la programación, se procedió a transformar el código binario del puerto D en números
decimales.
CODIFICACIÓN DE LETRAS
Las letras siguen un patrón estándar de 7 filas de alto por 5 columnas de ancho (7x5) y sólo se escribirán
en el puerto A del micro controlador, ya que este puerto controla 8 filas, el valor estándar de la altura de
cada letra no significa un problema. Para formar una letra se ha recurrido a crear subrutinas en la
programación que permitan dibujar una letra en 5 pasos.
Para un mejor entendimiento, a continuación una explicación gráfica:
Figura3
Cada letra está formada por 5 subrutinas llamadas Letra1, Letra2, Letra3, Letra4, Letra5. Letra es el
nombre individual de cada caracter, por ejemplo, la letra A está dividida en A1, A2, A3, A4, A5, lo
mismo sucede con B y con las demás letras utilizadas. Para formar concretamente la letra A, se sigue con
el siguiente método:
• Escribir en el Puerto A el código correspondiente a A1, en este caso es el
(PortA=252).
• Encender la columna deseada para que sea el inicio de la letra, para el ejemplo
gráfico, la columna 18 (PortD=80).
• Esperar un tiempo. Para la práctica se ha utilizado un tiempo de 150 µs.
• Escribir en el Puerto A el código correspondiente a A2, en este caso es el
(PortA=252).
• Encender la siguiente columna, para el ejemplo la columna 17 (PortD=96).
• Esperar un tiempo de 150 µs.
• Escribir en el Puerto A el código correspondiente a A3, en este caso es el
(PortA=252).
• Encender la siguiente columna, para el ejemplo la columna 16 (PortD=63).
• Esperar un tiempo de 150 µs.
• Escribir en el Puerto A el código correspondiente a A4, en este caso es el
(PortA=252).
• Encender la siguiente columna, para el ejemplo la columna 16 (PortD=63).
• Esperar un tiempo de 150 µs.
• Escribir en el Puerto A el código correspondiente a A5, en este caso es el
(PortA=252).
• Encender la siguiente columna, para el ejemplo la columna 14 (PortD=61).
• Esperar un tiempo de 150 µs.
Con los pasos descritos, se enciende la letra A. Este método es comúnmente llamada barrido, ya que el
tiempo de encendido de cada columna es relativamente pequeño y se realiza en secuencia, da la impresión
de que la letra se ha prendido una sola vez.
Para el caso de la letra B, se siguen los mismos pasos, se cambian los valores correspondientes a B1, B2,
B3, B4, B5 y las columnas en donde se desee aparezca la letra.
DESPLAZAMIENTO DE NOMBRES
El desplazamiento de las letras se ha realizado de forma manual, es decir, no se ha implementado un
proceso que permita el desplazamiento automático de las mismas.
El desplazamiento de los nombres funciona de la siguiente manera:
• Escribir la Letra1 en la columna 1 de la matriz.
• Esperar un tiempo.
• Escribir completamente la primera letra cuatro columnas más a la izquierda.
• Esperar un tiempo.
• Apagar todos los leds.
• Crear un espacio entre letras apagando nuevamente los leds.
• Escribir completamente la primera letra cuatro columnas más a la izquierda.
• Escribir la Letra2 en la columna 1 de la matriz.
• Esperar un tiempo.
• Escribir completamente la primera letra cuatro columnas más a la izquierda.
• Escribir completamente la segunda letra cuatro columnas más a la izquierda.
• Esperar un tiempo.
• Apagar todos los leds.
• Crear un espacio entre letras apagando nuevamente los leds.
Este proceso consta de escribir una parte de la primera letra, luego de un tiempo se escribe
completamente la primera letra, luego de un tiempo se escribe la primera letra y parte de la segunda letra,
luego de un tiempo se escribe la primera letra, la segunda letra y parte de la tercera letra hasta que llene la
matriz, si se llena la matriz de realiza los mismos pasos, tomando en cuenta que irán desapareciendo las
primeras letras conforme las últimas letras vayan ingresando a la matriz.
NOMBRES ESTÁTICOS
Para mostrar los nombres estáticos simplemente basta con codificar los leds que estarán encendidos y los
que estarán apagados. Teniendo este mapa de bits, simplemente basta con asignar a cada puerto el código
correspondiente que permita encender los leds, y encender cada columna de manera secuencial desde la
primera hasta la última por un determinado número de veces que den la impresión de estar encendidos un
tiempo determinado.
Figura41
1
Ver figura 1
ANIMACIÓN
Para la animación tendremos en cuenta la figura 1 lña que nos permitirá saber con
precisión como se va desplazando cada fila y cada Columna dando el efecto de barrido.
Por lo que para su efecto Dibujamos la Primera imagen y luego la segunda y ponemos Intervalos de
tiempo para su bucle
Entradas
• Nombres estáticos
Salidas
• Envio Código Binario para formar cada letra de cada nombre en un matriz de 7
filas de alto por 5 columnas de ancho.
• Escribir código en el puerto deseado para cada letra PortA PortD PortC, PortB
• Iniciar bucle
• Cerrar blucle
• Iniciar Bucle
• Cerrar bucle
• Retornar
Procesos:
DESPLAZAMIENTO DE NOMBRES
• Escribir la Letra1 en la columna 1 de la matriz.
• Esperar un tiempo.
• Escribir completamente la primera letra cuatro columnas más a la izquierda.
• Esperar un tiempo.
• Apagar todos los leds.
• Crear un espacio entre letras apagando nuevamente los leds.
• Escribir completamente la primera letra cuatro columnas más a la izquierda.
• Escribir la Letra2 en la columna 1 de la matriz.
• Esperar un tiempo.
• Escribir completamente la primera letra cuatro columnas más a la izquierda.
• Escribir completamente la segunda letra cuatro columnas más a la izquierda.
• Esperar un tiempo.
• Apagar todos los leds.
• Crear un espacio entre letras apagando nuevamente los leds.
Diagrama de flujo.
INICIO
Gosub Gabriela
Gosub Edison
Gosub Juan
Gosub Darío
Gosub Borrar
Gosub
Gabrielaid
Gosub Edisonid
Gosub Juanid
Gosub Borrar
For Y = 1 To 8
Gosub Nombres
Next Y Gosub Nombres
Gosub Borrar
For Y = 1 To 8
Gosub Camello
Gosub Borrar
Next Y
Gosub Borrar
Goto Ciclo
For Y = 1 To 8
Gosub Camello
Gosub Borrar
Borrar
For X = 48 To 63
Porta = 3
Col = X
Gosub Veer3
Gosub Veer3
Next X
Col = 96
Gosub Veer3
Gosub Veer3
Col = 80
Gosub Veer3
Gosub Veer3
For X = 48 To 63
Col = X
Porta = 170
Portb = 170
Todos los procesos
Portc = 128
van aquí para realizar
Gosub Veer3
cada operación.
Next X
Col = 96
Gosub Veer3
Col = 80
Gosub Veer3
Porta = 0
Portb = 0
Portc = 0
Portd = 112
Waitms 500
Return
Veer3:
Gosub Column
Waitms 5
Return
Camello:
For X = 1 To 200
Col = 48
Porta = 135
Portb = 0
Portc = 128
Gosub Veer2
Col = 49
Porta = 127
Portb = 128 Todos los procesos
Portc = 128 van aquí para realizar
Gosub Veer2 cada operación.
Col = 50
Porta = 192
Portb = 128
Portc = 0
Gosub Veer2
Col = 51
Porta = 188
Portb = 64
Portc = 128
Gosub Veer2
Col = 52
Porta = 72
Portb = 32
Portc = 128
Gosub Veer2
Col = 53
Porta = 136
Portb = 16
Portc = 128
Gosub Veer2
Col = 54
Porta = 8
Portb = 8
Portc = 0
Gosub Veer2
Col = 55
Porta = 8
Portb = 8
Portc = 0
Gosub Veer2
Col = 56
Porta = 16
Portb = 16
Portc = 0
Gosub Veer2
Col = 57
Porta = 136
Portb = 32
Portc = 128 Todos los procesos
Gosub Veer2 van aquí para realizar
Col = 58 cada operación.
Porta = 124
Portb = 192
Portc = 128
Gosub Veer2
Col = 59
Porta = 192
Portb = 128
Portc = 0
Gosub Veer2
Col = 60
Porta = 190
Portb = 248
Portc = 128
Gosub Veer2
Col = 61
Porta = 66
Portb = 4
Portc = 128
Gosub Veer2
Col = 62
Porta = 129
Portb = 4
Portc = 128
Gosub Veer2
Col = 63
Porta = 0
Portb = 152
Portc = 0
Gosub Veer2
Col = 96
Porta = 0
Portb = 160
Portc = 0
Gosub Veer2
Col = 80
Porta = 0
Portb = 64
Portc = 0
Gosub Veer2
Next X
For X = 1 To 200
Col = 48
Porta = 199
Portb = 0
Portc = 0
Gosub Veer2
Col = 49
Porta = 191
Portb = 128
Portc = 0
Gosub Veer2
Col = 50
Porta = 128
Portb = 64
Portc = 0
Gosub Veer2
Col = 51
Porta = 124
Todos los procesos
Portb = 32
van aquí para realizar
Portc = 0
cada operación.
Gosub Veer2
Col = 52
Porta = 152
Portb = 16
Portc = 128
Gosub Veer2
Col = 53
Porta = 40
Portb = 8
Portc = 128
Gosub Veer2
Col = 54
Porta = 200
Portb = 8
Portc = 128
Gosub Veer2
Col = 55
Porta = 8
Portb = 16
Portc = 0
Gosub Veer2
Col = 56
Porta = 8
Portb = 32
Portc = 0
Gosub Veer2
Col = 57
Porta = 200
Portb = 64
Portc = 128
Gosub Veer2
Col = 58
Porta = 60
Portb = 128
Portc = 128
Gosub Veer2
Col = 59
Porta = 128
Portb = 128
Portc = 128
Gosub Veer2
Col = 60
Porta = 126
Portb = 248
Portc = 0
Gosub Veer2
Col = 61
Porta = 146
Portb = 4
Portc = 0 Todos los procesos
Gosub Veer2 van aquí para realizar
Col = 62 cada operación.
Porta = 161
Portb = 4
Portc = 0
Gosub Veer2
Col = 63
Porta = 192
Portb = 152
Portc = 0
Gosub Veer2
Col = 96
Porta = 0
Portb = 160
Portc = 0
Gosub Veer2
Col = 80
Porta = 0
Portb = 64
Portc = 0
Gosub Veer2
Next X
Return
Y así se ejecuta cada una de las Subrutinas hechas en Bascom para poder
implementarlas al ser repetitivas lo que dejamos aquí es la pauta para
seguir con cada una de las letras pongo un link de descarga para el Archivo
Original.
Algoritmo Lógico.
INICIO
Retardo de 150 µs
Barrido-Borrado
Retardo de 150 µs
Barrido-Borrado
Retardo de 150 µs
Barrido-Borrado
Camello
Retardo de 150 µs
Camello
Imagen1
Retardo de 150 µs
Barrido-Borrado
3.- Análisis de Costos
Distribución de leds
Funcionamiento Demux
Matriz de Leds
Conclusiones.-
• Para realizar nuestra matriz fue necesario utilizar subrutinas pára cada proceso
como el barrido, desplazamiento y efectos de movimiento.
• Tener una lógica de programación a fin con el hardware para poder controlar
sus salidas y realizar una programación sin redundancia.
Recomendaciones.-
Anexos
http://agneliusmicrosproyect.es.tl/
Aquí se detalla todo acerca de nuestro proyecto como:
Planteamiento del problema
Avances Semanales
Video
Informe Scribd
Galería
Hojas Data Sheet.
Fuente
Matriz de Leds
ATMEGA
DEMUX
Vista en 3D Proteus.
Diseño de placa
Esquemáticos.
Placa.
Placa Quemada.
Aquí ponemos a Disposición de todos los navegantes del Internet una Información
detallada y q puede ser utilizada como Guía. Para sus posibles problemas. Y esta
estructurado de la siguiente manera.
http://agneliusmicrosproyect.es.tl/
Este blog nos permitira dar una guia y soperte a aquellos que inician y les gusta la
programacion y de la lElectronica dando asi un nuevo salto que es el Dar a conocer
nuestros Proyectos Como Universidad Politecnica Salesiana y en especial la Carrera
de Ingenieria Electronica.
Avances Semanales
Septiembre
Septiembre-Octubre
Octubre
Octubre
Octubre
Semana del 19 al 24 de Octubre
Programación Utilizando el Microcontrolador AVR ATMEGA64 y consulta de sus comando y
técnicas de programación aplicación de conocimiento y depuración del Programa
Octubre
Noviembre