Tidtagare och räknare i 8051 Microcontroller och dess applikationer

Prova Vårt Instrument För Att Eliminera Problem





Många av applikationer för mikrokontroller kräver räkning av externa händelser såsom frekvens hos pulståg och generering av exakta interna tidsfördröjningar mellan datoråtgärder. Båda dessa uppgifter kan implementeras med mjukvarutekniker, men mjukvaruslingor för att räkna, och timing ger inte det exakta resultatet, snarare viktigare funktioner görs inte. För att undvika dessa problem är timers och räknare i mikrokontrollerna bättre alternativ för enkla och billiga applikationer. Dessa timers och räknare används som avbryter i 8051 mikrokontroller .

Det finns två 16-bitars timers och räknare 8051 mikrokontroller : timer 0 och timer 1. Båda timrarna består av 16-bitars register där den lägre byten lagras i TL och den högre byten lagras i TH. Timern kan användas som en räknare såväl som för tidsdrift som beror på källan till klockpulser till räknare.




Tidtagare och räknare

Tidtagare och räknare

Räknare och timer i 8051 mikrokontroller innehåller två specialfunktionsregister: TMOD (Timer Mode Register) och TCON (Timer Control Register), som används för att aktivera och konfigurera timers och räknare .



Timer Mode Control (TMOD): TMOD är ett 8-bitarsregister som används för att välja timer eller räknare och läge för timers. Nedre 4-bitar används för styrdrift av timer 0 eller räknar0, och återstående 4-bitar används för styrdrift av timer1 eller räknare 1. Detta register finns i SFR-register, adressen för SFR-register är 89: e.

Timer Mode Control (TMOD)

Timer Mode Control (TMOD)

Port: Om gate-biten är inställd på '0' kan vi starta och stoppa 'programvarutimern' på samma sätt. Om grinden är inställd på '1' kan vi utföra hårdvarutimer.

C / T: Om C / T-biten är '1' fungerar den som ett motläge och på samma sätt när den är inställd C +
= / T-bit är '0', den fungerar som ett timerläge.


Lägesval bitar: M1 och M0 är lägesvalbitar som används för att välja timerfunktioner. Det finns fyra lägen för att styra timern.

Läge 0: Detta är ett 13-bitars läge som innebär att timerfunktionen slutförs med “8192” pulser.

Läge 1: Detta är a16-bitars läge, vilket innebär att timerfunktionen slutförs med maximala klockpulser som “65535”.

Läge 2: Detta läge är ett 8-bitars automatiskt omladdningsläge, vilket innebär att timerfunktionen slutförs med endast '256' klockpulser.

Läge 3: Detta läge är ett delat timerläge, vilket innebär att laddningsvärdena i T0 startar automatiskt T1.

Lägesval Bits

Lägesval Bits

Lägesval Värden för timers och räknare i 8051

Lägesvalvärden för timers och räknare

Lägesvalvärden för timers och räknare

Timer Control Register (TCON): TCON är ett annat register som används för att styra räknar- och timers operationer i mikrokontroller. Det är ett 8-bitars register där fyra övre bitar är ansvariga för timers och räknare och nedre bitar ansvarar för avbrott.

Timer Control Register (TCON)

Timer Control Register (TCON)

TF1: TF1 står för 'timer1' flaggbit. Vid beräkning av tidsfördröjningen i timer1 når TH1 och TL1 automatiskt det maximala värdet som är 'FFFF'.

EX: medan (TF1 == 1)

När TF1 = 1 rensar du sedan flaggbiten och stoppar timern.

TR1: TR1 står för timer1 start- eller stoppbit. Denna timerstart kan ske genom programinstruktion eller genom hårdvarumetod.

EX: gate = 0 (starta timer 1 genom programinstruktion)
TR1 = 1 (starttimer)

TF0: TF0 står för 'timer0' flaggbit. När du beräknar tidsfördröjningen i timer1 når TH0 och TL0 automatiskt till ett maximivärde som är 'FFFF'.

EX: medan (TF0 == 1)
När TF0 = 1 rensar du sedan flaggbiten och stoppar timern.

TR0: TR0 står för 'timer0' start eller stoppbit denna timerstart kan ske genom programinstruktion eller genom hårdvarumetod.

EX: gate = 0 (starta timer 1 genom programinstruktion)
TR0 = 1 (starttimer)

Tidsfördröjningsberäkningar för 8051 mikrokontroller

8051-mikrokontrollern fungerar med 11.0592 MHz-frekvens.

Frekvens 11.0592MHz = 12 ledningar

1 klockpuls = 11.0592MHz / 12

F = 0,921 MHz

Tidsfördröjning = 1 / F.

T = 1 / 0,92 MHz

T = 1.080506 oss (för '1' cykel)

1000us = 1MS

1000ms = 1sek

Procedur för att beräkna fördröjningsprogrammet

1. Först måste vi ladda TMOD-registervärdet för 'Timer0' och 'Timer1' i olika lägen. Om vi ​​till exempel vill använda timer1 i läge 1 måste den konfigureras som “TMOD = 0x10”.

2. Närhelst vi använder timern i läge 1 tar timern de maximala pulserna på 65535. Sedan måste de beräknade tidsfördröjningspulserna subtraheras från de maximala pulserna och därefter konverteras till hexadecimalt värde. Detta värde måste laddas i timer1 högre bitar och lägre bitar. Denna timerfunktion programmeras med inbäddad C i en mikrokontroller .

Exempel: 500us tidsfördröjning

500us / 1.080806us

461 pulser

P = 65535-461

P = 65074

65074 förses med hexadecimal = FE32

TH1 = 0xFE

TL1 = 0x32

3. Starta timern1 “TR1 = 1”

4. Övervaka flaggbiten “while (TF1 == 1)”

5. Rensa flaggbiten “TF1 = 0”

6. Kläm in timern “TR1 = 0”

Exempel på program:

Program- 1

Program- 1

Program- 2

Program- 2

Program- 3

Program- 3

Räknare 8051

Vi kan använda en räknare genom att hålla C / T-biten hög, det vill säga logiken '1' i TMOD-registret. För bättre förståelse har vi gett ett program som använder timer 1 som räknare. Här är lysdioderna anslutna till 8051 Port 2, och omkopplaren till timer1-stift P3.5 och därför, om man trycker på omkopplaren, räknas värdet. I annat fall räknar en externt ansluten sensor till denna räknarstift som ingång.

Counter Program

Counter Program

Tillämpningar av timers och räknare 8051

Digital räknare med 8051

Den digitala räknaren med 8051 uppnås genom programmering av mikrokontrollern som diskuterats ovan och genom att fästa ett sensorsystem till den. Denna objekträknare använder IR-sensor som upptäcker hindret nära den och också möjliggör stift på mikrokontrollern 06. När ett objekt passerar genom sensorerna får mikrokontrollern en avbrottssignal från IR-sensorerna och ökar räkningen som visas i 7-segmentet.

Digital räknare med 8051

Digital räknare med 8051

Tidsfördröjningskrets Använd 8051 mikrokontroller

Nedanstående figur visar hur timerfunktionen kan implementeras för att byta lysdioder på ett effektivt sätt. Tidsfördröjningsoperationen för uppsättningen lysdioder är programmerad i en mikrokontroller på det sätt som diskuterats ovan. Här är en uppsättning lysdioder anslutna till port 2 med ett gemensamt försörjningssystem. När denna krets är påslagen baserat på tidsfördröjningen program i mikrokontrollern på lämpligt sätt tänds dessa lysdioder.

Tidsfördröjningskrets

Tidsfördröjningskrets

Det här handlar om 8051 mikrokontroller timer och räknare med grundläggande programmering och applikationskretsar. Vi hoppas att informationen i den här artikeln kan ha gett dig tillräcklig information för att bättre förstå konceptet. Vidare, eventuella tekniska tvivel om programmering 8051 och dess kretsar, kan du kontakta oss genom att kommentera nedan.

Fotokrediter: