Taimerid ja loendurid mikrokontrolleris 8051 ja selle rakendused

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Paljud neist mikrokontrolleri rakendused nõuavad väliste sündmuste, näiteks impulssrongide sageduse, arvutamist ja täpsete sisemiste viivituste genereerimist arvutitoimingute vahel. Mõlemat ülesannet saab rakendada tarkvaratehnikate abil, kuid tarkvaralised silmused loendamiseks ja ajastus ei anna täpset tulemust, pigem ei tehta olulisemaid funktsioone. Nende probleemide vältimiseks on mikrokontrollerites olevad taimerid ja loendurid lihtsate ja odavate rakenduste jaoks paremad võimalused. Neid taimereid ja loendureid kasutatakse katkestab 8051 mikrokontrolleri .

Seal on kaks 16-bitist taimerit ja loendurit 8051 mikrokontroller : taimer 0 ja taimer 1. Mõlemad taimerid koosnevad 16-bitisest registrist, milles madalam bait on salvestatud TL-s ja kõrgem bait TH-s. Taimerit saab kasutada nii loendurina kui ka ajastustoiminguteks, mis sõltuvad loendurite kellaimpulsside allikast.




Taimerid ja loendurid

Taimerid ja loendurid

8051 mikrokontrolleri loendurid ja taimerid sisaldavad kahte erifunktsioonide registrit: TMOD (taimeri režiimi register) ja TCON (taimeri juhtimise register), mida kasutatakse aktiveerimiseks ja konfigureerimiseks taimerid ja loendurid .



Taimerirežiimi juhtimine (TMOD): TMOD on 8-bitine register, mida kasutatakse taimeri või loenduri ja taimerite režiimi valimiseks. Alumist 4-bitist kasutatakse taimeri 0 või loenduri 0 juhtimiseks ja ülejäänud 4-bitiseid kasutatakse taimeri1 või loenduri1 juhtimiseks. See register on olemas SFR-registris, SFR-registri aadress on 89..

Taimerirežiimi juhtimine (TMOD)

Taimerirežiimi juhtimine (TMOD)

Värav: Kui värava bitt on seatud väärtusele „0”, siis saame samal viisil käivitada ja peatada ka „tarkvara” taimeri. Kui värava väärtuseks on seatud '1', saame riistvaralise taimeriga hakkama.

C / T: Kui C / T bitt on ‘1’, toimib see loenduri režiimina ja samamoodi ka siis, kui seatakse C +
= / T bitt on “0”, see toimib taimeri režiimis.


Režiimi bitid: M1 ja M0 on režiimi valimise bitid, mida kasutatakse taimeri toimingute valimiseks. Taimerite juhtimiseks on neli režiimi.

Režiim 0: See on 13-bitine režiim, mis tähendab, et taimeri töö lõpeb impulssidega “8192”.

1. režiim: See on 16-bitine režiim, mis tähendab, et taimeri töö lõpeb maksimaalse kellaimpulssidega, mis on “65535”.

2. režiim: See režiim on 8-bitine automaatse laadimise režiim, mis tähendab, et taimeri töö lõpeb ainult kella 256 impulssidega.

3. režiim: See režiim on jagatud taimeri režiim, mis tähendab laadimisväärtusi T0-s ja käivitab automaatselt T1.

Režiimi valimise bitid

Režiimi valimise bitid

Režiimi valik Taimerite ja loenduri väärtused 8051-s

Taimerite ja loendurite režiimi valiku väärtused

Taimerite ja loendurite režiimi valiku väärtused

Taimerijuhtimise register (TCON): TCON on teine ​​register, mida kasutatakse mikrokontrollerites loenduri ja taimerite toimingute juhtimiseks. See on 8-bitine register, kus neli ülemist bitti vastutavad taimerite ja loendurite eest ning alumised bitid katkestuste eest.

Taimeri juhtimise register (TCON)

Taimeri juhtimise register (TCON)

TF1: TF1 tähistab lipu „taimer1” tähist. Kui loendate taimeri1 viivitust, jõuavad TH1 ja TL1 maksimaalse väärtuseni, mis on automaatselt “FFFF”.

Nt: samas (TF1 == 1)

Kui TF1 = 1, tühjendage lipubitt ja peatage taimer.

TR1: TR1 tähistab taimer1 algus- või peatumisbitti. Taimeri käivitamine võib toimuda tarkvara juhendamise või riistvaralise meetodi abil.

EX: värav = 0 (käivitamise taimer 1 tarkvara juhiste kaudu)
TR1 = 1 (taimer)

TF0: TF0 tähistab lipp-bitti 'taimer0'. Kui loendate taimeri1 viivitust, jõuavad TH0 ja TL0 automaatselt maksimaalse väärtuseni, mis on FFFF.

NÄIDE: samas (TF0 == 1)
Kui TF0 = 1, siis tühjendage lipubitt ja peatage taimer.

TR0: TR0 tähistab 'taimer0' start- või stopbitit, see taimer saab käivitada tarkvarajuhiste või riistvaralise meetodi abil.

EX: värav = 0 (käivitamise taimer 1 tarkvara juhiste kaudu)
TR0 = 1 (taimer)

8051 mikrokontrolleri ajaviivituse arvutused

Mikrokontroller 8051 töötab sagedusega 11,0592 MHz.

Sagedus 11,0592 MHz = 12 pule

1 kella impulss = 11,0592MHz / 12

F = 0,921 MHz

Aja viivitus = 1 / F

T = 1 / 0,92MHz

T = 1,080506 us (tsükli 1 jaoks)

1000us = 1MS

1000 ms = 1 s

Viivituste arvutamise kord

1. Kõigepealt peame laadima TMOD-i registriväärtuse ‘Timer0’ ja ‘Timer1’ erinevates režiimides. Näiteks kui soovime taimerit1 kasutada režiimis1, peab see olema konfigureeritud kui „TMOD = 0x10”.

2. Kui me kasutame taimerit režiimis 1, võtab taimer maksimaalsete impulsside väärtuseks 65535. Seejärel tuleb arvutatud viivitusimpulsid lahutada maksimaalsetest impulssidest ja teisendada seejärel kuueteistkümnendarvuks. See väärtus tuleb laadida taimer1 suurema biti ja madalamate bitidena. See taimeri töö on programmeeritud manustatud C mikrokontrollerisse .

Näide: 500-kordne viivitus

500us / 1,080806us

461impulsse

P = 65535-461

P = 65074

65074, mis on ühendatud kümnendkohaga koma = FE32

TH1 = 0xFE

TL1 = 0x32

3. Käivitage taimer1 “TR1 = 1”

4. Jälgige lipubitti “while (TF1 == 1)”

5. Tühjendage lipubitt “TF1 = 0”

6. Pange taimer kinni “TR1 = 0”

Näidisprogrammid:

Programm- 1

Programm- 1

Programm- 2

Programm- 2

Programm- 3

Programm- 3

Loendurid aastal 8051

Saame kasutada loendurit, hoides C / T-biti kõrgel, s.t loogika ’1’ TMOD-registris. Parema mõistmise huvides oleme andnud ühe programmi, mis kasutab loendurina taimerit 1. Siin on LED-id ühendatud 8051 pordiga 2 ja lüliti taimeri1 tihvtiga P3.5 ning seetõttu loetakse lüliti vajutamisel väärtus. Vastasel juhul teeb selle loendustoimingu väliselt ühendatud andur selle loendustihvtiga sisendina.

Loenduriprogramm

Loenduriprogramm

Taimerite ja loendurite rakendused aastal 8051

Digitaalne loendur 8051-ga

Digitaalloendur 8051-ga saavutatakse mikrokontrolleri programmeerimisega, nagu ülalpool räägitud, ja andurisüsteemi kinnitamise abil. See objektiloendur kasutab IR-andurit, mis tuvastab selle lähedal oleva takistuse ja võimaldab ka mikrokontrolleri tihvt 06. Kui objekt läbib andureid, saab mikrokontroller IR-anduritelt katkestussignaali ja suurendab loendit, mida kuvatakse 7-segmendilises ekraanis.

Digitaalne loendur 8051-ga

Digitaalne loendur 8051-ga

Ajavõteahel mikrokontrolleri 8051 abil

Alloleval joonisel on näidatud, kuidas saab taimerit LED-ide tõhusaks ümberlülitamiseks rakendada. Valgusdioodide komplekti viivitustoiming programmeeritakse mikrokontrolleris ülalpool käsitletud viisil. Siin on LED-ide komplekt ühendatud pordiga 2 ühise toitesüsteemiga. Kui see vooluring lülitatakse aja viivituse põhjal sisse programm mikrokontrolleris sobivad LED-id on sisse lülitatud.

Viivituse ahel

Viivituse ahel

See kõik puudutab 8051 mikrokontrolleri taimerit ja loendureid koos põhiliste programmeerimis- ja rakendusahelatega. Loodame, et selle artikli teave võib olla andnud teile piisavalt andmeid kontseptsiooni paremaks mõistmiseks. Lisaks, kui teil on 8051 ja selle ahelate programmeerimisel tekkinud tehnilisi kahtlusi, võite meiega ühendust võtta, kommenteerides allpool.

Foto autorid: