Sie sind auf Seite 1von 4

Apuntes de Microprocesadores.

Clase 12

ENTRADAS DE FLANCO. ELIMINACIÓN DEL REBOTE

Los monostables proporcionan una solución de hardware sencilla y económica para problemas como el de la eliminación del
rebote en los pulsadores (figura 1) y la ‘captación’ de señales asíncronas.

Cx Q
Q
Vcc Rx/Cx

o o > Q Trigger

Vcc
Fig. 1 Eliminación de Rebote con Monostables

Como es lógico suponer un microcontrolador permite implementar una solución por software para obviar el fenómeno
anterior. De este modo, las entradas asíncronas implementadas mediante pulsadores pueden ser aceptadas directamente, sin pasar
por un circuito o hardware previo.

10ms<t<20ms
10ms<t<20ms

Fig. 2 Duración típica del rebote

El fenómeno del rebote es bien conocido. Se manifiesta como una oscilación con una duración típica de 10 a 20 ms
(figura 2), tiempo en el cual pueden interpretarse múltiples transiciones en lugar de una sola, como se intenta generar. Esta
situación de incertidumbre puede equipararse con la presencia de oscilaciones parásitas inducidas comúnmente identificadas como
Ruido, las cuales no deben ser causa de toma decisiones.

La alternativa consiste en generar un retardo superior al tiempo esperado para un rebote, cada vez que se detecte
cualquier variación en la señal de entrada; de manera que pueda discriminarse un ruido de una pulsación real y tomarse cualquier
decisión una vez que se ha alcanzado un valor estable. El algoritmo descrito se muestra en el diagrama de la figura 3.

Leer switch Leer switch


(Fue ruido)

Hubo No Cambio No
cambio? persiste?

Si Si
Esperar t ms Resto del prog.

Fig. 3 Algoritmo para rutina anti rebote

Wilmer Sanz F. 1
Apuntes de Microprocesadores. Clase 12
El diagrama de flujos de la figura 3 aplica para la eliminación del rebote, al instante de presionar un pulsador y también
cuando ocurre su liberación. A continuación se muestra el pseudo código correspondiente a la eliminación del rebote que se
genera al presionar y liberar un pulsador normalmente abierto.

Leer BTFSC PORTB,Sw ;Se espera a que se cierre el switch


GOTO Leer
CALL Retar20 ;Tiempo para obviar el rebote
BTFSC PORTB,Sw ;Si el 0 no se repite fue ruido
GOTO Leer
Suelta BTFSS PORTB,Sw ;Se espera a que el switch se abra
GOTO Suelta
CALL Retar20
BTFSS PORTB,Sw ;Si el 1 no se repite fue ruido
GOTO Suelta

Timers 1 y 2

Además del Timer0 el PIC16F887 tiene un timer de 16 bits (TMR1H:TMR1L) y otro con cuenta terminal ajustable, de 8 bits
(TMR2). Ambos se incrementan sobre la base de las frecuencias de las instrucciones, aunque particularmente el Timer 1 puede
operar con un oscilador independiente de 32 KHz o una señal astable externa (figura 4).

Fig. 4 Detalle del diagrama de bloques del


PIC16F887, correspondiente a los Timers internos

La operación de ambos es similar a la del Timer 0, a través de los registros asociados que se muestran en la tabla 1 y las
ecuaciones correspondientes.

Wilmer Sanz F. 2
Apuntes de Microprocesadores. Clase 12

TIMER #BITS FÓRMULA REG. DE REG. DE PRESCALER POSTSCALER


OPERACIÓN CONFIG.
0 8 TMR0 (01H,101H) OPTION_REG 1,2,4,8,16,
Flag T0IF en (81H,181H) 32,64,128,256
4*(256 − X ) * FPre
t= INTCON(0BH)
Fosc

1 16 TMR1L (0EH), T1CON (10H) 1,2,4,8


TMR1H (0FH) Flag TMR1IE en
4*(65536 − X ) * FPre
t= Flag TMR1IF en PIE1 (8CH)
Fosc PIR1 (0CH)

2 8 TMR2 (11H) T2CON (12H) 1,4,16 1,2,3,4,


Flag TMR2IE en 5,6,7,8,
4*( PR 2 − X ) * FPre * FPost
t= Flag TMR2IF en PIE1 (8DH) 9,10,11,12,
Fosc PIR1 (0CH) 13,14,15,16
PR2 (92H)

Wilmer Sanz F. 3
Apuntes de Microprocesadores. Clase 12

Actividades sugeridas:
- Codifique el código de una rutina de retardo que dure 20 ms, usando para ello el TMR0.
- Codifique el código de una rutina de retardo que dure 500 ms, sin usar para ello el TMR1.

Bibliografía

- Microchip Technology Inc. (2007). Data Sheet del PIC16F8XX. Documento 41291D,
http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf [En línea] Último acceso: 29-09-2017

Wilmer Sanz F. 4

Das könnte Ihnen auch gefallen