Timere og tellere i 8051 Microcontroller og dets applikasjoner

Prøv Instrumentet Vårt For Å Eliminere Problemer





Mange av de mikrokontroller applikasjoner krever telling av eksterne hendelser som frekvensen til pulstogene og generering av presise interne tidsforsinkelser mellom datahandlingene. Begge disse oppgavene kan implementeres ved hjelp av programvareteknikker, men programvaresløyfer for telling, og timing vil ikke gi det eksakte resultatet, heller viktigere funksjoner blir ikke gjort. For å unngå disse problemene er tidtakere og tellere i mikrokontrollerne bedre alternativer for enkle og rimelige applikasjoner. Disse timere og tellere brukes som avbryter i 8051 mikrokontroller .

Det er to 16-biters tidtakere og tellere i 8051 mikrokontroller : timer 0 og timer 1. Begge tidtakerne består av 16-biters register der den nedre byten er lagret i TL og den høyere byten er lagret i TH. Timer kan brukes som en teller så vel som for tidsdrift som avhenger av kilden til klokkepulser til tellere.




Timere og tellere

Timere og tellere

Teller og tidtakere i 8051 mikrokontroller inneholder to spesielle funksjonsregistre: TMOD (Timer Mode Register) og TCON (Timer Control Register), som brukes til å aktivere og konfigurere tidtakere og tellere .



Timer Mode Control (TMOD): TMOD er ​​et 8-biters register som brukes til å velge timer eller teller og modus for timere. Nedre 4-bits brukes til styringsdrift av timer 0 eller counter0, og gjenværende 4-bits brukes til styring av timer1 eller counter 1. Dette registeret er tilstede i SFR-register, adressen til SFR-register er 89.

Timer Mode Control (TMOD)

Timer Mode Control (TMOD)

Port: Hvis gate-biten er satt til '0', kan vi starte og stoppe 'programvaretimeren' på samme måte. Hvis porten er satt til ‘1’, kan vi utføre maskinvaretidsur.

C / T: Hvis C / T-biten er ‘1’, fungerer den som en motmodus, og på samme måte når den er satt C +
= / T bit er ‘0’, den fungerer som en timer-modus.


Modusvalg bits: M1 og M0 er modusvalgbiter som brukes til å velge timeroperasjoner. Det er fire moduser for å betjene tidtakerne.

Modus 0: Dette er en 13-bits modus som betyr at tidsuroperasjonen fullføres med “8192” -impulser.

Modus 1: Dette er a16-bit-modus, noe som betyr at tidsuroperasjonen fullføres med maksimale klokkepulser som “65535”.

Modus 2: Denne modusen er en 8-bits automatisk omlastingsmodus, noe som betyr at tidtakeren fullføres med bare '256' klokkepulser.

Modus 3: Denne modusen er en delt timer-modus, noe som betyr at lastverdiene i T0 og automatisk starter T1.

Modusvalg Bits

Modusvalg Bits

Valg av modus Verdier for tidtakere og teller i 8051

Modusvalgverdier for tidtakere og tellere

Modusvalgverdier for tidtakere og tellere

Timer Control Register (TCON): TCON er et annet register som brukes til å kontrollere operasjoner av teller og tidtakere i mikrokontrollere. Det er et 8-bits register hvor fire øvre biter er ansvarlige for tidtakere og tellere, og nedre biter er ansvarlige for avbrudd.

Timer Control Register (TCON)

Timer Control Register (TCON)

TF1: TF1 står for 'timer1' flaggbit. Hver gang du beregner tidsforsinkelsen i timer1, når TH1 og TL1 automatisk til maksimumsverdien som er 'FFFF'.

EX: mens (TF1 == 1)

Når TF1 = 1, tøm flaggbiten og stopp timeren.

TR1: TR1 står for timer1 start eller stoppbit. Denne timeren starter kan være gjennom programvareinstruksjon eller gjennom maskinvaremetode.

EX: gate = 0 (start timer 1 gjennom programvareinstruksjon)
TR1 = 1 (Start timer)

TF0: TF0 står for ‘timer0’ flaggbit. Når du beregner tidsforsinkelsen i tidtaker1, når TH0 og TL0 automatisk til en maksimumsverdi som er 'FFFF'.

EX: mens (TF0 == 1)
Når TF0 = 1, tøm flaggbiten og stopp timeren.

TR0: TR0 står for 'timer0' start eller stoppbit, denne timeren starter kan være gjennom programvareinstruksjon eller gjennom maskinvaremetode.

EX: gate = 0 (start timer 1 gjennom programvareinstruksjon)
TR0=1 (Start timer)

Tidsforsinkelsesberegninger for 8051 mikrokontroller

8051-mikrokontrolleren fungerer med 11.0592 MHz-frekvens.

Frekvens 11.0592MHz = 12 puller

1 klokkepuls = 11.0592MHz / 12

F = 0,921 MHz

Tidsforsinkelse = 1 / F.

T = 1 / 0,92 MHz

T = 1.080506 us (for ‘1’ syklus)

1000us = 1MS

1000ms = 1sek

Fremgangsmåte for å beregne forsinkelsesprogrammet

1. Først må vi laste inn TMOD-registerverdien for ‘Timer0’ og ‘Timer1’ i forskjellige moduser. Hvis vi for eksempel vil bruke timer1 i modus1, må den konfigureres som “TMOD = 0x10”.

2. Hver gang vi bruker timeren i modus 1, tar timeren de maksimale pulser på 65535. Deretter må de beregnede tidsforsinkelsespulsene trekkes fra de maksimale pulser, og deretter konverteres til heksadesimal verdi. Denne verdien må lastes i timer1 høyere bit og lavere bit. Denne tidtakeren er programmert med innebygd C i en mikrokontroller .

Eksempel: 500us tidsforsinkelse

500us / 1.080806us

461 pulser

P = 65535-461

P = 65074

65074 conveted with hexa decimal = FE32

TH1 = 0xFE

TL1 = 0x32

3. Start timeren1 “TR1 = 1”

4. Overvåk flaggbiten “while (TF1 == 1)”

5. Fjern flaggbiten “TF1 = 0”

6. Cleat timeren “TR1 = 0”

Eksempel på programmer:

Program- 1

Program- 1

Program- 2

Program- 2

Program- 3

Program- 3

Møter i 8051

Vi kan bruke en teller ved å holde C / T-biten høy, dvs. logikken ‘1’ i TMOD-registeret. For bedre forståelse har vi gitt ett program som bruker timer 1 som teller. Her er lysdiodene koblet til 8051 Port 2, og bryteren til tidtakeren 1 pin P3.5, og hvis du trykker på bryteren, telles verdien. Ellers teller en eksternt tilkoblet sensor til denne tellerpinnen som inngang.

Counter Program

Counter Program

Anvendelser av tidtakere og tellere i 8051

Digital teller med 8051

Den digitale telleren med 8051 oppnås ved å programmere mikrokontrolleren som beskrevet ovenfor og ved å feste et sensorsystem til den. Denne objekttelleren bruker IR-sensor som oppdager hindringen i nærheten av den, og som også muliggjør pin på mikrokontrolleren 06. Når et objekt passerer gjennom sensorene, får mikrokontrolleren et avbruddssignal fra IR-sensorene og øker tellingen som vises i 7-segmentet.

Digital teller med 8051

Digital teller med 8051

Tidsforsinkelseskrets Bruk 8051 mikrokontroller

Figuren nedenfor viser hvordan timeren kan implementeres for å bytte lysdioder på en effektiv måte. Tidsforsinkelsesoperasjonen for settet med LED er programmert i en mikrokontroller på den måten som er diskutert ovenfor. Her er et sett med lysdioder koblet til port 2 med et felles forsyningssystem. Når denne kretsen er slått på basert på tidsforsinkelsen programmet i mikrokontrolleren riktig, disse lysdiodene er slått på.

Tidsforsinkelseskrets

Tidsforsinkelseskrets

Dette handler om 8051 mikrokontroller-timer og tellere med grunnleggende programmering og applikasjonskretser. Vi håper at informasjonen i denne artikkelen kan ha gitt deg tilstrekkelig data til å forstå konseptet bedre. Videre, hvis du er i tvil om programmering 8051 og kretsene, kan du kontakte oss ved å kommentere nedenfor.

Fotokreditter:

  • Digital teller med 8051 av kretsdag
  • Tidsforsinkelseskrets forbi vshamu