Está en la página 1de 10

MICROCONTROLADORES LAB INTERRUPCIONES

UNIVERSIDAD NACONAL DE COLOMBIA


HERNANDEZ GIOVANNI, 205890 CARDENAS OSCAR, 285723


INTRODUCCIN.
En el mbito de los microcontroladores es
importante destacar ciertos aspectos de uso,
como lo son las interrupciones por teclado
(keyboard interrupt), pues en ocasiones se
hace necesario parar una operacin bien sea
para corregir o para adicionar acciones en un
proceso, dichas interrupciones son de gran
utilidad, pues permiten no solo adicionar o
corregir, sino que tambin permiten continuar
con el proceso que ya se vena ejecutando
despus de realizada la interrupcin, as pues,
se ver a continuacin cuales son los tipos de
interrupciones y como pueden ser
sintetizadas.

MARCO TEORICO.
EL TECLADO MATRICIAL.
El teclado matricial proporciona una interfaz
sencilla de entrada de datos. Sus usos pueden
ser tan variados como aplicaciones que
precisen de la introduccin manual de datos
puedan ocurrrsele al diseador. Desde una
calculadora, pasando por una cerradura
codificada, un termostato programable, entre
otros. Para su conexin al microcontrolador
se deben colocar unas resistencias de pull-up
en las filas (o las columnas). De esta forma si
se pone a masa (cero lgico) una columna
(fila) se obtendr un cero en la fila (columna)
correspondiente cuando se pulse una tecla. Al
pulsar pueden producirse rebotes mecnicos e
interpretarlos como varias repeticiones de la
misma tecla. Para evitarlo basta con esperar
un tiempo superior a la duracin de los
mismos antes de seguir leyendo datos del
teclado.









VISUALIZADOR DE 7-SEGMENTOS.
El 7 segmentos es un dispositivo usado para
presentar informacin de forma visual. Esta
informacin es especficamente un dgito
decimal del 0 (cero) al 9 (nueve), por lo que
se deduce que el cdigo BCD est
involucrado. Este se utiliza para la
representacin de nmeros en muchos
dispositivos electrnicos debido en gran
medida a su simplicidad. Aunque
externamente su forma difiere
considerablemente de un diodo LED, diodos
emisores de luz, tpico, internamente estn
constituidos por una serie de diodos LED con
unas determinadas conexiones internas,
estratgicamente ubicados de tal forma que
forme un nmero 8 al unir los segmentos en
el grfico. Muchas veces aparece un octavo
segmento denominado punto decimal. Los
hay de dos tipos: nodo comn y ctodo
comn. En los de tipo de nodo comn,
todos los nodos de los leds o segmentos
estn unidos internamente a una pastilla
comn que debe ser conectada a potencial
positivo (nivel 1). El encendido de cada
segmento individual se realiza aplicando
potencial negativo (nivel 0) por la pastilla
correspondiente a travs de una resistencia
que limite el paso de la corriente. En los de
tipo de ctodo comn, todos los ctodos de
los leds o segmentos estn unidos
internamente a una patilla comn que debe
ser conectada a potencial negativo (nivel
0). El encendido de cada segmento
individual se realiza aplicando potencial
positivo (nivel 1) por la pastilla
correspondiente a travs de una resistencia
que limite el paso de la corriente.










DIAGRAMA DE FLUJO VISUALIZACIN DINMICA



La idea principal del programa en esta
seccin es generar una rotacin del registro
que contiene los bits de los nodos solo tres
veces, pues este es el nmero de nodos.
Cuando se cumplen las tres rotaciones vuelve
al estado inicial y repite el proceso de
rotacin.
Si el bit de nodo activado es el uno, el
programa tiene cargados los valores de
unidades, decenas y centenas desde el
programa del teclado, por lo cual, se encarga
de mostrar las centenas, si el bit de nodo es
dos mostrara las decenas etc. La funcin
retardo simplemente es para asegurar una
frecuencia de rotacin cercana a los 90 Hz.

INTERRUPCION IRQ


Despus de sucedida la solicitud de
interrupcin, se desactiva esta funcin como
nuevo mtodo para controlar el rebote, al
desactivar inmediatamente las interrupciones,
se supera en gran parte este inconveniente, al
final de la ejecucin del diagrama se genera
un retardo para asegurar que ha pasado el
tiempo mximo en el cual se presenta este
fenmeno, y as volver a activar el servicio de
interrupciones por IRQ. [1]
Si se oprime el botn y las unidades son
distintas de cero, este valor disminuir en una
unidad y la rutina de interrupcin terminara,
si las unidades son cero se verifican las
decenas, ejecutando el cdigo
correspondiente para mantener la continuidad
en el orden descendente de los nmeros, si las
decenas son cero, se verifican las centenas. Si
finalmente las tres potencias son 0, se
enciende el led y se habilitan las
interrupciones de KBI (pronto se ver porque
se realiza esto).
FUNCION RETARDO


Esta funcin retardo tiene como caracterstica
primordial, que se logra implementar el
mdulo timer del microcontrolador, la
frecuencia de bus del micro es bastante alta
por lo cual la primera forma y quizs ms
eficaz de comenzar con generacin de retardo
es colocndole un prescalador; no se trabaja
con la interrupcin por timer, sino con la
bandera indicadora de rebozo del contador en
el canal, tambin se selecciona el modo de
comparacin de salida y e escoge como reloj
el bus clock.[2]
Se genera un ciclo que corresponde de forma
ms fcil de percibir al retardo, en el cual no
se sale de la funcin retardo, hasta tanto el
flag de rebozo no se ponga en uno, cuando
esto sucede para este caso en especfico es
necesario limpiar el contador, la bandera y
deshabilitar el modo timer, para evitar
conteos cuando no son necesarios. (El flag y
el contador no se borran por si solos.
De este retardo depende la frecuencia de
visualizacin y la efectividad de otros dos
retardos adicionales que ayudaran a eliminar
el antirebote en las interrupciones.

La construccin del retardo se hizo teniendo
en cuenta la configuracin de la frecuencia de
reloj, la cual se dej por defecto en el FLL de
rango bajo, es decir, la frecuencia del
microcontrolador es de 16 a 20 MHz, en el
mdulo del reloj la frecuencia de salida est
dividida por defecto en 2, luego despus de
este mdulo la frecuencia se vuelve a dividir
entre 2 para la sincronizacin del resto de
mdulos del microcontrolador.
En este caso la frecuencia del bus fclock es:



Para lograr el efecto de visualizacin
dinmica siendo imperceptible para el ser
humano, se inicializo el mdulo timer,
posteriormente se dividi la frecuencia


entre 128, de esta forma el periodo del
contador del timer es:



Se repetir 192 veces este periodo de
contador para obtener un tiempo de
visualizacin aceptable.



En el caso de los retardos para antirebotes se
trabaja sobre el tiempo

, un antirebote no
ocurre ms all de 70 a 90 ms, por lo tanto si
se desactiva las interrupciones respectivas
durante un tiempo mayor a este se eliminar
este efecto indeseado.
Un valor de contadores mayor a 10 o 15 ya
asegura el objetivo.




















































INTERRUPCION POR KBI


Este diagrama de flujo representa una funcin
para el tratamiento de los datos de entrada por
parte del teclado, las Filas de la matriz (del
teclado) son entradas a resistencias pull-down
del microcontrolador, en tanto que las filas
corresponden a las salidas; lo que ocurre al
presionar una tecla es que se conecta un
punto de la fila con otro de la columna, es
decir la columna seria la seal de entrada de
la fila.
Si la columna esta en cero, y se oprime el
botn el pull-up har que la entrada por parte
de la columna al micro permanezca en alto,
pero si se oprime el botn y la columna esta
un uno, la entrada ser 1 y el pull-down har
que se convierta en nivel alto identificando la
fila, pues en este pin ocurre el KBI, y la
columna pues justo una columna se
encontraba en alto durante la ocurrencia de la
interrupcin.
Basados en lo explicado anteriormente, es
fcil de comprender el esquema, la idea es
colocar en alto una fila a la vez, durante
tiempos extremadamente cortos, de tal
manera que en una pulsacin se recorran
todas las columnas, si ocurre esta pulsacin
se activa la interrupcin por KBI, se procede
a desactivar el mdulo de interrupciones
(evitar anti rebote) y se guardan tal como se
explic antes las variables asociadas a la fila
y columna afectadas; estas variables se
codifican en un nmero.
All aparece la variable de # de
interrupciones, esta se ha creado para que el
usuario mximo oprima tres veces teclas, si lo
hace tres veces la variable llevara la cuenta
desactivara las interrupciones, solo hasta que
se oprima una tecla que borre los nmeros
introducidos anteriormente, o hasta que el
contador baje a cero en el mdulo IRQ, en
donde se activan de nuevo las interrupciones
por KBI. La salida de esta seccin son los
valores de unidades, decenas y centenas en un
vector.
En el programa se han habilitado las teclas #
y * como reinicializadores del teclado, si
estas teclas se oprimen, el programa vuelve a
su estado inicial para ser usado nuevamente,
es decir, se carga el display en ceros y se
apaga el led.


CONCLUSIONES.
A lo largo del desarrollo de esta
prctica se aprendi a usar e
implementar los diferentes modos de
interrupciones por teclado (keyboard
interrupt) e IRQ.

El mdulo timer tiene dos registros
en los cuales se guarda el conteo, los
cuales pueden ser utilizados para la
realizacin de la funcin de capture
output, se debe tener cuidado pues
uno de los registros se reinicializa al
terminar el conteo (TPMxMOD), y el
otro no lo hace (TPMxCnV).

El mdulo de interrupcin por KBI es
prcticamente el mismo de IRQ, con
algunas diferencias importantes como
la posibilidad de seleccin de la
configuracin pull-up o pull-down
en el mdulo KBI

La facilidad del micro de brindar en
sus registros banderas adicionales a
los bits de interrupcin, permite
mayor facilidad en la programacin.

REFERENCIAS
[1] Freescale, MC9S08QE16 Reference Manual;
Rev 3, 9/2011.

[2 ] Freescale,CodeWarrior Development
Studio for Microcontrollers V10.x HC(S)08
Build Tools Reference Manual,10.6/ 2011.

También podría gustarte