Timers en tellers in 8051 Microcontroller en zijn toepassingen

Probeer Ons Instrument Voor Het Oplossen Van Problemen





Veel van de microcontroller-toepassingen het tellen van externe gebeurtenissen zoals de frequentie van de pulstreinen en het genereren van nauwkeurige interne tijdsvertragingen tussen computeracties. Beide taken kunnen worden geïmplementeerd door softwaretechnieken, maar softwareloops voor tellen en timing geven niet het exacte resultaat, eerder belangrijke functies worden niet uitgevoerd. Om deze problemen te vermijden, zijn timers en tellers in de microcontrollers betere opties voor eenvoudige en goedkope toepassingen. Deze timers en tellers worden gebruikt als onderbreekt in 8051 microcontroller

Er zijn twee 16-bits timers en tellers in 8051 microcontroller : timer 0 en timer 1. Beide timers bestaan ​​uit een 16-bit register waarin de onderste byte wordt opgeslagen in TL en de hogere byte wordt opgeslagen in TH. De timer kan zowel als teller worden gebruikt als voor timingoperaties die afhankelijk zijn van de bron van klokpulsen naar tellers.




Timers en tellers

Timers en tellers

Tellers en timers in 8051-microcontroller bevatten twee speciale functieregisters: TMOD (Timer Mode Register) en TCON (Timer Control Register), die worden gebruikt voor het activeren en configureren timers en tellers



Timer Mode Control (TMOD): TMOD is een 8-bits register dat wordt gebruikt voor het selecteren van timer of teller en modus van timers. De onderste 4-bits worden gebruikt voor de besturing van timer 0 of teller0, en de resterende 4-bits worden gebruikt voor de besturing van timer1 of teller 1. Dit register is aanwezig in het SFR-register, het adres voor het SFR-register is 89e.

Timer Mode Control (TMOD)

Timer Mode Control (TMOD)

Poort: Als het poortbit is ingesteld op ‘0’, kunnen we de 'software' -timer op dezelfde manier starten en stoppen. Als de poort is ingesteld op ‘1’, kunnen we een hardwaretimer uitvoeren.

C / T: Als de C / T-bit ‘1’ is, werkt het als een tellermodus, en op dezelfde manier als C + is ingesteld
= / T bit is ‘0’ het werkt als een timermodus.


Mode selecteer bits: De M1 en M0 zijn modusselectiebits, die worden gebruikt om de timerbewerkingen te selecteren. Er zijn vier modi om de timers te bedienen.

Modus 0: Dit is een 13-bits modus, wat betekent dat de timerwerking wordt voltooid met '8192' -pulsen.

Modus 1: Dit is een 16-bits modus, wat betekent dat de timerwerking wordt voltooid met maximale klokpulsen van '65535'.

Modus 2: Deze modus is een 8-bits automatische herlaadmodus, wat betekent dat de timerwerking wordt voltooid met slechts '256' klokpulsen.

Modus 3: Deze modus is een split-timer-modus, wat betekent dat de waarden in T0 worden geladen en de T1 automatisch wordt gestart.

Modus Selectie Bits

Modus Selectie Bits

Modusselectie Waarden van timers en teller in 8051

Modusselectiewaarden van timers en tellers

Modusselectiewaarden van timers en tellers

Timer Control Register (TCON): TCON is een ander register dat wordt gebruikt om de werking van teller en timers in microcontrollers te besturen. Het is een 8-bits register waarin vier bovenste bits verantwoordelijk zijn voor timers en tellers en lagere bits verantwoordelijk zijn voor interrupts.

Timer Control Register (TCON)

Timer Control Register (TCON)

TF1: De TF1 staat voor ‘timer1’ vlagbit. Telkens wanneer de tijdvertraging in timer1 wordt berekend, bereiken de TH1 en TL1 automatisch de maximale waarde die 'FFFF' is.

EX: while (TF1 == 1)

Wanneer TF1 = 1, wis dan de vlagbit en stop de timer.

TR1: De TR1 staat voor timer1 start- of stopbit. Het starten van deze timer kan plaatsvinden via software-instructies of via een hardwaremethode.

EX: gate = 0 (start timer 1 via software-instructie)
TR1 = 1 (Start timer)

TF0: De TF0 staat voor ‘timer0’ vlagbit. Telkens wanneer de tijdvertraging in timer1 wordt berekend, bereiken de TH0 en TL0 automatisch een maximale waarde die ‘FFFF’ is.

EX: while (TF0 == 1)
Telkens wanneer de TF0 = 1, wis dan de vlagbit en stop de timer.

TR0: De TR0 staat voor ‘timer0’ start of stop. Deze timer kan worden gestart via software-instructies of via een hardwaremethode.

EX: gate = 0 (start timer 1 via software-instructie)
TR0 = 1 (Start timer)

Tijdvertragingsberekeningen voor 8051 Microcontroller

De 8051-microcontroller werkt met een frequentie van 11,0592 MHz.

Frequentie 11,0592 MHz = 12 pules

1 klokpuls = 11,0592 MHz / 12

F = 0,921 MHz

Tijdvertraging = 1 / F

T = 1 / 0,92 MHz

T = 1.080506 us (voor ‘1’ cyclus)

1000us = 1 MS

1000 ms = 1 sec

Procedure om het vertragingsprogramma te berekenen

1. Eerst moeten we de TMOD-registerwaarde laden voor ‘Timer0’ en ‘Timer1’ in verschillende modi. Als we bijvoorbeeld timer1 in modus1 willen gebruiken, moet deze worden geconfigureerd als 'TMOD = 0x10'.

2. Telkens wanneer we de timer in modus 1 gebruiken, neemt de timer de maximale pulsen van 65535. Vervolgens moeten de berekende tijdvertragingspulsen worden afgetrokken van de maximale pulsen en daarna worden geconverteerd naar een hexadecimale waarde. Deze waarde moet worden geladen in timer1 hogere bit en lagere bits. Deze timerwerking wordt geprogrammeerd met embedded C in een microcontroller

Voorbeeld: 500us vertraging

500us / 1.080806us

461 pulsen

P = 65535-461

P = 65074

65074 ingevuld door hexa decimaal = FE32

TH1 = 0xFE

TL1 = 0x32

3. Start de timer1 'TR1 = 1'

4. Controleer de vlagbit 'while (TF1 == 1)'

5. Wis de vlagbit 'TF1 = 0'

6. Bevestig de timer 'TR1 = 0'

Voorbeeldprogramma's:

Programma- 1

Programma- 1

Programma- 2

Programma- 2

Programma- 3

Programma- 3

Tellers in 8051

We kunnen een teller gebruiken door de C / T-bit hoog te houden, d.w.z. logische ‘1’ in het TMOD-register. Voor een beter begrip hebben we een programma gegeven dat timer 1 als teller gebruikt. Hier zijn de LED's aangesloten op 8051 poort 2, en de schakelaar op de timer1 pin P3.5 en daarom, als de schakelaar wordt ingedrukt, wordt de waarde geteld. Anders voert een extern aangesloten sensor op deze tegenpin als ingang deze telbewerking uit.

Tellerprogramma

Tellerprogramma

Toepassingen van timers en tellers in 8051

Digitale teller met 8051

De digitale teller met 8051 wordt bereikt door de microcontroller te programmeren zoals hierboven besproken en door er een sensorsysteem aan te bevestigen. Deze objectteller maakt gebruik van een IR-sensor die het obstakel in de buurt detecteert en ook de pin van de microcontroller 06. Wanneer een object door de sensoren gaat, krijgt de microcontroller een interruptsignaal van de IR-sensoren en verhoogt hij de telling die wordt weergegeven in het 7-segmentendisplay.

Digitale teller met 8051

Digitale teller met 8051

Tijdvertragingscircuit Met behulp van 8051 microcontroller

De onderstaande afbeelding laat zien hoe de timerwerking kan worden geïmplementeerd om de leds op een effectieve manier te schakelen. De tijdvertragingswerking voor de set LED's wordt op de hierboven besproken manier in een microcontroller geprogrammeerd. Hier is een set LED's aangesloten op poort 2 met een gemeenschappelijk voedingssysteem. Wanneer dit circuit is ingeschakeld op basis van de tijdvertraging programma in de microcontroller dienovereenkomstig zijn deze leds ingeschakeld.

Tijdvertragingscircuit

Tijdvertragingscircuit

Dit gaat allemaal over de 8051 microcontroller-timer en tellers met basisprogrammering en applicatiecircuits. We hopen dat de informatie in dit artikel u mogelijk voldoende gegevens heeft opgeleverd om het concept beter te begrijpen. Bovendien kunt u bij technische twijfels over het programmeren van 8051 en zijn circuits contact met ons opnemen door hieronder te reageren.

Fotocredits: