Temporizadores y contadores en el microcontrolador 8051 y sus aplicaciones
Muchas aplicaciones de microcontroladores requieren el recuento de eventos externos, como la frecuencia de los trenes de pulsos, y la generación de retrasos internos precisos entre las acciones del ordenador. Ambas tareas pueden implementarse con técnicas de software, pero los bucles de software para el recuento y la temporización no darán el resultado exacto y las funciones más importantes no se ejecutarán. Para evitar estos problemas, los temporizadores y contadores de los microcontroladores son las mejores opciones para las aplicaciones sencillas y de bajo coste. Estos temporizadores y contadores se utilizan como interrupciones en el microcontrolador 8051.
Hay dos temporizadores y contadores de 16 bits en el microcontrolador 8051: el temporizador 0 y el temporizador 1. Ambos temporizadores constan de un registro de 16 bits en el que el byte inferior se almacena en TL y el superior en TH. Los temporizadores pueden utilizarse como contadores y para operaciones de temporización, dependiendo de la fuente de los pulsos de reloj a los contadores.
Los contadores y temporizadores del microcontrolador 8051 contienen dos registros de función especiales: TMOD (Registro de Modo de Temporizador) y TCON (Registro de Control de Temporizador), que se utilizan para activar y configurar los temporizadores y contadores.
Control del Modo Temporizador (TMOD): TMOD es un registro de 8 bits que sirve para seleccionar el temporizador o contador y el modo de temporización. Los 4 bits inferiores se utilizan para controlar el funcionamiento del temporizador 0 o del contador 0, mientras que los 4 bits restantes se utilizan para controlar el funcionamiento del temporizador 1 o del contador 1. Este registro está en el registro SFR, la dirección del registro SFR es 89.
Puerta: Si el bit de compuerta se pone a "0", podemos iniciar y detener el temporizador "software" de la misma manera. Si la puerta se pone a "1", entonces podemos ejecutar el temporizador de hardware.
C/T: Si el bit C/T es "1", entonces estás actuando en modo contador, y lo mismo si C+ está activado
=/T es "0", el modo es de temporizador.
Bit de selección de modo: M1 y M0 son bits de selección de modo, utilizados para seleccionar las operaciones del temporizador. Hay cuatro modos de funcionamiento del temporizador.
Modo 0: Este es un modo de 13 bits, lo que significa que la operación del temporizador se completa con 8192 pulsos.
Modo 1: Este es un modo de 16 bits, lo que significa que la operación del temporizador se completa con un máximo de "65535" pulsos de reloj.
Modo 2: Este modo es un modo de carga automática de 8 bits, lo que significa que la operación del temporizador se completa con sólo '256' pulsos de reloj.
Modo 3: Este modo es un modo de temporizador dividido, es decir, cargar los valores en T0 e iniciar automáticamente T1.
Selección del modo Valores de los temporizadores y contadores en el 8051
Registro de control del temporizador (TCON): TCON es otro registro utilizado para controlar las operaciones del contador y del temporizador en los microcontroladores. Es un registro de 8 bits en el que los cuatro bits superiores son responsables de los temporizadores y contadores y los bits inferiores son responsables de las interrupciones.
TF1: TF1 es el bit de bandera del temporizador1. Al calcular el retardo en el temporizador1, TH1 y TL1 alcanzan automáticamente el valor máximo "FFFF".
EX: mientras (TF1==1)
Si TF1=1, borra el bit de bandera y detiene el temporizador.
TR1: TR1 indica el bit de inicio o de parada del temporizador1. El inicio del temporizador puede tener lugar mediante una instrucción de software o un método de hardware.
EX: puerta=0 (inicio del temporizador 1 por instrucción de software)
TR1=1; (inicio del temporizador)
TF0: TF0 es el bit de bandera del temporizador 0. Al calcular el retardo en el temporizador1, TH0 y TL0 alcanzan automáticamente el valor máximo de "FFFF".
EX: Mientras (TF0==1)
Si TF0=1, borra el bit de bandera y detiene el temporizador.
TR0: TR0 indica el bit de inicio o de parada del 'temporizador0'; el inicio del temporizador puede ser por instrucción de software o por método de hardware.
EX: puerta=0 (inicio del temporizador 1 por instrucción de software)
TR0=1; (inicio del temporizador)
Cálculos de retardo para el microcontrolador 8051
El microcontrolador 8051 funciona a una frecuencia de 11,0592 MHz.
Frecuencia 11,0592MHz=12 pules
1 pulso de reloj =11,0592MHz/12
F =0,921 MHz
Tiempo de retardo=1/F
T=1/0,92MHz
T=1,080506 us (para "1" ciclo)
1000us=1MS
1000ms=1seg
Procedimiento de cálculo del calendario de retrasos
1. Primero tenemos que cargar el valor del registro TMOD para 'Timer0' y 'Timer1' en los diferentes modos. Por ejemplo, si queremos que el temporizador1 funcione en modo1, debe configurarse como 'TMOD=0x10'.
2. Siempre que ejecutamos el temporizador en el modo 1, el temporizador toma el máximo de 65535 pulsos. Los impulsos de retardo calculados deben restarse de los impulsos máximos y luego convertirse en un valor hexadecimal. Este valor debe cargarse en los bits superior e inferior del temporizador1. Este temporizador se programa mediante el lenguaje C incorporado en un microcontrolador.
Ejemplo: retraso de 500us
500us/1,080806us
461 pulsaciones
P=65535-461
P=65074
65074 convertido de hexa decimal =FE32
TH1=0xFE;
TL1=0x32;
3. Inicia el temporizador1 'TR1=1;'
4. Controla el bit de la bandera 'while(TF1==1)'
5. Borra el bit de la bandera "TF1=0"
6. Reinicia el temporizador "TR1=0"
Ejemplos de programas:
Contadores en el 8051
Podemos utilizar un contador manteniendo el bit C/T alto, es decir, un "1" lógico en el registro TMOD. Para una mejor comprensión, hemos proporcionado un programa que utiliza el temporizador 1 como contador. En este caso, los LEDs están conectados al puerto 2 del 8051 y el interruptor al pin P3.5 del temporizador1; por tanto, si se pulsa el interruptor, se contará el valor. De lo contrario, contará un sensor conectado externamente al pin del contador como entrada.
Aplicaciones de temporizadores y contadores en el 8051
Contador digital con 8051
El contador digital con el 8051 se obtiene programando el microcontrolador como se ha comentado anteriormente y conectándole un sistema de sensores. Este contador de objetos utiliza un sensor de infrarrojos que detecta un obstáculo cercano y también activa el pin 06 del microcontrolador. Cuando un objeto pasa por los sensores, el microcontrolador recibe una señal de interrupción de los sensores de infrarrojos e incrementa el recuento, que se muestra en la pantalla de 7 segmentos.
Circuito de retardo con el microcontrolador 8051
La siguiente figura muestra cómo se puede implementar el funcionamiento del temporizador para encender los LEDs de forma eficaz. La operación de retardo de tiempo para el conjunto de LEDs se programa en un microcontrolador de la manera comentada anteriormente. En este caso, un conjunto de LEDs se conecta al puerto 2 con una fuente de alimentación común. Cuando este circuito se enciende según el programa de retardo del microcontrolador, los LEDs se encienden.
Este artículo trata sobre el temporizador y los contadores del microcontrolador 8051 con circuitos básicos de programación y aplicación. Esperamos que la información de este artículo te haya proporcionado suficientes datos para comprender mejor el concepto. Además, si tienes alguna duda técnica sobre la programación del 8051 y sus circuitos, puedes ponerte en contacto con nosotros comentando a continuación.
Créditos de las fotos:
Si quieres conocer otros artículos parecidos a Temporizadores y contadores en el microcontrolador 8051 y sus aplicaciones puedes visitar la categoría Generalidades.
Deja una respuesta
¡Más Contenido!