Está en la página 1de 3

Fundación Universitaria los Libertadores

Prarcial practico - Manejo anti-rebote -

Circuitos Digitales III


Septiembre del 2016

1 Elementos
1. Microcontrolador ATmegaxx
2. Siete segmentos

3. Fuente de voltaje

4. Resistencias 1/4W
5. Pulsadores NO INTERRUPTORES

2 Montaje
Los periféricos que se van a usar en el micro controlador son el Puerto A y el Puerto C, y se debe conectar un
siete segmentos a la salida y dos pulsadores correspondientes al pin0 y al pin1 del Puerto A. como se muestra
en la siguiente imagen 2.1,

Figura 2.1: Montaje del circuito

3 Procedimiento
1. El Puerto A debe ser configurado de entrada y el Puerto C de salida, en este punto el Puerto A debe
ser configurado con las resistencias de Pull Up, a continuación se muestra la tabla de la hoja técnica que
describe como se configura un puerto para manejar estas resistencias:

1
Registro PORTx DDRx DIRECCIÓN ESTADO SALIDA PULL-UP
Modo 1 0 0 Entrada X Desactivada
Modo 2 1 0 Entrada X Activada
Modo 3 0 1 Salida Gnd / ‘0’ Lógico Desactivada
Modo 3 1 1 Salida Vcc / ‘1’ Lógico Desactivada

Tabla 3.1: Modo de configuración de un puerto

2. Una vez se hayan inicializado los puertos de entrada y salida, se debe crear una tabla que decodifique los
valores de un registro de binario a hexadecimal, para esto deben utilizar la directiva de assembler .db
, la cual, separa bytes en la memoria del programa del micro controlador, a continuación se muestra un
ejemplo con valores de muestra:
Nombre_de_la_etiqueta : . db valor_0 , valor_1 , , valor_n
t a b l a : . db 0 xa0 , 0 x50 , 0 xaa , 0 x55 , 0 x50 , 0 xaa , 0 x55

3. Luego de crear la tabla con los valores respectivos para la decodificación deben crear la rutina del re-
tardo para el antirebote tal como se desarrollo en clase, si necesitan mayor documentación sobre este
efecto parásito en los interruptores mecánicos, pueden remitirse a http://www.cc.gatech.edu/~hadi/
teaching/cs3220/02-2015fa/doc/debounce.pdf .

NO OLVIDAR QUE LAS instrucciones CALL y RET usan la memoria RAM o de datos del micro
controlador para almacenar las direcciones de las rutinas y las direcciones de regreso de estas, se hace
necesario inicializar la memoria RAM de la siguiente forma:
. d e f r e g _ g l o b a l = R16
l d i r e g _ g l o b a l , h i g h (RAMEND)
out SPH, r e g _ g l o b a l
l d i r e g _ g l o b a l , low (RAMEND)
out SPL , r e g _ g l o b a l

4. Para leer el valor de la tabla se hace necesario el uso del registro Z, este registro es de 16 bits, por lo cual
está compuesto de dos registros de propósito general r30 y r31. El registro Z debe cargar la dirección de
la ubicación de la tabla, para luego por medio de la instrucción LPM se carga el valor que contenga la
dirección como se muestra a continuación:
l d i r30 , low ( 2 ∗ t a b l a ) // almaceno en l a p a r t e b a j a d e l r e g i s t r o Z
l d i r31 , h i g h ( 2 ∗ t a b l a ) // almacenon en l a p a r t e a l t a d e l r e g i s t r o Z
adiw r 3 1 : 3 0 , 1
lpm

Si se usa la instrucción LPM sola, esta carga el valor constante en la dirección Z en el registro de propósito
general r0.
5. En el software deben detectar los cambios del interruptor, es decir, si ocurre un flanco de subida o de
bajada, esto lo deben hacer para que con los flancos de bajada realicen un incremento o un decremento,
deben tener en cuenta que no deben desbordar los valores en la tabla y que cuando un pulsador se presione
no debe contar mas de una vez, un ejemplo de esto se puede apreciar en la4.1.
6. El pulsador encargado del incremento es el pulsador conectado al P ORT A0 y el decremento es realizado
por el pulsador P ORT A1 4.1.

4 recomendaciones
1. Para cambiar el valor que se desea leer de la tabla, solo deben sumarle o restarle un valor al registro Z.
2. No olvidar que si restan o suman al registro Z un valor, este no debe desbordarse, ya que pueden visualizar
caracteres erróneos (Si tienen 16 valores en la tabla no sumen 17).
3. Revisen las instrucciones SBIS o SBIC, o en su defecto el uso de la instrucción IN para la lectura del
puerto.

2
4. Por ultimo no deben olvidad poner una resistencia para controlar la corriente en el siete segmentos.
5. Leer la guia y prestar más atención a clase, las preguntas que me han estado haciendo ya están resueltas
en las guías.

pta0 ↓ pta0 ↑ pta0 ↓

pta0 ↑ pta0 ↓ pta0 ↑

pta1 ↓ pta1 ↑ pta1 ↓

Figura 4.1: Diseño del movimiento

También podría gustarte