Avbryter 8051 mikrokontroller och struktur och programmering

Prova Vårt Instrument För Att Eliminera Problem





De mest kraftfulla och viktiga funktionerna är avbrott i 8051 mikrokontroller . För att hantera vissa förhållanden på rätt sätt i de flesta realtidsprocesserna måste den faktiska uppgiften vara stoppad under en tid - det tar nödvändiga åtgärder - och måste sedan återgå till huvuduppgiften. För att utföra en sådan typ av program är avbrott nödvändiga. Det skiljer sig helt från avfrågningsmetoden där processorn måste kontrollera varje enhet i följd och fråga om tjänsten krävs eller inte samtidigt som den tar längre processortid.

Avbryter i 8051 mikrokontroller

Avbryter i 8051 mikrokontroller



Avbrott i 8051 mikrokontroller är mer önskvärda för att minska regelbunden statuskontroll av gränssnittsenheter eller inbyggda enheter. Interrupt är en händelse som tillfälligt avbryter huvudprogrammet, skickar kontrollen till ett speciellt kodavsnitt, utför den händelserelaterade funktionen och återupptar huvudprogramflödet där det slutade.


Avbrott är av olika typer som mjukvara och hårdvara, maskerbara och icke-maskerbara, fasta och vektoravbrott, och så vidare. Interrupt Service Routine (ISR) kommer in i bilden när avbrott inträffar och berättar sedan för processorn att vidta lämpliga åtgärder för avbrottet, och efter ISR-körning hoppar styrenheten in i huvudprogrammet.



Typer av avbrott i 8051 Microcontroller

8051-mikrokontrollern kan känna igen fem olika händelser som får huvudprogrammet att avbrytas från det normala utförandet. Dessa fem källor till avbrott under 8051 är:

  1. Timer 0 överflödsavbrott - TF0
  2. Timer 1 överflödsavbrott - TF1
  3. Extern maskinvarustopp - INT0
  4. Extern hårdvaruavbrott - INT1
  5. Seriell kommunikationsavbrott - RI / TI

Timer- och seriell avbrott genereras internt av mikrokontrollern, medan de externa avbrott genereras av ytterligare gränssnittsanordningar eller omkopplare som är externt anslutna till mikrokontrollern. Dessa externa avbrott kan kantutlösas eller nivåutlösas. När ett avbrott inträffar utför mikrokontrollen avbrottstjänstrutinen så att minnesplatsen motsvarar avbrottet som möjliggör det. Avbrottet som motsvarar minnesplatsen ges i avbrottsvektortabellen nedan.

Avbryt vektortabellen

Avbryt vektortabellen

Avbryt strukturen hos 8051 Micro-styrenhet

Vid 'RESET' blir alla avbrott avaktiverade och därför måste alla dessa avbrott aktiveras av en programvara. I alla dessa fem avbrott, om någon eller alla är aktiverade, ställer detta in motsvarande avbrottsflaggor som visas i figuren. Alla dessa avbrott kan ställas in eller raderas bitvis i något specialfunktionsregister som är Interrupt Enabled (IE), och detta beror i sin tur på prioriteten, som körs av IP-interruptprioritetsregister.


Avbryt strukturen för 8051 mikrokontroller

Avbryt strukturen för 8051 mikrokontroller

Interrupt Enable (IE) Register: Detta register ansvarar för att aktivera och avaktivera avbrottet. Det är ett lite adresserbart register där EA måste ställas in på ett för att möjliggöra avbrott. Motsvarande bit i detta register möjliggör särskilda avbrott som timer, externa och seriella ingångar. I nedanstående IE-register aktiverar bit motsvarande 1 avbrottet och 0 inaktiverar avbrottet.

Interrupt Enable (IE) Register

Interrupt Enable (IE) Register

Interrupt Priority Register (IP): Det är också möjligt att ändra prioritetsnivåerna för avbrotten genom att ställa in eller rensa motsvarande bit i Interrupt Priority (IP) -registret som visas i figuren. Detta gör att lågprioritetsavbrottet kan avbryta avbrottet med hög prioritet, men förbjuder avbrottet av ett annat avbrott med låg prioritet. På samma sätt kan högprioritetsavbrottet inte avbrytas. Om dessa avbrottsprioriteter inte är programmerade, kör mikrokontrollern på fördefinierat sätt och dess ordning är INT0, TF0, INT1, TF1 och SI.

IP-register

IP-register

TCON-register: Förutom ovanstående två register, specificerar TCON-registret typen av externt avbrott till 8051-mikrokontrollern, som visas i figuren. De två externa avbrotten, antingen kant eller nivå utlöst, specificerar av detta register av en uppsättning eller rensas av lämpliga bitar i det. Och det är också ett lite adresserbart register.

TCON-register

TCON-register

Avbryt programmering 8051

1.Timeravbrottsprogrammering

Timer 0 och Timer 1-avbrott genereras av timerregistrbitarna TF0 och TF1. Dessa avbrott programmering med C-kod involverar:

  • Välja timer genom att konfigurera TMOD-registret och dess driftsätt.
  • Välja och ladda initialvärdena för TLx och THx för lämpliga lägen.
  • Aktivera IE-register och motsvarande timerbit i den.
  • Ställa in timerkörningsbit för att starta timern.
  • Skriva subrutinen för timern under den tid som krävs och rensa timervärdet TRx i slutet av subrutinen.
Programmering av timeravbrott

Programmering av timeravbrott

2. extern hårdvaruprogrammering

8051 mikrokontroller består av två externa hårdvaruavbrott: INT0 och INT1 som diskuterats tidigare. Dessa aktiveras vid stift 3.2 och stift 3.3. Dessa kan kantutlösas eller nivåutlösas. Vid nivåutlösning möjliggör låg vid stift 3.2 avbrottet, medan vid stift 3.2 - hög till låg övergång möjliggör kantutlöst avbrott. Denna kantutlösning eller nivåutlösning bestäms av TCON-registret som har diskuterats ovan. De programmeringsprocedur 8051 är som följande:

  • Aktivera motsvarande bit av externt avbrott i IE-registret.
  • Om det är nivåutlösande, skriv bara den underrutin som är lämplig för detta avbrott, eller aktivera TCON-registerbiten som motsvarar den kantutlösta avbrottet - oavsett om det är INT0 eller INT1.
Programmering av extern maskinvarustopp

Programmering av extern maskinvarustopp

3. Seriell kommunikation avbryta programmering

Avbrott i seriell kommunikation kommer in i bilden när det finns behov av att skicka eller ta emot data. Eftersom en avbrottsbit är inställd för både TI (Transfer Interrupt) och RI (Receiver Interrupt) -flaggor måste Interrupt Service-rutinen undersöka dessa flaggor för att känna till det faktiska avbrottet.

Den logiska ELLER-funktionen för dessa två flaggor (RI och TI) orsakar detta avbrott, och det rensas av programvaran ensam. Här används ett specialregister SCON för styrning kommunikation genom att aktivera motsvarande bitar i den.

  • Konfigurera IE-registret för att möjliggöra seriell avbrott
  • Konfigurera SCON-registret för mottagning eller överföring
  • Skriv underrutin för detta avbrott med lämplig funktion och rensa TI- eller RI-flaggor med i denna rutin.
Programmering av seriell avbrott

Programmering av seriell avbrott

Allt handlar om avbrott i 8051 mikrokontroller, typer, deras struktur och programmering. Hoppas att du kanske har fått bra information från den här artikeln. Du kan också skriva till oss i kommentarfältet nedan för realtidsimplementering av mikrokontroller-projekt så att vi kan hjälpa dig för en bättre praktisk upplevelse.

Fotokrediter