Avbryter 8051 mikrokontroller og struktur og programmering

Prøv Instrumentet Vårt For Å Eliminere Problemer





De kraftigste og viktigste funksjonene er avbrudd i 8051 mikrokontroller . I de fleste sanntidsprosesser, for å håndtere visse forhold riktig, må den faktiske oppgaven være stanset i noen tid - den tar nødvendige tiltak - og må deretter gå tilbake til hovedoppgaven. For å utføre en slik type programmer, er avbrudd nødvendig. Det skiller seg helt fra avstemningsmetoden der prosessoren må sjekke hver enhet i rekkefølge og spørre om tjenesten er nødvendig eller ikke mens den bruker mer prosessortid.

Avbryter i 8051 mikrokontroller

Avbryter i 8051 mikrokontroller



Avbrudd i 8051 mikrokontroller er mer ønskelig for å redusere den vanlige statuskontrollen av grensesnittene eller innebygde enheter. Interrupt er en hendelse som midlertidig avbryter hovedprogrammet, overfører kontrollen til en spesiell kodeseksjon, utfører den hendelsesrelaterte funksjonen og gjenopptar hovedprogramflyten der den slapp.


Avbrudd er av forskjellige typer som programvare og maskinvare, maskerbare og ikke-maskerbare, faste og vektoravbrudd, og så videre. Interrupt Service Routine (ISR) kommer inn i bildet når avbrudd oppstår, og ber prosessoren om å ta passende tiltak for avbruddet, og etter ISR-utførelse hopper kontrolleren inn i hovedprogrammet.



Typer av avbrudd i 8051 mikrokontroller

8051-mikrokontrolleren kan gjenkjenne fem forskjellige hendelser som får hovedprogrammet til å avbryte fra den normale kjøringen. Disse fem kildene til avbrudd i 8051 er:

  1. Timer 0 overløpsavbrudd- TF0
  2. Timer 1 overløpsavbrudd - TF1
  3. Ekstern maskinvareavbrudd- INT0
  4. Ekstern maskinvareavbrudd- INT1
  5. Seriell kommunikasjonsavbrudd - RI / TI

Timer- og seriellavbrudd genereres internt av mikrokontrolleren, mens de eksterne avbruddene genereres av ytterligere grensesnitt enheter eller brytere som er eksternt koblet til mikrokontrolleren. Disse eksterne avbruddene kan kantutløses eller nivåutløses. Når det oppstår et avbrudd, utfører mikrokontrolleren avbruddsrutiner slik at minneplasseringen tilsvarer avbruddet som muliggjør det. Avbruddet som tilsvarer minneplasseringen er gitt i avbruddsvektortabellen nedenfor.

Avbryt vektortabellen

Avbryt vektortabellen

Interrupt Structure of 8051 Micro controller

Ved 'RESET' blir alle avbrudd deaktivert, og derfor må alle disse avbruddene være aktivert av en programvare. I alle disse fem avbruddene, hvis noen eller alle er aktivert, setter dette de tilsvarende avbruddsflaggene som vist i figuren. Alle disse avbruddene kan settes eller tømmes bitvis i et spesialfunksjonsregister som er Interrupt Enabled (IE), og dette avhenger igjen av prioriteten, som utføres av IP-avbruddsprioritetsregisteret.


Avbryt strukturen til 8051 mikrokontroller

Avbryt strukturen til 8051 mikrokontroller

Interrupt Enable (IE) Register: Dette registeret er ansvarlig for å aktivere og deaktivere avbruddet. Det er et litt adresserbart register der EA må være satt til ett for å muliggjøre avbrudd. Den tilsvarende biten i dette registeret muliggjør spesiell avbrudd som timer, eksterne og serielle innganger. I IE-registeret nedenfor aktiverer bit tilsvarende 1 avbruddet og 0 deaktiverer avbruddet.

Interrupt Enable (IE) Register

Interrupt Enable (IE) Register

Interrupt Priority Register (IP): Det er også mulig å endre prioritetsnivåene for avbruddene ved å sette eller fjerne den tilsvarende biten i Interrupt prioritetsregistret (IP) som vist i figuren. Dette tillater avbrudd med lav prioritet å avbryte avbrudd med høy prioritet, men forbyr avbrudd av en annen avbrudd med lav prioritet. Tilsvarende kan ikke høyprioritetsavbruddet avbrytes. Hvis disse avbruddsprioritetene ikke er programmert, utfører mikrokontrolleren på forhåndsdefinert måte og dens rekkefølge er INT0, TF0, INT1, TF1 og SI.

IP-register

IP-register

TCON-register: I tillegg til de ovennevnte to registerene, spesifiserer TCON-registeret typen ekstern forstyrrelse til 8051-mikrokontrolleren, som vist i figuren. De to eksterne avbruddene, enten kant eller nivå utløst, spesifiserer av dette registeret av et sett, eller fjernes av passende biter i det. Og det er også et lite adresserbart register.

TCON-register

TCON-register

Avbryt programmering i 8051

1.Timer Interrupt Programmering

Timer 0 og Timer 1-avbrudd genereres av tidtakerregistreringsbitene TF0 og TF1. Disse avbryter programmering etter C-kode involverer:

  • Velge tidtakeren ved å konfigurere TMOD-registeret og dets driftsmåte.
  • Velge og laste inn startverdiene for TLx og THx for passende modus.
  • Aktivering av IE-registerene og den tilsvarende tidtakerbiten i den.
  • Stille inn tidtakeren for å starte timeren.
  • Å skrive underrutinen for tidtakeren for den tid som kreves, og fjerne tidverdien TRx på slutten av underrutinen.
Timer Interrupt Programming

Timer Interrupt Programming

2. ekstern maskinvareavbruddsprogrammering

8051 mikrokontrollere består av to eksterne maskinvareavbrudd: INT0 og INT1 som diskutert tidligere. Disse er aktivert på pin 3.2 og pin 3.3. Disse kan kantutløses eller nivåutløses. I nivåutløsing muliggjør lav ved pin 3.2 avbrudd, mens ved pin 3.2 - høy til lav overgang muliggjør kantutløst avbrytelse. Denne kantutløseren eller nivåutløsningen avgjøres av TCON-registeret som er diskutert ovenfor. De programmeringsprosedyre i 8051 er som følgende:

  • Aktiver den tilsvarende biten av ekstern avbrudd i IE-registeret.
  • Hvis det er nivåutløsende, er det bare å skrive underrutinen som er passende for dette avbruddet, ellers aktiver TCON-registerbiten som tilsvarer den kantutløste avbruddet - enten det er INT0 eller INT1.
Ekstern maskinvareavbruddsprogrammering

Ekstern maskinvareavbruddsprogrammering

3. seriell kommunikasjon avbryte programmering

Serielle kommunikasjonsavbrudd kommer inn i bildet når det er behov for å sende eller motta data. Siden en avbrytningsbit er satt for både TI (Transfer Interrupt) og RI (Receiver Interrupt) -flagg, må Interrupt Service-rutinen undersøke disse flaggene for å kjenne den faktiske avbruddet.

Den logiske ELLER-operasjonen av disse to flaggene (RI og TI) forårsaker denne forstyrrelsen, og den blir fjernet av programvaren alene. Her brukes et spesialregister SCON for styring kommunikasjon ved å aktivere de tilsvarende bitene i den.

  • Konfigurer IE-registeret for aktivering av seriell avbrudd
  • Konfigurer SCON-registeret for mottak eller overføring
  • Skriv underrutine for dette avbruddet med passende funksjon og fjern TI- eller RI-flagg med i denne rutinen.
Seriell avbruddsprogrammering

Seriell avbruddsprogrammering

Dette handler om avbrudd i 8051 mikrokontroller, typer, deres struktur og programmering. Håper du kanskje har mottatt god informasjon fra denne artikkelen. Du kan også skrive til oss i kommentarfeltet nedenfor for sanntidsimplementering av mikrokontroller-prosjekter slik at vi kan hjelpe deg for en bedre praktisk opplevelse.

Fotokreditt