Timer e contatori nel microcontrollore 8051 e sue applicazioni

Prova Il Nostro Strumento Per Eliminare I Problemi





Molti dei file applicazioni microcontrollore richiedono il conteggio di eventi esterni come la frequenza dei treni di impulsi e la generazione di ritardi interni precisi tra le azioni del computer. Entrambe queste attività possono essere implementate mediante tecniche software, ma i cicli software per il conteggio e il tempo non daranno il risultato esatto, piuttosto non vengono eseguite funzioni più importanti. Per evitare questi problemi, i timer e i contatori nei microcontrollori sono opzioni migliori per applicazioni semplici ea basso costo. Questi timer e contatori vengono utilizzati come file interrompe nel microcontrollore 8051 .

Sono presenti due timer e contatori a 16 bit in formato Microcontrollore 8051 : timer 0 e timer 1. Entrambi i timer sono costituiti da un registro a 16 bit in cui il byte inferiore è memorizzato in TL e il byte superiore è memorizzato in TH. Il timer può essere utilizzato come contatore e per operazioni di temporizzazione che dipendono dalla sorgente degli impulsi di clock dei contatori.




Timer e contatori

Timer e contatori

I contatori e i timer nel microcontrollore 8051 contengono due registri di funzioni speciali: TMOD (registro modalità timer) e TCON (registro controllo timer), che vengono utilizzati per l'attivazione e la configurazione timer e contatori .



Controllo della modalità timer (TMOD): TMOD è un registro a 8 bit utilizzato per selezionare il timer o il contatore e la modalità dei timer. I 4 bit inferiori sono usati per il funzionamento di controllo del timer 0 o counter0, mentre i 4 bit rimanenti sono usati per il funzionamento di controllo del timer1 o counter1. Questo registro è presente nel registro SFR, l'indirizzo per il registro SFR è 89 °.

Controllo della modalità timer (TMOD)

Controllo della modalità timer (TMOD)

Cancello: Se il bit di gate è impostato a '0', possiamo avviare e arrestare il timer 'software' allo stesso modo. Se il gate è impostato su '1', possiamo eseguire il timer hardware.

C / T: Se il bit C / T è '1', agisce come una modalità contatore, e in modo simile quando è impostato C +
= / T bit è '0' e funge da modalità timer.


Bit di selezione della modalità: M1 e ​​M0 sono bit di selezione della modalità, utilizzati per selezionare le operazioni del timer. Ci sono quattro modalità per azionare i timer.

Modalità 0: Questa è una modalità a 13 bit che significa che l'operazione del timer viene completata con impulsi '8192'.

Modalità 1: Questa è una modalità a 16 bit, il che significa che l'operazione del timer viene completata con gli impulsi di clock massimi che '65535'.

Modalità 2: Questa modalità è una modalità di ricarica automatica a 8 bit, il che significa che l'operazione del timer viene completata con solo '256' impulsi di clock.

Modalità 3: Questa modalità è una modalità split-timer, il che significa che i valori di caricamento in T0 e avvia automaticamente il T1.

Bit di selezione della modalità

Bit di selezione della modalità

Selezione modalità Valori di timer e contatore nell'8051

Valori di selezione della modalità di timer e contatori

Valori di selezione della modalità di timer e contatori

Registro di controllo del timer (TCON): TCON è un altro registro utilizzato per controllare le operazioni del contatore e dei timer nei microcontrollori. È un registro a 8 bit in cui quattro bit superiori sono responsabili dei timer e dei contatori e i bit inferiori sono responsabili degli interrupt.

Registro di controllo del timer (TCON)

Registro di controllo del timer (TCON)

TF1: TF1 sta per bit flag 'timer1'. Ogni volta che si calcola il ritardo nel timer1, TH1 e TL1 raggiungono automaticamente il valore massimo che è “FFFF”.

EX: while (TF1 == 1)

Ogni volta che TF1 = 1, azzera il bit flag e ferma il timer.

TR1: TR1 sta per timer1 start o stop bit. L'avvio del timer può avvenire tramite istruzioni software o metodo hardware.

EX: gate = 0 (avvia timer 1 tramite istruzione software)
TR1 = 1 (Avvia timer)

TF0: TF0 sta per bit di flag 'timer0'. Ogni volta che si calcola il ritardo nel timer1, TH0 e TL0 raggiungono automaticamente un valore massimo che è 'FFFF'.

EX: while (TF0 == 1)
Ogni volta che TF0 = 1, azzera il bit flag e ferma il timer.

TR0: TR0 sta per bit di avvio o arresto 'timer0', l'avvio del timer può avvenire tramite istruzioni software o metodi hardware.

EX: gate = 0 (avvia timer 1 tramite istruzione software)
TR0 = 1 (Avvia timer)

Calcoli del ritardo temporale per il microcontrollore 8051

Il microcontrollore 8051 funziona con una frequenza di 11,0592 MHz.

Frequenza 11,0592 MHz = 12 impulsi

1 impulso di clock = 11,0592 MHz / 12

F = 0,921 MHz

Ritardo di tempo = 1 / F

T = 1 / 0,92 MHz

T = 1.080506 us (per ciclo '1')

1000us = 1MS

1000 ms = 1 sec

Procedura per calcolare il programma di ritardo

1. Per prima cosa dobbiamo caricare il valore del registro TMOD per 'Timer0' e 'Timer1' in diverse modalità. Ad esempio, se vogliamo far funzionare il timer1 in modalità1, deve essere configurato come “TMOD = 0x10”.

2. Ogni volta che azioniamo il timer in modalità 1, il timer prende gli impulsi massimi di 65535. Quindi gli impulsi di ritardo calcolati devono essere sottratti dagli impulsi massimi e successivamente convertiti in valore esadecimale. Questo valore deve essere caricato nel timer1 bit superiore e bit inferiore. Questa operazione del timer è programmata utilizzando C incorporato in un microcontrollore .

Esempio: ritardo di 500us

500us / 1.080806us

461pulses

P = 65535-461

P = 65074

65074 convettato da esadecimale = FE32

TH1 = 0xFE

TL1 = 0x32

3. Avvia il timer1 'TR1 = 1'

4. Monitorare il bit di flag 'while (TF1 == 1)'

5. Cancella il bit flag 'TF1 = 0'

6. Aggancia il timer 'TR1 = 0'

Programmi di esempio:

Programma- 1

Programma- 1

Programma- 2

Programma- 2

Programma- 3

Programma- 3

Contatori in 8051

Possiamo usare un contatore mantenendo alto il bit C / T, cioè '1' logico nel registro TMOD. Per una migliore comprensione, abbiamo fornito un programma che utilizza il timer 1 come contatore. Qui i LED sono collegati alla 8051 Porta 2, e lo switch al pin P3.5 del timer1 e quindi, se viene premuto, il valore verrà conteggiato. Altrimenti, un sensore collegato esternamente a questo pin del contatore come ingresso esegue questa operazione di conteggio.

Counter Program

Counter Program

Applicazioni di temporizzatori e contatori nell'8051

Contatore digitale con 8051

Il contatore digitale con 8051 si ottiene programmando il microcontrollore come discusso sopra e collegando ad esso un sistema di sensori. Questo contatore di oggetti utilizza un sensore IR che rileva l'ostacolo vicino ad esso e abilita anche il pin del microcontrollore 06. Quando un oggetto passa attraverso i sensori, il microcontrollore riceve un segnale di interruzione dai sensori IR e incrementa il conteggio visualizzato nel display a 7 segmenti.

Contatore digitale con 8051

Contatore digitale con 8051

Circuito di ritardo temporale Utilizzo del microcontrollore 8051

La figura seguente mostra come è possibile implementare il funzionamento del timer per accendere i LED in modo efficace. L'operazione di ritardo temporale per la serie di LED è programmata in un microcontrollore nel modo discusso sopra. Qui, una serie di LED è collegata alla porta 2 con un sistema di alimentazione comune. Quando questo circuito viene attivato in base al ritardo programma nel microcontrollore opportunamente, questi LED si accendono.

Circuito di ritardo

Circuito di ritardo

Si tratta del timer e dei contatori del microcontrollore 8051 con circuiti di programmazione e applicazione di base. Ci auguriamo che le informazioni di questo articolo possano averti fornito dati sufficienti per comprendere meglio il concetto. Inoltre, per qualsiasi dubbio tecnico sulla programmazione dell'8051 e dei suoi circuiti, potete contattarci commentando di seguito.

Crediti fotografici: