Pārtrauc 8051 mikrokontrolleru un struktūru un programmēšanu

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Visspēcīgākās un svarīgākās funkcijas ir pārtraukumi 8051 mikrokontrolleris . Lielākajā daļā reāllaika procesu, lai pareizi rīkotos ar noteiktiem apstākļiem, faktiskais uzdevums kādu laiku jāpārtrauc - tam jāveic vajadzīgās darbības - un pēc tam jāatgriežas pie galvenā uzdevuma. Lai izpildītu šāda veida programmas, ir nepieciešami pārtraukumi. Tas pilnībā atšķiras no aptaujas metodes, kurā procesoram ir jāpārbauda katra ierīce secīgi un jājautā, vai pakalpojums ir vajadzīgs vai nē, patērējot vairāk procesora laika.

Pārtrauc 8051 mikrokontrolleru

Pārtrauc 8051 mikrokontrolleru



Pārtraukumi 8051 mikrokontrollerī ir vēlamāki, lai samazinātu saskarnes ierīču vai iebūvēto ierīču regulāru stāvokļa pārbaudi. Pārtraukums ir notikums, kas īslaicīgi aptur galveno programmu, nodod vadību īpašai kodu sadaļai, izpilda ar notikumu saistīto funkciju un atsāk galveno programmas plūsmu tur, kur tā bija pārtraukta.


Pārtraukumi ir dažāda veida, piemēram, programmatūra un aparatūra, maskējami un nemaskējami, fiksēti un vektoriski pārtraukti utt. Interrupt Service Routine (ISR) tiek parādīts attēlā, kad notiek pārtraukums, un pēc tam liek procesoram veikt attiecīgas darbības pārtraukumam, un pēc ISR izpildes kontrolieris ielec galvenajā programmā.



Pārtraukumu veidi 8051 mikrokontrollerī

8051 mikrokontrolleris var atpazīt piecus dažādus notikumus, kuru dēļ galvenā programma tiek pārtraukta no parastās izpildes. Šie pieci pārtraukumu avoti 8051. gadā ir:

  1. Taimera 0 pārplūdes pārtraukums - TF0
  2. 1. taimera pārplūdes pārtraukums - TF1
  3. Ārējās aparatūras pārtraukums - INT0
  4. Ārējās aparatūras pārtraukums - INT1
  5. Sērijas komunikācijas pārtraukums - RI / TI

Taimera un sērijas pārtraukumus iekšēji ģenerē mikrokontrolleris, turpretī ārējos traucējumus rada papildu saskarnes ierīces vai slēdži, kas ir ārēji savienoti ar mikrokontrolleru. Šie ārējie pārtraukumi var būt mala vai līmeņa aktivizētāji. Kad notiek pārtraukums, mikrokontrolleris izpilda pārtraukuma pakalpojuma rutīnu tā, lai atmiņas vieta atbilstu pārtraukumam, kas to ļauj. Pārtraukums, kas atbilst atmiņas vietai, ir norādīts pārtraukumu vektoru tabulā zemāk.

Pārtraukt vektoru tabulu

Pārtraukt vektoru tabulu

8051 mikro kontroliera pārtraukuma struktūra

Pēc ‘Atiestatīt’ visi traucējumi tiek atspējoti, un tāpēc visiem šiem pārtraukumiem jābūt iespējotiem ar programmatūru. Visos šajos piecos pārtraukumos, ja kāds vai visi ir aktivizēti, tas iestata attiecīgos pārtraukuma karodziņus, kā parādīts attēlā. Visus šos pārtraukumus var iestatīt vai notīrīt ar bitu kādā īpašā funkciju reģistrā, kas ir iespējots pārtraukt (IE), un tas savukārt ir atkarīgs no prioritātes, kuru izpilda IP pārtraukumu prioritāšu reģistrs.


8051 mikrokontrollera pārtraukuma struktūra

8051 mikrokontrollera pārtraukuma struktūra

Pārtraukt iespējot (IE) reģistru: Šis reģistrs ir atbildīgs par pārtraukuma iespējošanu un atspējošanu. Tas ir mazliet adresējams reģistrs, kurā EA ir jāiestata uz vienu, lai iespējotu pārtraukumus. Atbilstošais bits šajā reģistrā ļauj veikt noteiktus pārtraukumus, piemēram, taimeri, ārējās un sērijveida ieejas. Zemāk esošajā IE reģistrā bits, kas atbilst 1, aktivizē pārtraukumu un 0 atspējo pārtraukumu.

Pārtraukt iespējot (IE) reģistru

Pārtraukt iespējot (IE) reģistru

Pārtrauktās prioritātes reģistrs (IP): Ir arī iespējams mainīt pārtraukumu prioritātes līmeņus, iestatot vai notīrot atbilstošo bitu reģistrā Interrupt priority (IP), kā parādīts attēlā. Tas ļauj zemas prioritātes pārtraukumam pārtraukt augstas prioritātes pārtraukumu, bet aizliedz pārtraukt citu zemas prioritātes pārtraukumu. Tāpat nevar pārtraukt augstas prioritātes pārtraukumu. Ja šīs pārtraukuma prioritātes nav ieprogrammētas, mikrokontrolleris darbojas iepriekš noteiktā veidā un tā secība ir INT0, TF0, INT1, TF1 un SI.

IP reģistrs

IP reģistrs

TCON reģistrs: Papildus iepriekšminētajiem diviem reģistriem TCON reģistrs norāda 8051 mikrokontrollera ārējā pārtraukuma veidu, kā parādīts attēlā. Divi ārējie pārtraukumi, neatkarīgi no tā, vai tie ir mala vai līmenis, tiek noteikti ar šo reģistru ar kopu vai notīrīti ar attiecīgajiem bitiem tajā. Un tas ir arī mazliet adresējams reģistrs.

TCON reģistrs

TCON reģistrs

Pārtraukt programmēšanu 8051. gadā

1. Taimera pārtraukuma programmēšana

Taimera 0 un 1. taimera pārtraukumus ģenerē taimera reģistra biti TF0 un TF1. Šie pārtrauc programmēšana pēc C koda ietver:

  • Taimera izvēle, konfigurējot TMOD reģistru un tā darbības režīmu.
  • TLx un THx sākotnējo vērtību izvēle un ielāde atbilstošajiem režīmiem.
  • Iespējojot IE reģistrus un attiecīgos taimera bitus tajā.
  • Taimera palaišanas bita iestatīšana, lai palaistu taimeri.
  • Taimera apakšprogrammas rakstīšana par nepieciešamo laiku un apakšprogrammas beigās notīriet taimera vērtību TRx.
Taimera pārtraukuma programmēšana

Taimera pārtraukuma programmēšana

2. Ārējās aparatūras pārtraukuma programmēšana

8051 mikrokontrolleri sastāv no diviem ārējiem aparatūras pārtraukumiem: INT0 un INT1, kā tika apspriests iepriekš. Tie ir iespējoti tapās 3.2 un 3.3. Tie var būt gan malu iedarbināti, gan līmeņa izraisīti. Aktivizējot līmeni, zemais pie tapas 3.2 ļauj pārtraukt, savukārt pie tapas 3.2 - pāreja no augšas uz zemu ļauj pārtraukt malu. Par šo malu iedarbināšanu vai līmeņa iedarbināšanu izlemj TCON reģistrs, kas tika apspriests iepriekš. The programmēšanas procedūra 8051. gadā ir šāds:

  • Iespējojiet atbilstošo ārējā pārtraukuma bitu IE reģistrā.
  • Ja tas ir līmeņa aktivizētājs, vienkārši uzrakstiet apakšprogrammu, kas piemērota šim pārtraukumam, vai arī iespējojiet TCON reģistra bitu, kas atbilst malas izraisītajam pārtraukumam - neatkarīgi no tā, vai tas ir INT0 vai INT1.
Ārējās aparatūras pārtraukuma programmēšana

Ārējās aparatūras pārtraukuma programmēšana

3. Sērijas komunikācijas pārtraukuma programmēšana

Sērijas komunikācijas pārtraukumi tiek parādīti, kad ir nepieciešams nosūtīt vai saņemt datus. Tā kā gan TI (Transfer Interrupt), gan RI (Receiver Interrupt) karodziņiem ir iestatīts viens pārtraukuma bits, Interrupt Service rutīnai ir jāpārbauda šie karodziņi, lai zinātu faktisko pārtraukumu.

Šo divu karodziņu loģiskā VAI darbība (RI un TI TI) izraisa šo pārtraukumu, un to notīra tikai programmatūra. Šeit kontrolei tiek izmantots īpašs reģistrs SCON komunikācija darbību, iespējojot tajā atbilstošos bitus.

  • Konfigurējiet IE reģistru, lai iespējotu sērijveida pārtraukumu
  • Konfigurējiet SCON reģistru operācijas saņemšanai vai pārsūtīšanai
  • Uzrakstiet apakšprogrammu šim pārtraukumam ar atbilstošu funkciju un šajā rutīnā notīriet TI vai RI karodziņus.
Sērijas pārtraukuma programmēšana

Sērijas pārtraukuma programmēšana

Tas viss ir par traucējumiem 8051 mikrokontrollerī, veidiem, to struktūru un programmēšanu. Ceru, ka, iespējams, esat saņēmis labu informāciju no šī raksta. Varat arī rakstīt mums tālāk komentāru sadaļā, lai reāllaikā ieviestu mikrokontrolleru projekti lai mēs varētu jums palīdzēt, lai iegūtu labāku praktisko pieredzi.

Foto kredīti