Temporitzadors i comptadors en el microcontrolador 8051 i les seves aplicacions

Proveu El Nostre Instrument Per Eliminar Problemes





Molts dels aplicacions de microcontroladors requereixen el recompte d'esdeveniments externs com ara la freqüència dels trens d'impulsos i la generació de retards interns precisos entre les accions de l'ordinador. Ambdues tasques es poden implementar mitjançant tècniques de programari, però els bucles de programari per al recompte i el temps no donaran el resultat exacte, sinó que no es fan funcions més importants. Per evitar aquests problemes, els temporitzadors i comptadors dels microcontroladors són millors opcions per a aplicacions senzilles i de baix cost. Aquests temporitzadors i comptadors s’utilitzen com a s'interromp en el microcontrolador 8051 .

Hi ha dos temporitzadors i comptadors de 16 bits Microcontrolador 8051 : temporitzador 0 i temporitzador 1. Tots dos temporitzadors consisteixen en un registre de 16 bits en què el byte inferior s’emmagatzema en TL i el byte superior s’emmagatzema en TH. El temporitzador es pot utilitzar com a comptador, així com per a operacions de temporització que depenen de la font de polsos de rellotge als comptadors.




Temporitzadors i comptadors

Temporitzadors i comptadors

Els comptadors i temporitzadors del microcontrolador 8051 contenen dos registres de funcions especials: TMOD (Timer Mode Register) i TCON (Timer Control Register), que s’utilitzen per activar i configurar temporitzadors i comptadors .



Control de mode temporitzador (TMOD): TMOD és un registre de 8 bits que s’utilitza per seleccionar el temporitzador o comptador i el mode de temporitzadors. Els 4 bits inferiors s’utilitzen per controlar l’operació del temporitzador 0 o el comptador 0 i els 4 bits restants s’utilitzen per controlar l’operació del temporitzador 1 o el comptador 1. Aquest registre es troba al registre SFR, l’adreça del registre SFR és la 89a.

Control de mode temporitzador (TMOD)

Control de mode temporitzador (TMOD)

Porta: Si el bit de porta s'estableix a '0', podem iniciar i aturar el temporitzador de 'programari' de la mateixa manera. Si la porta s'estableix a '1', podem fer un temporitzador de maquinari.

C / T: Si el bit C / T és ‘1’, actua com a mode de comptador i, de manera similar, quan es defineix C +
= / T bit és '0', actua com un mode de temporitzador.


Bits de selecció de mode: Els M1 i M0 són bits de selecció de mode, que s’utilitzen per seleccionar les operacions del temporitzador. Hi ha quatre modes per fer funcionar els temporitzadors.

Mode 0: Aquest és un mode de 13 bits que significa que l'operació del temporitzador es completa amb polsos '8192'.

Mode 1: Aquest és un mode de 16 bits, el que significa que l'operació del temporitzador es completa amb els impulsos de rellotge màxims que '65535'.

Mode 2: Aquest mode és un mode de recàrrega automàtica de 8 bits, el que significa que l'operació del temporitzador només es completa amb polsos de rellotge '256'.

Mode 3: Aquest mode és un mode de temporitzador dividit, que significa els valors de càrrega a T0 i inicia automàticament el T1.

Bits de selecció de modes

Bits de selecció de modes

Selecció de modes Valors de temporitzadors i comptadors a 8051

Valors de selecció de mode de temporitzadors i comptadors

Valors de selecció de mode de temporitzadors i comptadors

Registre de control del temporitzador (TCON): TCON és un altre registre que s’utilitza per controlar les operacions dels comptadors i temporitzadors dels microcontroladors. És un registre de 8 bits en què quatre bits superiors són responsables dels temporitzadors i comptadors i els bits inferiors són responsables de les interrupcions.

Registre de control del temporitzador (TCON)

Registre de control del temporitzador (TCON)

TF1: El TF1 significa bit de senyal 'timer1'. Sempre que es calcula el retard en el temporitzador1, el TH1 i el TL1 arriben al valor màxim que és 'FFFF' automàticament.

EX: while (TF1 == 1)

Sempre que el TF1 = 1, esborreu el bit de senyal i atureu el temporitzador.

TR1: El TR1 significa bit d’inici o aturada del temporitzador 1. Aquest temporitzador d’inici es pot fer mitjançant instruccions de programari o mitjançant mètodes de maquinari.

EX: porta = 0 (temporitzador d'inici 1 mitjançant instruccions de programari)
TR1 = 1 (temporitzador d'inici)

TF0: El TF0 significa bit de bandera ‘timer0’. Sempre que es calcula el retard en el temporitzador1, el TH0 i el TL0 arriben automàticament a un valor màxim que és ‘FFFF’.

EX: while (TF0 == 1)
Sempre que el TF0 = 1, esborreu el bit de senyal i atureu el temporitzador.

TR0: El TR0 significa ‘timer0’ bit d’inici o parada aquest temporitzador d’inici pot ser mitjançant instruccions de programari o mitjançant mètodes de maquinari.

EX: porta = 0 (temporitzador d'inici 1 mitjançant instruccions de programari)
TR0 = 1 (temporitzador d'inici)

Càlculs de retard de temps per al microcontrolador 8051

El microcontrolador 8051 funciona amb una freqüència de 11,0592 MHz.

Freqüència 11,0592MHz = 12 pules

1 pols de rellotge = 11,0592 MHz / 12

F = 0,921 MHz

Retard de temps = 1 / F.

T = 1 / 0,92 MHz

T = 1.080506 us (per al cicle '1')

1000us = 1MS

1000 ms = 1 segon

Procediment per calcular el programa de retard

1. Primer hem de carregar el valor del registre TMOD per a 'Timer0' i 'Timer1' en diferents modes. Per exemple, si volem operar el temporitzador1 en mode1, s'ha de configurar com a 'TMOD = 0x10'.

2. Sempre que fem funcionar el temporitzador en mode 1, el temporitzador pren els polsos màxims de 65535. A continuació, s'han de restar els polsos de retard calculats dels polsos màxims i convertir-los després en valor hexadecimal. Aquest valor s'ha de carregar en bits superiors i inferiors del temporitzador 1. Aquesta operació del temporitzador es programa mitjançant C incrustat en un microcontrolador .

Exemple: retard de 500us

500us / 1.080806us

461 pulsacions

P = 65535-461

P = 65074

65074 convet per hexa decimal = FE32

TH1 = 0xFE

TL1 = 0x32

3. Inicieu el temporitzador1 'TR1 = 1'

4. Superviseu el bit de senyal 'while (TF1 == 1)'

5. Esborreu el bit de senyal 'TF1 = 0'

6. Feu clic al temporitzador 'TR1 = 0'

Programes d'exemple:

Programa- 1

Programa- 1

Programa- 2

Programa- 2

Programa- 3

Programa- 3

Comptadors el 8051

Podem utilitzar un comptador mantenint el bit C / T alt, és a dir, la lògica ‘1’ al registre TMOD. Per a una millor comprensió, hem proporcionat un programa que utilitza el temporitzador 1 com a comptador. Aquí els LED estan connectats al port 2 8051, i el commutador al pin temporitzador 1 P3.5 i, per tant, si es prem l’interruptor, es comptabilitzarà el valor. En cas contrari, un sensor connectat externament a aquest pin de comptador com a entrada fa aquesta operació de recompte.

Programa de comptadors

Programa de comptadors

Aplicacions de temporitzadors i comptadors el 8051

Comptador digital amb 8051

El comptador digital amb 8051 s’aconsegueix programant el microcontrolador tal com s’ha comentat anteriorment i connectant-hi un sistema de sensors. Aquest comptador d’objectes utilitza un sensor IR que detecta l’obstacle que hi ha a prop i també permet la pin del microcontrolador 06. Quan un objecte passa pels sensors, el microcontrolador rep un senyal d'interrupció dels sensors IR i augmenta el recompte que es mostra a la pantalla de 7 segments.

Comptador digital amb 8051

Comptador digital amb 8051

Circuit de retard de temps mitjançant microcontrolador 8051

La figura següent mostra com es pot implementar l'operació del temporitzador per canviar els LED d'una manera eficaç. L'operació de retard de temps per al conjunt de LEDs es programa en un microcontrolador de la manera comentada anteriorment. Aquí, un conjunt de LEDs estan connectats al port 2 amb un sistema d'alimentació comú. Quan aquest circuit s’encén en funció del temps de retard programa al microcontrolador adequadament, aquests LED s’encenen.

Circuit de retard de temps

Circuit de retard de temps

Tot es tracta del temporitzador i comptadors de microcontroladors 8051 amb circuits bàsics de programació i aplicació. Esperem que la informació d’aquest article us hagi proporcionat prou dades per entendre millor el concepte. A més, per a qualsevol dubte tècnic sobre la programació 8051 i els seus circuits, podeu posar-vos en contacte amb nosaltres fent un comentari a continuació.

Crèdits fotogràfics: