Prerušenie mikrokontroléra 8051 a štruktúra a programovanie

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Najvýkonnejšie a najdôležitejšie funkcie sú prerušenia Mikrokontrolér 8051 . Vo väčšine procesov v reálnom čase musí byť skutočná úloha na správne zvládnutie určitých podmienok na určitý čas zastavená - urobí požadované kroky - a potom sa musí vrátiť k hlavnej úlohe. Na vykonávanie tohto typu programov sú potrebné prerušenia. Úplne sa líši od spôsobu dopytovania, pri ktorom procesor musí postupne kontrolovať každé zariadenie a pýtať sa, či je služba vyžadovaná alebo nie, pričom spotrebuje viac času procesora.

Prerušuje mikrokontrolér 8051

Prerušuje mikrokontrolér 8051



Prerušenia v mikrokontroléri 8051 sú žiaducejšie na zníženie pravidelnej kontroly stavu zariadení s rozhraním alebo zabudovaných zariadení. Prerušenie je udalosť, ktorá dočasne pozastaví hlavný program, odovzdá kontrolu špeciálnej sekcii kódu, vykoná funkciu súvisiacu s udalosťou a obnoví tok hlavného programu tam, kde prestala.


Prerušenia sú rôznych typov, ako je softvér a hardvér, maskovateľné a nemaskovateľné, pevné a vektorové prerušenia atď. Rutina prerušenia služby (ISR) sa objaví na obrázku, keď dôjde k prerušeniu, a potom informuje procesor, aby vykonal príslušné opatrenia pre prerušenie, a po vykonaní ISR skočí radič na hlavný program.



Typy prerušenia v mikrokontroléri 8051

Mikrokontrolér 8051 dokáže rozpoznať päť rôznych udalostí, ktoré spôsobia prerušenie hlavného programu od bežného vykonania. Týchto päť zdrojov prerušení v roku 8051 je:

  1. Prerušenie pretečenia časovača 0 - TF0
  2. Prerušenie pretečenia časovača 1 - TF1
  3. Prerušenie externého hardvéru - INT0
  4. Prerušenie externého hardvéru - INT1
  5. Prerušenie sériovej komunikácie - RI / TI

Časové a sériové prerušenia sú interne generované mikrokontrolérom, zatiaľ čo externé prerušenia sú generované ďalšími prepojovacie zariadenia alebo spínače, ktoré sú externe pripojené k mikrokontroléru. Tieto externé prerušenia môžu byť spustené na hrane alebo na úrovni. Keď dôjde k prerušeniu, mikrokontrolér vykoná rutinu obsluhy prerušenia tak, aby miesto v pamäti zodpovedalo prerušeniu, ktoré ju umožňuje. Prerušenie zodpovedajúce umiestneniu v pamäti je uvedené v tabuľke vektorov prerušenia nižšie.

Tabuľka prerušenia vektora

Tabuľka prerušenia vektora

Štruktúra prerušenia mikrořadiča 8051

Po „RESETE“ sa všetky prerušenia deaktivujú, a preto musia byť všetky tieto prerušenia povolené softvérom. Vo všetkých týchto piatich prerušeniach, ak sú ktokoľvek alebo všetci aktivovaní, sa nastavia príslušné príznaky prerušenia, ako je znázornené na obrázku. Všetky tieto prerušenia je možné bitom nastaviť alebo vymazať v nejakom špeciálnom registri funkcií, ktorý je Interrupt Enabled (IE), a to zase závisí od priority, ktorá sa vykonáva registrom priority prerušenia IP.


Prerušená štruktúra mikrokontroléra 8051

Prerušená štruktúra mikrokontroléra 8051

Register Interrupt Enable (IE): Tento register je zodpovedný za povolenie a zakázanie prerušenia. Je to bitovo adresovateľný register, v ktorom musí byť EA nastavený na jeden, aby umožnil prerušenie. Zodpovedajúci bit v tomto registri umožňuje konkrétne prerušenie, ako je časovač, externé a sériové vstupy. V nižšie uvedenom registri IE bit zodpovedajúci 1 aktivuje prerušenie a 0 deaktivuje prerušenie.

Register Prerušiť povolenie (IE)

Register Prerušiť povolenie (IE)

Prerušiť prioritný register (IP): Je tiež možné zmeniť prioritné úrovne prerušenia nastavením alebo vymazaním zodpovedajúceho bitu v registri priority prerušenia (IP), ako je to znázornené na obrázku. To umožňuje prerušeniu s nízkou prioritou prerušiť prerušenie s vysokou prioritou, ale zakazuje prerušenie ďalším prerušením s nízkou prioritou. Podobne nemožno prerušiť prerušenie s vysokou prioritou. Ak tieto priority prerušenia nie sú naprogramované, mikrokontrolér sa vykoná preddefinovaným spôsobom a jeho poradie je INT0, TF0, INT1, TF1 a SI.

Register IP

Register IP

Register TCON: Okrem vyššie uvedených dvoch registrov špecifikuje register TCON typ externého prerušenia mikrokontroléra 8051, ako je znázornené na obrázku. Dve vonkajšie prerušenia, či už spustené na hranici alebo na úrovni, špecifikované týmto registrom množinou alebo vyčistené príslušnými bitmi v ňom. A je to tiež trochu adresovateľný register.

Registr TCON

Registr TCON

Prerušenie programovania v roku 8051

1. Programovanie prerušenia časovača

Prerušenia časovača 0 a časovača 1 sú generované bitmi registra časovača TF0 a TF1. Tieto prerušenia programovanie pomocou C kódu zahŕňa:

  • Výber časovača konfiguráciou registra TMOD a jeho režimu činnosti.
  • Výber a načítanie počiatočných hodnôt TLx a THx pre príslušné režimy.
  • Povolenie registrov IE a zodpovedajúcich bitov časovača v nich.
  • Nastavením bitu časovača spustíte časovač.
  • Zápis podprogramu pre časovač na požadovaný čas a na konci podprogramu vymazanie hodnoty časovača TRx.
Programovanie prerušenia časovača

Programovanie prerušenia časovača

2. Programovanie prerušenia externého hardvéru

Mikrokontroléry 8051 pozostávajú z dvoch externých hardvérových prerušení: INT0 a INT1, ako už bolo spomenuté vyššie. Tieto sú povolené na pinoch 3.2 a 3.3. Môžu byť spúšťané na hrane alebo na úrovni. Pri spúšťaní na úrovni umožňuje nízko na kolíku 3.2 prerušenie, zatiaľ čo na kolíku 3.2 - prechod z vysokej na nízku umožňuje prerušenie hranou. O tomto spustení hrany alebo spustení úrovne rozhoduje register TCON, o ktorom sa diskutovalo vyššie. The programovací postup v 8051 je nasledujúci:

  • Povoľte zodpovedajúci bit externého prerušenia v registri IE.
  • Ak sa jedná o spúšťanie na úrovni, stačí napísať podprogram vhodný pre toto prerušenie, alebo povoliť bit registra TCON zodpovedajúci prerušeniu spustenému na okraji - či už je to INT0 alebo INT1.
Programovanie prerušenia externého hardvéru

Programovanie prerušenia externého hardvéru

3. Programovanie prerušenia sériovej komunikácie

Prerušenia sériovej komunikácie sa zobrazia, keď je potrebné odosielať alebo prijímať údaje. Pretože je jeden prerušovací bit nastavený pre príznaky TI (Transfer Interrupt) aj RI (Receiver Interrupt), rutina prerušovacej služby musí tieto príznaky preskúmať, aby poznala skutočné prerušenie.

Logická operácia OR týchto dvoch príznakov (RI a TI) spôsobí toto prerušenie a samotný softvér ho vymaže. Tu sa na riadenie používa špeciálny register SCON komunikácia činnosť povolením zodpovedajúcich bitov v ňom.

  • Nakonfigurujte register IE na povolenie sériového prerušenia
  • Nakonfigurujte register SCON na príjem alebo prenos
  • Napíšte podprogram pre toto prerušenie s príslušnou funkciou a v tejto rutine vymažte príznaky TI alebo RI.
Programovanie sériového prerušenia

Programovanie sériového prerušenia

Toto je všetko o prerušeniach v mikrokontroléri 8051, typoch, ich štruktúre a programovaní. Dúfam, že ste z tohto článku dostali dobré informácie. Môžete nám tiež napísať do sekcie komentárov nižšie, aby ste mohli implementáciu v reálnom čase projekty mikrokontrolérov aby sme vám mohli pomôcť pri lepšom praktickom zážitku.

Fotoúvery