Beruflich Dokumente
Kultur Dokumente
Clase 12
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
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.
Hubo No Cambio No
cambio? persiste?
Si Si
Esperar t ms Resto del prog.
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.
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).
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
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