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
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)
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 Värden för timers och räknare i 8051
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)
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- 2
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
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
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
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:
- Digital räknare med 8051 av circuitstoday
- Tidsfördröjningskrets förbi vshamu