Está en la página 1de 12

INFORME DE LABORATORIO 2

DISEO DIGITAL CON MICROCONTROLADORES


PROFESOR
Ing. JULIAN R. CAMARGO

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


INGENIERA ELECTRNICA
BOGOT
2015

1. PLANTEAMIENTO DEL PROBLEMA


El objetivo principal del laboratorio 2, en el que se plantea la elaboracin de un
reloj digital, es aprender sobre el manejo de los puertos de E/S del
microcontrolador, dichos puertos estn mapeados como espacios (zonas) de
memoria, por lo cual se pueden realizar todas las operaciones aritmticas y es
posible conectar perifricos a dichos puertos. En el presente laboratorio se har
uso de dichos puertos para conectar una matriz de LEDs en la cual se mostraran
los nmeros que se deseen ver durante un intervalo de tiempo establecido.

2. ANALISIS Y MODELAMIENTO
Para la solucin del problema se plantearon una serie de pasos en los cuales se
puede ver el algoritmo que se utilizara para resolver el problema a desarrollar en la
presente prctica:
Se almacena en la memoria RAM los datos que representan cada digito del 0 al 9
mediante el uso de una tabla. Ahora definimos los puertos de entrada y salida del

microcontrolador para conectar los perifricos que son: una matriz de LEDs y dos
pulsadores.
Al incio del programa preguntara sobre el estado de los botones de configuracin
de la hora, si est presionado activara el anti-rebote, el cual fue hecho por
software, esto evita que el microcontrolador lea muchos valores debidos al
pulsador y as hacemos que solo lea la primer activacin del botn y se mantenga
esperando hasta que se suelte sin leer ms valores que podran darnos
comportamientos errneos.
Luego haremos unas subrutinas que nos permitirn visualizar en la matriz de
LEDs los dos dgitos de la hora, los dos puntos que reflejan el tic-tac del reloj y
los dgitos de los minutos, y repitiendo el ciclo tantas veces como sean necesarias
para que no se vean titilar, eso es debido al tiempo de persistencia del ojo.
Definimos el mximo de hora del reloj, al escoger un reloj con hora militar tenemos
una hora mxima de 23:59, luego de esto el reloj vuelve a 00:00, definimos el
proceso por el cual cuando cada digito tanto de las unidades de hora como de
minutos llegan al nmero 10, hace que la decena de la hora y minutos se
incremente en uno mientras que vuelve las unidades al nmero 0, para la decena
de la hora este se incrementara 1 vez cada que se llegue a 10, el valor de la
decena de la hora va de 0 a 2, luego del 2 se reinicia, y para la decena de los
minutos este va de 0 a 5 con el mismo principio, luego del 5 este se reinicia y
vuelve a 0. Tenemos entonces que en vez de visualizar el 60, despus de mostrar
el 59, mostrara 00, con la hora pasa lo mismo solo que al llegar a 23, en vez de
visualizar 24 muestra 00.
Para visualizar en la matriz de LEDs creamos un proceso el cual funciona asi:
En el inicio hemos definido que puertos sern salidas para los nodos
comunes de la matriz, como la matriz solo posee 7 nodos activamos los 7
primeros bits del puerto A como salida. El puerto A se encargara de dar la
posicin donde se encuentra la informacin para cada nmero segn la
tabla que hemos almacenado en la RAM. Los dos puntos centrales
manejaran el tiempo de 60 segundos de cada minuto (al presionar los
pulsadores este tiempo volver a iniciar y contar 60 segundos de nuevo),
pasados 60 segundos el contador de unidad de minuto aumentara en 1,
cargando este nmero en el puerto A, con este dato en el puerto, el
programa busca en la tabla de la memoria RAM la tupla que corresponde al
nmero que se debe visualizar, cuando este ubica la posicin donde se
encuentran los datos para cada columna lo carga en los puertos
correspondientes que controlan las columnas de la matriz.
Los puertos B, C, y D controlan las columnas de la matriz, para cada
nmero de la hora y los minutos definimos 4 filas, as en total usamos 16
pines entre los tres puertos para visualizar los nmeros y uno adicional para
los dos puntos (se usan 4 filas para cada nmero).

Para activar los puertos B, C y D se empieza a prender cada fila desde la


primera hasta la ltima activando y desactivando cada vez el puerto
correspondiente, empezamos entonces activando los pines PTB7 al PTB4
para el primer nmero de la hora, PTB3 al PTB0 para el segundo nmero
de la hora, PTC2 para los dos puntos, PTD7 al PTD4 para el primer nmero
de los minutos y PTD3 al PTD0 para el segundo nmero de los minutos
(cada vez que se enciende un pin se apaga antes de encender el siguiente
para evitar errores de visualizacin).
3. DISEO
Primero se debe comprender el funcionamiento de una matriz de LEDs como el
mostrado en la figura 1

Figura 1. Matriz de LEDs

De acuerdo al esquema mostrado en la figura 1, no es posible una


visualizacin esttica en la matriz, ya que al habilitar varias columnas y filas, los
LEDs prendern en las mismas columnas o filas, lo cual no permitira formar
figuras o letras, para ello se hace indispensable implementar con el
microcontrolador una visualizacin dinmica la cual permita habilitar las
columnas secuencialmente, mientras los datos de la fila son cambiados para
formar la figura, este proceso se realiza tan rpidamente que el parpadeo
generado por esta visualizacin dinmica no pude ser percibido por el ojo
humano, formando as las figuras o palabras deseadas.
Otros de los aspectos importantes a analizar es el control de tiempos para la
visualizacin, y cmo lograr el movimiento de palabras o figuras en la matriz de
LEDs. Para el control de tiempos es necesario utilizar la temporizacin por
software y a travs de ciclos configurando los tiempos que requiere el problema,
logrando asi el movimiento de las figuras o palabras. Las figuras eran
almacenadas en tablas, las cuales seran recorridas por la carga indexada con
offset dada por el registro X.
1.1 Para la implementacin de este laboratorio fue necesaria la utilizacin de
17 pines del microcontrolador (PTA 0-6, PTB 0-7, PTC 2 , PTD 0-7) para
salida y conexin a la etapa de amplificacin y posteriormente a la matriz
de leds , y 2 pines (PTC 3-4)

PT PT
B7 B6
PT
A6
PT
A5
PT
A4
PT
A3
PT
A2
PT
A1
PT
A0

PT PT
B5 B4

PT
B3

PT PT
B2 B1

PT
B0

PT
C2

PT
D 00
7

1.2 Fue necesaria la implementacin de una etapa de potencia debido a que


como es bien sabido, la corriente suministrada por el Microcontrolador no
es la requerida por un led para su correcto funcionamiento y en general
una buena iluminacin; de tal manera, el circuito que se implement fue el
de la figura 3:

Figura 3. Diagrama esquemtico circuito implementado para la etapa de potencia.

En la hoja de adjuntos se puede ver el cdigo con los comentarios.


4. CONCLUSIONES

A la hora de pasar del diagrama al algoritmo assembler tener muy en


cuenta el uso de los registros, saber cundo y cual registro se usa en una
operacin y que banderas modifica, esto para evitar problemas de
compilacin y perdidas de datos.

El uso de subrutinas facilita la realizacin de algoritmos que de otra manera


(una forma secuencial) sera extremadamente complejo debido a que
muchas instrucciones hacen uso de los registros acumulador, H y X.

Debido a que el microcontrolador no es capaz de entregar altas corrientes


se hace necesario utilizar algn mtodo para amplificacin de corriente sea
cual sea la aplicacin que requiera de una corriente mayor que la que el
micro puede entregar.

Fue necesario entender cmo funcionan los puertos del micro como E/S de
este para manejar los procesos que lean los pulsadores para el cambio de
hora, as como saber que la corriente de los puertos no era la suficiente
para esta aplicacin y en general para muchas otras aplicaciones.

5. ANEXOS
CODIGO:

DIAGRAMA DEL ALGORITMO DESAROLLADO:

También podría gustarte