Katkestab 8051 mikrokontrolleri ning struktuuri ja programmeerimise

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Kõige võimsamad ja olulisemad funktsioonid on katkestused 8051 mikrokontroller . Enamikus reaalajas toimuvatest protsessidest peab teatud tingimuste nõuetekohaseks käsitsemiseks tegelik ülesanne mõnda aega seisma jääma - see nõuab vajalikke toiminguid - ja seejärel peamise ülesande juurde tagasi pöörduma. Sellist tüüpi programmide käivitamiseks on vaja katkestusi. See erineb täielikult küsitlusmeetodist, kus protsessor peab iga seadet järjest kontrollima ja küsima, kas teenus on vajalik protsessori suurema ajakulutamise ajal.

Katkestab 8051 mikrokontrolleris

Katkestab 8051 mikrokontrolleris



8051 mikrokontrolleri katkestused on soovitavamad, et vähendada liideseseadmete või sisseehitatud seadmete regulaarset oleku kontrollimist. Katkestus on sündmus, mis peatab ajutiselt põhiprogrammi, viib juhtimise spetsiaalsesse koodijaoskonda, täidab sündmusega seotud funktsiooni ja jätkab põhiprogrammi voogu sealt, kus see pooleli jäi.


Katkestusi on erinevat tüüpi, näiteks tarkvara ja riistvara, maskeeritavad ja maskeerimata, fikseeritud ja vektoriga katkestused jne. Katkestusteenuse rutiin (ISR) tuleb pildile katkestuse ilmnemisel ja käsib protsessoril katkestamiseks asjakohaseid toiminguid teha ning pärast ISR-i käivitamist hüppab kontroller põhiprogrammi.



8051 mikrokontrolleri katkestuste tüübid

Mikrokontroller 8051 suudab ära tunda viis erinevat sündmust, mis põhjustavad põhiprogrammi tavapärase täitmise katkestamise. Need viis katkestuse allikat aastal 8051 on:

  1. Taimer 0 ülevoolu katkestus - TF0
  2. Taimer 1 ülevoolu katkestus - TF1
  3. Väline riistvarakatkestus - INT0
  4. Väline riistvarakatkestus - INT1
  5. Juhtkommunikatsiooni katkestus - RI / TI

Taimer- ja jadkatkestused genereeritakse sisemiselt mikrokontrolleri poolt, välised katkestused aga täiendavate liideseseadmed või lülitid, mis on väliselt ühendatud mikrokontrolleriga. Need välised katkestused võivad olla servaga käivitatavad või taseme käivitatavad. Katkestuse korral täidab mikrokontroller katkestusteenuse rutiini nii, et mälu asukoht vastab katkestusele, mis seda võimaldab. Mälu asukohale vastav katkestus on toodud allpool toodud katkestusvektori tabelis.

Katkestusvektori tabel

Katkestusvektori tabel

8051 mikrokontrolleri katkestusstruktuur

„RESET” korral lülitatakse kõik katkestused välja ja seetõttu peab tarkvara kõik need katkestused lubama. Kõigi nende viie katkestuse korral, kui keegi või kõik on aktiveeritud, määrab see vastavad katkestuse lipud, nagu on näidatud joonisel. Kõiki neid katkestusi saab bitide kaupa seadistada või kustutada mõnes spetsiaalses funktsiooniregistris, mis on katkestuse lubatud (IE), ja see sõltub omakorda prioriteedist, mille täidab IP-katkestuse prioriteediregister.


8051 mikrokontrolleri katkestusstruktuur

8051 mikrokontrolleri katkestusstruktuur

Katkestamise lubamise (IE) register: See register vastutab katkestuse lubamise ja keelamise eest. See on natuke adresseeritav register, milles katkestuste lubamiseks peab EA olema üks. Selle registri vastav bitt võimaldab teatud katkestusi nagu taimer, välised ja jadasisendid. Allpool asuvas IE registris aktiveerib bit 1, mis katkestab, ja 0 keelab katkestuse.

Katkesta lubamise (IE) register

Katkesta lubamise (IE) register

Katkestuse prioriteediregister (IP): Samuti on võimalik katkestuste prioriteetsuse tasemeid muuta, seadistades või tühjendades vastava biti katkestuse prioriteedi (IP) registris, nagu joonisel näidatud. See võimaldab madala prioriteediga katkestusel katkestada kõrge prioriteediga katkestuse, kuid keelab katkestuse teise madala prioriteediga katkestusega. Samamoodi ei saa kõrge prioriteediga katkestamist katkestada. Kui neid katkestuse prioriteete pole programmeeritud, töötab mikrokontroller etteantud viisil ja selle järjekord on INT0, TF0, INT1, TF1 ja SI.

IP-register

IP-register

TCONi register: Lisaks kahele ülaltoodud registrile täpsustab TCON register mikrokontrolleri 8051 välise katkestuse tüübi, nagu on näidatud joonisel. Kaks välist katkestust, olenemata servast või tasemest, määratakse selle registri poolt komplekti abil või tühjendatakse selles olevate asjakohaste bittidega. Ja see on ka natuke adresseeritav register.

TCONi register

TCONi register

Programmi katkestamine aastal 8051

1. Taimeri katkestamise programmeerimine

Taimer 0 ja taimer 1 katkestused genereeritakse taimeri registribittide TF0 ja TF1 abil. Need katkestavad programmeerimine C-koodi järgi hõlmab:

  • Taimeri valimine, seadistades TMOD-i registri ja selle töörežiimi.
  • TLx ja THx algväärtuste valimine ja laadimine sobivate režiimide jaoks.
  • IE registrite ja vastavate taimeribittide lubamine selles.
  • Taimeri käivitamisbiti seadistamine taimeri käivitamiseks.
  • Taimerile alamprogrammi kirjutamine vajaliku aja jaoks ja alamprogrammi lõpus selge taimeri väärtus TRx.
Taimeri katkestamise programmeerimine

Taimeri katkestamise programmeerimine

2. Välise riistvara katkestamise programmeerimine

8051 mikrokontroller koosneb kahest välisest riistvarakatkestusest: INT0 ja INT1, nagu varem räägitud. Need on lubatud punktides 3.2 ja 3.3. Need võivad olla servaga käivitatavad või taseme käivitatavad. Taseme käivitamisel võimaldab tihvti 3.2 madal katkestada, samal ajal kui tihvtil 3.2 - üleminek madalast madalale võimaldab serva poolt käivitatava katkestuse. Selle serva käivitamise või taseme käivitamise otsustab TCON-register, mida on eespool käsitletud. The programmeerimisprotseduur aastal 8051 on järgmine:

  • Lubage vastav välise katkestuse bit IE registris.
  • Kui see on taseme käivitav, kirjutage lihtsalt sellele katkestusele sobiv alamprogramm või lubage vastasel juhul serva poolt käivitatud katkestusele vastav TCON-i registribitt - olgu see siis INT0 või INT1.
Välise riistvara katkestamise programmeerimine

Välise riistvara katkestamise programmeerimine

3. Seeriaühenduse katkestamise programmeerimine

Jadaside katkestused tulevad pildile, kui on vaja andmeid saata või vastu võtta. Kuna nii TI (ülekande katkestus) kui ka RI (vastuvõtja katkestus) lippude jaoks on määratud üks katkestusbitt, peab katkestusteenuse rutiin tegelikke katkestusi teades neid lippe uurima.

Nende kahe lipu (RI ja TI TI) loogiline VÕI operatsioon põhjustab selle katkestuse ja tarkvara kustutab selle üksi. Siin kasutatakse kontrollimiseks spetsiaalset registrit SCON suhtlemine operatsiooni, lubades selles vastavad bitid.

  • Seadistage IE register jadakatkestuse lubamiseks
  • Konfigureerige SCON-register toimingu vastuvõtmiseks või edastamiseks
  • Kirjutage selle katkestuse jaoks alamprogramm koos sobiva funktsiooniga ja kustutage selles rutiinis TI või RI lipud.
Seeria katkestuse programmeerimine

Seeria katkestuse programmeerimine

See kõik puudutab 8051 mikrokontrolleri katkestusi, tüüpe, nende struktuuri ja programmeerimist. Loodetavasti võite sellest artiklist saada head teavet. Samuti saate meile kirjutada allpool olevasse kommentaaride jaotisse rakenduse reaalajas rakendamiseks mikrokontrolleri projektid et saaksime teid parema praktilise kogemuse saamiseks aidata.

Foto autorid