Timere og tællere i 8051 Microcontroller og dens applikationer

Prøv Vores Instrument Til At Fjerne Problemer





Mange af de mikrokontroller applikationer kræve optælling af eksterne hændelser såsom frekvens af pulstogene og generering af præcise interne tidsforsinkelser mellem computerhandlinger. Begge disse opgaver kan implementeres ved hjælp af softwareteknikker, men softwareslynger til optælling og timing giver ikke det nøjagtige resultat, men vigtigere funktioner udføres ikke. For at undgå disse problemer er timere og tællere i mikrocontrollerne bedre muligheder for enkle og billige applikationer. Disse timere og tællere bruges som afbryder i 8051 mikrokontroller .

Der er to 16-bit timere og tællere i 8051 mikrokontroller : timer 0 og timer 1. Begge timere består af 16-bit register, hvor den nedre byte er lagret i TL, og den højere byte er gemt i TH. Timer kan bruges som en tæller såvel som til tidsdrift, der afhænger af kilden til urimpulser til tællere.




Timere og tællere

Timere og tællere

Tællere og timere i 8051 mikrocontroller indeholder to specielle funktionsregistre: TMOD (Timer Mode Register) og TCON (Timer Control Register), der bruges til aktivering og konfiguration timere og tællere .



Timer Mode Control (TMOD): TMOD er ​​et 8-bit register, der bruges til at vælge timer eller tæller og timertilstand. Nedre 4-bits bruges til styring af timer 0 eller tæller0, og resterende 4-bit bruges til styring af timer1 eller tæller 1. Dette register er til stede i SFR-register, adressen til SFR-register er 89.

Timer Mode Control (TMOD)

Timer Mode Control (TMOD)

Port: Hvis gate bit er indstillet til '0', kan vi starte og stoppe 'software' timeren på samme måde. Hvis porten er indstillet til '1', kan vi udføre hardware-timer.

C / T: Hvis C / T-biten er '1', fungerer den som en modtilstand og tilsvarende når den er indstillet C +
= / T bit er '0', den fungerer som en timer-tilstand.


Funktioner til valg af bits: M1 og M0 er bits til tilstandsvalg, som bruges til at vælge timerfunktionerne. Der er fire tilstande til at betjene timerne.

Mode 0: Dette er en 13-bit-tilstand, der betyder, at timerfunktionen fuldføres med '8192' -impulser.

Tilstand 1: Dette er a16-bit-tilstand, hvilket betyder, at timerfunktionen afsluttes med maksimale urimpulser, der “65535”.

Mode 2: Denne tilstand er en 8-bit automatisk genindlæsningstilstand, hvilket betyder, at timerfunktionen fuldføres med kun '256' urimpulser.

Mode 3: Denne tilstand er en split-timer-tilstand, hvilket betyder, at indlæsningsværdierne i T0 og automatisk starter T1.

Bits til valg af tilstand

Bits til valg af tilstand

Valg af tilstand Værdier for timere og tællere i 8051

Værdier for valg af tilstand for timere og tællere

Værdier for valg af tilstand for timere og tællere

Timer Control Register (TCON): TCON er et andet register, der bruges til at styre operationer af tællere og timere i mikrokontrollere. Det er et 8-bit register, hvor fire øvre bits er ansvarlige for timere og tællere, og nedre bits er ansvarlige for afbrydelser.

Timer Control Register (TCON)

Timer Control Register (TCON)

TF1: TF1 står for 'timer1' flagbit. Hver gang beregning af tidsforsinkelsen i timer1 når TH1 og TL1 automatisk til den maksimale værdi, der er 'FFFF'.

EX: mens (TF1 == 1)

Når TF1 = 1, skal du fjerne flagbiten og stoppe timeren.

TR1: TR1 står for timer1 start eller stopbit. Denne timerstart kan ske via softwareinstruktion eller via hardwaremetode.

EX: gate = 0 (start timer 1 gennem softwareinstruktion)
TR1=1 (Start timer)

TF0: TF0 står for 'timer0' flag-bit. Hver gang beregning af tidsforsinkelsen i timer1 når TH0 og TL0 automatisk til en maksimumværdi, der er 'FFFF'.

EX: mens (TF0 == 1)
Når TF0 = 1, skal du rydde flagbiten og stoppe timeren.

TR0: TR0 står for 'timer0' start eller stopbit, denne timerstart kan ske gennem softwareinstruktion eller ved hjælp af hardwaremetode.

EX: gate = 0 (start timer 1 gennem softwareinstruktion)
TR0 = 1 (starttimer)

Tidsforsinkelsesberegninger for 8051 Microcontroller

8051-mikrocontrolleren fungerer med 11.0592 MHz-frekvens.

Frekvens 11.0592MHz = 12 piller

1 urpuls = 11.0592MHz / 12

F = 0,921 MHz

Tidsforsinkelse = 1 / F.

T = 1 / 0,92 MHz

T = 1.080506 us (for '1' cyklus)

1000us = 1MS

1000 ms = 1 sek

Fremgangsmåde til beregning af forsinkelsesprogrammet

1. Først skal vi indlæse TMOD-registerværdien for 'Timer0' og 'Timer1'i forskellige tilstande. For eksempel, hvis vi ønsker at betjene timer1 i tilstand 1, skal den konfigureres som “TMOD = 0x10”.

2. Når vi betjener timeren i tilstand 1, tager timeren de maksimale impulser på 65535. Derefter skal de beregnede tidsforsinkelsesimpulser trækkes fra de maksimale impulser og derefter konverteres til hexadecimal værdi. Denne værdi skal indlæses i timer1 højere bit og lavere bit. Denne timerfunktion er programmeret med indlejret C i en mikrokontroller .

Eksempel: 500us tidsforsinkelse

500us / 1.080806us

461 pulser

P = 65535-461

P = 65074

65074 konvet med hexadecimal = FE32

TH1 = 0xFE

TL1 = 0x32

3. Start timeren1 “TR1 = 1”

4. Overvåg flagbiten “while (TF1 == 1)”

5. Ryd flagbiten “TF1 = 0”

6. Klem timeren “TR1 = 0”

Eksempel på programmer:

Program- 1

Program- 1

Program- 2

Program- 2

Program- 3

Program- 3

Tællere i 8051

Vi kan bruge en tæller ved at holde C / T bit høj, dvs. logik '1' i TMOD-registeret. For bedre forståelse har vi givet et program, der bruger timer 1 som tæller. Her er LED'erne tilsluttet 8051 Port 2, og omskifteren til timer1 pin P3.5, og hvis der trykkes på kontakten, tælles værdien. Ellers tæller en eksternt tilsluttet sensor til denne tællerstift som input denne optælling.

Counter Program

Counter Program

Anvendelser af timere og tællere i 8051

Digital tæller med 8051

Den digitale tæller med 8051 opnås ved at programmere mikrocontrolleren som beskrevet ovenfor og ved at tilslutte et sensorsystem til den. Denne objekttæller bruger IR-sensor, der registrerer forhindringen i nærheden af ​​den og muliggør også pin på mikrocontrolleren 06. Når en genstand passerer gennem sensorerne, får mikrocontrolleren et afbrydesignal fra IR-sensorerne og øger antallet, der vises i 7-segmentets display.

Digital tæller med 8051

Digital tæller med 8051

Tidsforsinkelseskredsløb Brug af 8051 mikrokontroller

Nedenstående figur viser, hvordan timerfunktionen kan implementeres til at skifte lysdioder på en effektiv måde. Tidsforsinkelsesfunktionen for sættet af LED'er er programmeret i en mikrocontroller på den måde, der er beskrevet ovenfor. Her er et sæt LED'er forbundet til port 2 med et fælles forsyningssystem. Når dette kredsløb er tændt baseret på tidsforsinkelsen program i mikrocontrolleren passende er disse lysdioder tændt.

Tidsforsinkelseskredsløb

Tidsforsinkelseskredsløb

Dette handler om 8051-mikrocontroller-timeren og tællere med grundlæggende programmering og applikationskredsløb. Vi håber, at oplysningerne i denne artikel muligvis har givet dig tilstrækkelige data til at forstå konceptet bedre. Yderligere, hvis du er i tvivl om programmering 8051 og dens kredsløb, kan du kontakte os ved at kommentere nedenfor.

Fotokreditter: