Ajastimet ja laskurit 8051-mikrokontrollerissa ja sen sovelluksissa

Kokeile Instrumenttia Ongelmien Poistamiseksi





Monet mikro-ohjainsovellukset vaativat ulkoisten tapahtumien, kuten pulssijunien taajuuden, laskemista ja tarkkojen sisäisten viiveiden muodostamista tietokoneen toimintojen välillä. Molemmat tehtävät voidaan toteuttaa ohjelmistotekniikoilla, mutta ohjelmistosilmukat laskentaan ja ajoitukseen eivät anna tarkkaa tulosta, vaan tärkeämpiä toimintoja ei tehdä. Näiden ongelmien välttämiseksi mikro-ohjainten ajastimet ja laskurit ovat parempia vaihtoehtoja yksinkertaisiin ja edullisiin sovelluksiin. Näitä ajastimia ja laskureita käytetään keskeyttää 8051-mikrokontrollerin .

Sisään on kaksi 16-bittistä ajastinta ja laskuria 8051-mikrokontrolleri : ajastin 0 ja ajastin 1. Molemmat ajastimet koostuvat 16-bittisestä rekisteristä, johon alempi tavu on tallennettu TL: ään ja ylempi tavu TH: hen. Ajastinta voidaan käyttää sekä laskurina että ajastintoiminnoissa, jotka riippuvat laskurien kellopulssien lähteestä.




Ajastimet ja laskurit

Ajastimet ja laskurit

Laskurit ja ajastimet 8051-mikrokontrollerissa sisältävät kaksi erikoistoimintorekisteriä: TMOD (ajastintilarekisteri) ja TCON (ajastintarkistusrekisteri), joita käytetään aktivointiin ja konfigurointiin ajastimet ja laskurit .



Ajastintilan hallinta (TMOD): TMOD on 8-bittinen rekisteri, jota käytetään ajastimen tai laskurin ja ajastintilan valitsemiseen. Alempia 4-bittejä käytetään ajastimen 0 tai laskurin 0 ohjaamiseen ja loput 4-bittisiä ajastimen1 tai laskurin1 ohjaamiseen. Tämä rekisteri on SFR-rekisterissä, SFR-rekisterin osoite on 89..

Ajastintilan hallinta (TMOD)

Ajastintilan hallinta (TMOD)

Portti: Jos porttibitti on asetettu arvoon “0”, voimme käynnistää ja pysäyttää “ohjelmisto” ajastimen samalla tavalla. Jos portti on asetettu arvoon 1, voimme suorittaa laitteistoajastimen.

C / T: Jos C / T-bitti on ”1”, se toimii laskuritilana ja samalla tavalla, kun se on asetettu C +
= / T-bitti on ”0”, se toimii ajastintilana.


Tilan valintabitit: M1 ja M0 ovat tilanvalintabittejä, joita käytetään ajastintoimintojen valitsemiseen. Ajastimia voidaan käyttää neljässä tilassa.

Tila 0: Tämä on 13-bittinen tila, mikä tarkoittaa, että ajastintoiminto täydentää “8192” -pulsseja.

Tila 1: Tämä on 16-bittinen tila, mikä tarkoittaa, että ajastintoiminto täydentää kellopulssien enimmäismäärän '65535'.

Tila 2: Tämä tila on 8-bittinen automaattinen lataustila, mikä tarkoittaa, että ajastintoiminto täydentää vain “256” kellopulsseja.

Tila 3: Tämä tila on jaetun ajastimen tila, mikä tarkoittaa latausarvoja T0: ssa ja käynnistää T1: n automaattisesti.

Tilan valintabitit

Tilan valintabitit

Tilan valinta Ajastimien ja laskurin arvot 8051: ssä

Ajastimien ja laskurien tilavalinta-arvot

Ajastimien ja laskurien tilavalinta-arvot

Ajastinohjausrekisteri (TCON): TCON on toinen rekisteri, jota käytetään ohjaamaan laskurin ja ajastinten toimintaa mikro-ohjaimissa. Se on 8-bittinen rekisteri, jossa neljä ylempää bittiä vastaavat ajastimista ja laskurit ja alemmat bitit vastaavat keskeytyksistä.

Ajastinohjausrekisteri (TCON)

Ajastinohjausrekisteri (TCON)

TF1: TF1 tarkoittaa 'ajastin1' lippubittiä. Aikaviiveen laskennassa ajastimessa1 TH1 ja TL1 saavuttavat maksimiarvon, joka on “FFFF” automaattisesti.

EX: kun (TF1 == 1)

Aina kun TF1 = 1, tyhjennä lippubitti ja pysäytä ajastin.

TR1: TR1 tarkoittaa ajastimen1 aloitus- tai lopetusbittiä. Ajastimen käynnistys voi tapahtua ohjelmisto-ohjeiden tai laitteistomenetelmän avulla.

EX: portti = 0 (käynnistysajastin 1 ohjelmisto-ohjeiden kautta)
TR1 = 1 (käynnistysajastin)

TF0: TF0 tarkoittaa 'timer0' lippubittiä. Aikaviiveen laskennassa ajastimessa1 TH0 ja TL0 saavuttavat maksimiarvon, joka on ”FFFF”, automaattisesti.

EX: kun (TF0 == 1)
Aina kun TF0 = 1, tyhjennä lippubitti ja pysäytä ajastin.

TR0: TR0 tarkoittaa ”ajastin0” aloitus- tai lopetusbittiä, tämä ajastimen käynnistys voi tapahtua ohjelmisto-ohjeiden tai laitteistomenetelmän avulla.

EX: portti = 0 (käynnistysajastin 1 ohjelmisto-ohjeiden kautta)
TR0 = 1 (käynnistysajastin)

Aikaviiveen laskelmat 8051-mikrokontrollerille

8051-mikrokontrolleri toimii 11,0592 MHz: n taajuudella.

Taajuus 11,0592 MHz = 12 pistettä

1 kellopulssi = 11,0592 MHz / 12

F = 0,921 MHz

Aikaviive = 1 / F

T = 1 / 0,92 MHz

T = 1,080506 us (syklille 1)

1000us = 1MS

1000 ms = 1 s

Menettely viivästysohjelman laskemiseksi

1. Meidän on ensin ladattava TMOD-rekisteriarvo ”Ajastin0” ja ”Ajastin1” -toiminnoille. Esimerkiksi, jos haluamme käyttää ajastinta1 tilassa 1, se on määritettävä arvoksi “TMOD = 0x10”.

2. Aina kun käytämme ajastinta tilassa 1, ajastin ottaa maksimipulssit 65535. Sitten lasketut aikaviive-pulssit on vähennettävä maksimipulsseista ja muunnettava sitten heksadesimaaliarvoksi. Tämä arvo on ladattava ajastimessa 1 korkeampi ja pienempi bitti. Tämä ajastintoiminto on ohjelmoitu upotettu C mikrokontrolleriin .

Esimerkki: 500us-aikaviive

500us / 1,080806us

461pulssia

P = 65535-461

P = 65074

65074, joka on muodostettu heksadesimaaliluvulla = FE32

TH1 = 0xFE

TL1 = 0x32

3. Käynnistä ajastin1 “TR1 = 1”

4. Tarkkaile lippubittiä 'while (TF1 == 1)'

5. Tyhjennä lippubitti ”TF1 = 0”

6. Kytke ajastin “TR1 = 0”

Esimerkkiohjelmat:

Ohjelma- 1

Ohjelma- 1

Ohjelma- 2

Ohjelma- 2

Ohjelma- 3

Ohjelma- 3

Laskurit vuonna 8051

Voimme käyttää laskuria pitämällä C / T-bitin korkealla, eli logiikan '1' TMOD-rekisterissä. Paremman ymmärtämisen vuoksi olemme antaneet yhden ohjelman, joka käyttää ajastinta 1 laskurina. Tässä LEDit on kytketty 8051-porttiin 2 ja kytkin ajastimen1-napaan P3.5, ja siksi, jos kytkintä painetaan, arvo lasketaan. Muussa tapauksessa ulkoisesti kytketty anturi tähän laskurin tapaan tulona tekee tämän laskutoiminnon.

Laskuriohjelma

Laskuriohjelma

Ajastimien ja laskureiden sovellukset vuonna 8051

Digitaalinen laskuri 8051: llä

Digitaalilaskuri 8051: llä saavutetaan ohjelmoimalla mikro-ohjain yllä kuvatulla tavalla ja liittämällä siihen anturijärjestelmä. Tämä objektilaskuri käyttää infrapunatunnistinta, joka tunnistaa lähellä olevan esteen ja mahdollistaa myös mikrokontrollerin nasta 06. Kun esine kulkee antureiden läpi, mikro-ohjain saa keskeytyssignaalin IR-antureista ja lisää 7-segmenttinäytössä näkyvää määrää.

Digitaalinen laskuri 8051: llä

Digitaalinen laskuri 8051: llä

Aikaviivepiiri 8051-mikrokontrollerilla

Alla oleva kuva osoittaa, kuinka ajastintoiminto voidaan toteuttaa LEDien vaihtamiseksi tehokkaasti. LED-sarjan aikaviiveoperaatio ohjelmoidaan mikro-ohjaimessa edellä esitetyllä tavalla. Tässä joukko LED-valoja on kytketty porttiin 2 yhteisellä syöttöjärjestelmällä. Kun tämä piiri kytketään päälle aikaviiveen perusteella ohjelma mikrokontrollerissa nämä ledit kytketään päälle asianmukaisesti.

Aikaviive piiri

Aikaviive piiri

Tämä koskee 8051-mikrokontrollerin ajastinta ja laskureita, joissa on perusohjelmointi- ja sovelluspiirit. Toivomme, että tämän artikkelin tiedot ovat saattaneet antaa sinulle riittävästi tietoa käsitteen ymmärtämiseksi paremmin. Lisäksi, jos sinulla on teknisiä epäilyksiä 8051: n ja sen piirien ohjelmoinnista, voit ottaa meihin yhteyttä kommentoimalla alla.

Valokuvahyvitykset: