8051 mikrokontroller on endiselt üks laialdasemalt tunnustatud ja põhilisi manustatud kontrollereid digitaalses elektroonikas. Selles artiklis käsitletakse 8051 mikrokontrolleri tihvti detaile, sisemist arhitektuuri, plokkdiagrammi selgitust, spetsifikatsioone, rakendusi, võrdlust 8085 mikroprotsessoritega ja palju muud.

8051 mikrokontrolleri põhiseade
8051 mikrokontroller on 8-bitine manussüsteemikontroller, mille arendas algselt Intel ja mis ühendab protsessori, mälu, sisend/väljund pordid, taimerid ja kommunikatsiooniliidesed üheks kiibiks. See on loodud elektroonikaseadmete juhtimiseks, täites programmeeritud käske ja suheldes otse riistvarakomponentidega. Erinevalt üldotstarbelisest arvutiprotsessorist on 8051 ehitatud spetsiaalselt spetsiaalseteks juhtimisülesanneteks, nagu sensorite lugemine, ekraanide juhtimine, mootorite haldamine, sidesignaalide käsitlemine ja ajastatud operatsioonide sooritamine. Selle eesmärk on toimida manussüsteemide "ajuna", võimaldades automatiseeritud juhtimist ja otsuste tegemist kompaktsetes ja kulutõhusates elektroonilistes disainides.
8051 mikrokontrolleri tihvti detailid

| Pin nr. | PIN-nimi | Tüüp | Kirjeldus |
|---|---|---|---|
| 1 – 8 | P1.0 – P1.7 | I/O port (port 1) | Üldotstarbeline 8-bitine kahesuunaline I/O port. Basic 8051-s pole alternatiivseid funktsioone. |
| 9 | RST | Lähtestamine | Aktiivne kõrge lähtestus sisend. Kõrge impulss lähtestab mikrokontrolleri. |
| 10 – 17 | P3.0 – P3.7 | I/O port (port 3) | Topeltfunktsionaalne port. Sisaldab RXD, TXD, INT0, INT1, T0, T1, WR, RD. |
| 18 | XTAL2 | Kell | Väljund sisemisest ostsillaatorivõimendist. |
| 19 | XTAL1 | Kell | Sisend sisemisele ostsillaatorile ja kella generaatorile. |
| 20 | GND | Võimsus | Maandusreferents (0V). |
| 21 – 28 | P2.0 – P2.7 | I/O / Aadressibuss | Üldine sisend/väljund või kõrge järgu aadressibuss (A8–A15) välismälu kasutamisel. |
| 29 | PSEN | Kontroll | Programm Store Enable. Kasutatakse välise programmi mälu lugemiseks. |
| 30 | ALE/PROG | Kontroll | Aadressi lukustus on lubatud. Eraldab aadressi/andmed välismälu liideses. |
| 31 | EA/VPP | Kontroll | Välise ligipääsu lubamine. Valib sisemise või välise programmi mälu. |
| 32 – 39 | P0.0 – P0.7 | Sisend/väljund / Aadress/andmebuss | Multiplexitud madala järgu aadressi/andmebuss (AD0–AD7) või üldotstarbeline I/O. |
| 40 | VCC | Võimsus | +5V toiteallika sisend. |
8051 mikrokontrolleri arhitektuur

Allpool on toodud 8051 põhiarhitektuurilised plokid ja kuidas igaüks neist töötab.
Keskprotsessor (CPU)
CPU on 8051 mikrokontrolleri tuum ning vastutab käskude täitmise, aritmeetiliste ja loogiliste toimingute sooritamise ning kõigi sisemiste tegevuste koordineerimise eest. See sisaldab aritmeetilist loogikaühikut (ALU), akumulaatorit, B-registrit, programmi olekusõna (PSW), programmi loendurit (PC), andmeosutit (DPTR) ja virnaosutit (SP). CPU töötleb 8-bitiseid andmeid ning juhib käskude dekodeerimist, ajastust ja andmevoogu mälu ja perifeerseadmete vahel. Iga mikrokontrolleri poolt teostatav toiming toimub selle keskse protsessori kaudu.
Programmi mälu (Koodimälu)
Programmi mälu salvestab käsud, mida mikrokontroller täidab. Klassikalises 8051-s sisaldab see tavaliselt 4 KB sisemist ROM-i, mis säilitab salvestatud käsud isegi siis, kui toide on eemaldatud. Arhitektuur võimaldab ka laiendada kuni 64 KB välist programmimälu. Kuna 8051 järgib Harvardi arhitektuuri, on programmimälu eraldiseisev andmemälust, tagades organiseeritud käskude täitmise ja parema efektiivsuse.
Andmemälu (RAM)
Andmemälu kasutatakse ajutiseks salvestamiseks programmi täitmise ajal. Standardne 8051 sisaldab 128 baiti sisemist RAM-i, mis on jagatud registripankadeks, bitiaadressitavaks mäluks, üldotstarbeliseks RAM-iks ja virnaruumiks. See mälu salvestab muutujaid, vahetulemusi ja tööandmeid programmi käivitamise ajal. Välist andmemälu saab vajadusel laiendada kuni 64 KB-ni suuremate rakenduste jaoks.
Sisend/väljund (I/O) pordid
8051 sisaldab nelja 8-bitist paralleelset I/O porti: Port 0, Port 1, Port 2 ja Port 3. Need pordid võimaldavad mikrokontrolleril suhelda otse väliste seadmetega, nagu sensorid, ekraanid, lülitid ja mootorid. Mõnel portil on ka alternatiivsed funktsioonid. Näiteks võivad port 0 ja port 2 toimida aadressi- ja andmebussidena välismälu ligipääsu jaoks, samas kui port 3 pakub erifunktsioone nagu jadaside ja välised katkestused. See paindlik pordidisain teeb 8051 sobivaks erinevateks riistvaraliideste rakendusteks.
Taimerid/loendurid
8051 sisaldab kahte 16-bitist taimerit/loendurit: taimer 0 ja taimer 1. Neid taimereid kasutatakse viivituste genereerimiseks, ajavahemike mõõtmiseks, väliste sündmuste lugemiseks ja baudi kiiruste tootmiseks järjestikuse side jaoks. Need parandavad süsteemi efektiivsust, tehes ajastustoiminguid riistvaras, võimaldades protsessoril samaaegselt täita teisi ülesandeid.
Katkestuste kontrollisüsteem
Katkestussüsteem võimaldab 8051-l ajutiselt peatada oma praeguse ülesande, et reageerida kõrgema prioriteediga sündmustele. Mikrokontroller toetab viit katkestusallikat, sealhulgas kahte välist katkestust, kahte taimeri katkestust ja ühte jadasidekatkestust. Kui katkestus tekib, hüppab protsessor automaatselt eelmääratud teenindusrutiini juurde ja jätkab põhiprogrammi pärast lõpetamist. See funktsioon parandab reageerimisvõimet reaalajas rakendustes.
Jadakommunikatsiooniliides
8051 sisaldab sisseehitatud täisdupleks-UART-i (Universal Asünkroonne vastuvõtja/saatja) jadasideks. See võimaldab mikrokontrolleril edastada ja vastu võtta andmeid spetsiaalsete TXD ja RXD kontaktide kaudu. Seda funktsiooni kasutatakse laialdaselt suhtlemiseks arvutite, kommunikatsioonimoodulite ja teiste mikrokontrolleritega.
Ostsillaator ja kella skeem
Ostsillaatori ahel tagab kella signaali, mis on vajalik käskude täitmiseks ja perifeerse töö jaoks. 8051 kasutab väliseid kristallühendusi XTAL1 ja XTAL2 tihvtide kaudu, et genereerida stabiilseid kellaimpulsse. Need kella impulsid sünkroniseerivad kõik sisemised toimingud ja määravad käskude täitmise kiiruse.
Sisemine bussisüsteem
Sisemine bussisüsteem ühendab protsessori, mälu ja perifeerseadmed mikrokontrolleri sees. See sisaldab 8-bitist andmebussi, 16-bitist aadressibussi ja juhtsignaale. Andmebuss edastab andmeid, aadressibuss valib mälu asukohad ja juhtliinid haldavad lugemis-/kirjutamisoperatsioone. See organiseeritud bussistruktuur tagab sujuva suhtluse sisemiste komponentide vahel.
Kuidas ühendada LED-i 8051 mikrokontrolleriga
Allolev diagramm näitab lihtsat LED-liidesahelat 8051 mikrokontrolleriga. Üks üldotstarbeline I/O tihvt (P1.0) juhib LED-i läbi 220Ω voolupiirava takisti. Takisti kaitseb LED-i liigse voolu eest ja takistab nii LED-i kui ka mikrokontrolleri tihvti kahjustamist. Kui väljundpin P1.0 on seatud KÕRGELE (loogika 1), voolab vool mikrokontrollerist läbi takisti ja LED-i maandusse, põhjustades LED-i helendamise. Kui tihvt on seatud MADALAKS (loogika 0), peatub vooluvool ja LED kustub. See näitab lihtsat digitaalset väljundjuhtimist 8051 abil.

Vooluring sisaldab ka olulisi tugikomponente mikrokontrolleri nõuetekohaseks toimimiseks. Lähtestusahel, mis koosneb kondensaatorist (10μF) ja takistist, tagab, et 8051 käivitub õigesti, kui see sisse lülitatakse. Kristallostsillaator (11,0592 MHz) koos kahe 33pF kondensaatoriga tagab käsu täitmiseks vajaliku kella signaali. Tõmbetakistid, mis on ühendatud Port 0-ga, tagavad stabiilsed loogikatasemed, kui neid kasutatakse I/O liinidena. Koos moodustavad need komponendid täieliku ja funktsionaalse LED-liideslahenduse, kasutades 8051 mikrokontrollereid.
8051 mikrokontrolleri tehnilised andmed
| Kategooria | Spetsifikatsioon | Üksikasjad |
|---|---|---|
| CPU arhitektuur | 8-bitine protsessor | Töötleb 8-bitiseid andmeid; sisaldab akumulaatori (A) ja B registrit |
| Programmi mälu | Sisemine ROM | 8 KB välklamp (tüüpilised täiustatud 8051 variandid); laiendatav kuni 64 KB välismälu |
| Andmemälu | Sisemine RAM | Kokku 256 baiti (128 baiti üldmälu + 128 baiti SFR ala) |
| Üldmälu (00H–7FH) | 128 baiti | Sisaldab 4 registripanka (R0–R7), bitiaadressitavat ala ja üldotstarbelist RAM-i |
| Erifunktsioonide registrid (80H–FFH) | 128 baiti | Juhib taimereid, jadaporte, I/O porte, katkestusi ja süsteemifunktsioone |
| Registreeri pangad | 4 panka | Igas pangas on 8 üldotstarbelist registrit (R0–R7) |
| Stack Pointer (SP) | 8-bitine | Punktid virna asukohale RAM-is |
| Programmi loendur (PC) | 16-bitine | Hoiab järgmise käsu aadressi |
| Andmepointer (DPTR) | 16-bitine | Kasutatud välismälu aadressimiseks (DPH ja DPL) |
| I/O pordid | 32 I/O tihvti | Organiseeritud neljaks pordiks: P0, P1, P2, P3 (igaüks 8 bitti) |
| Taimerid/loendurid | 2 × 16-bitine | Taimer 0 ja taimer 1 viivituse genereerimiseks ja sündmuste lugemiseks |
| Katkestused | 5 katkestusallikat | 2 Väline (INT0, INT1) + 3 Sisemine (Timer0, Timer1, Serial) |
| Seeriaside | Täisdupleks UART | Eralda Tx (Saatja) ja Rx (Vastuvõtt) liinid |
| Ostsillaator | Kiibisisene ostsillaatori ahel | Kella genereerimiseks on vaja välist kristalli |
| Aadressibuss | 16-bitine | Toetab kuni 64 KB välismälu |
| Andmebuss | 8-bitine | Andmete edastamine nii sisemiselt kui ka väliselt |
| Juhtimisregistrid | Mitmekordne | Sisaldab PCON, SCON, TMOD, TCON, IE, IP ja teisi |
| Töörežiim | Harvardi arhitektuur | Eraldi programmi- ja andmemäluruumid |
8051 mikrokontrolleri rakendused
• Tööstusautomaatikasüsteemid – 8051 mikrokontrollerit kasutatakse mootorite, releede ja sensorite juhtimiseks automatiseeritud tootmisliinides ja masinate juhtimissüsteemides.
• Kodumasinad – Haldab ajastust, temperatuuri reguleerimist ja kasutaja sisendi töötlemist seadmetes nagu pesumasinad ja mikrolaineahjud.
• Sisseehitatud juhtimissüsteemid – 8051 mikrokontroller toimib põhikontrollerina spetsiaalsetes manusrakendustes, mis nõuavad stabiilset ja ennustatavat tööd.
• Robootikaprojektid – see loeb andurandmeid ja juhib ajameid, muutes selle sobivaks väikesteks roboti- ja automaatikaprojektideks.
• Tarbeelektroonika – 8051 mikrokontroller on sageli integreeritud elektroonilistesse mänguasjadesse, pulditesse ja digitaalsetesse kelladesse signaali juhtimiseks ja loogikatöötlemiseks.
• Sidesüsteemid – toetab jadakommunikatsiooni arvutite, kommunikatsioonimoodulite ja teiste mikrokontrolleritega suhtlemiseks.
• Meditsiiniinstrumendid – 8051 mikrokontrollerit kasutatakse lihtsas jälgimises ja madala energiatarbega diagnostikaseadmetes.
• Autorakendused – See haldab põhilisi juhtimisfunktsioone, nagu ekraanihaldus ja sensorite jälgimine sõidukites.
• Turvasüsteemid – 8051 mikrokontrollerit kasutatakse alarmisüsteemides, klaviatuuripõhistes lukkudes ja juurdepääsukontrolliseadmetes.
• Haridus- ja koolitusprojektid – seda kasutatakse laialdaselt akadeemilistes laborites mikrokontrollerite programmeerimise ja sisseehitatud süsteemide disaini aluste õpetamiseks.
8051 mikrokontroller vs 8085 mikroprotsessor
| Funktsioon | 8051 mikrokontroller | 8085 mikroprotsessor |
|---|---|---|
| Tüüp | Mikrokontroller | Mikroprotsessor |
| Arhitektuur | Harvardi arhitektuur (eraldi kood ja andmemälu) | Von Neumanni arhitektuur (jagatud mälu koodi ja andmete jaoks) |
| Andmete laius | 8-bitine | 8-bitine |
| CPU | Integreeritud 8-bitine protsessor kiibisiseste perifeerseadmetega | Ainult 8-bitine protsessor (sisseehitatud lisaseadmeid pole) |
| Programmi mälu | Tavaliselt 4KB–8KB sisemine ROM (laiendatav kuni 64KB väliseks) | Sisemist ROM-i ei ole (vajab välismälu) |
| Andmemälu | 128–256 baiti sisemine RAM (laiendatav) | Sisemist RAM-i puudub (vajab välist RAM-i) |
| I/O pordid | 32 sisseehitatud I/O liini (4 porti) | Sisseehitatud I/O porte ei ole (vajab väliseid liideskiipe) |
| Taimerid/loendurid | 2 × 16-bitist taimerit | Sisemisi taimereid ei ole (väliseid taimereid on vaja) |
| Katkestused | 5 katkestusallikat | 5 katkestussisendit (TRAP, RST 7.5, 6.5, 5.5, INTR) |
| Seeriaside | Sisseehitatud täisdupleks UART | Sisseehitatud seriaalport puudub |
| Ostsillaator | Kiibisisene ostsillaatori skeem | Vajab välist kellageneraatorit |
| Stack | Sisemine virn RAM-is | Stacki hallamine välises RAM-is |
| Aadressibuss | 16-bitine (toetab kuni 64KB välismälu) | 16-bitine (toetab kuni 64KB mälu) |
| Andmebuss | 8-bitine | 8-bitine |
| Perifeerne integratsioon | Väga integreeritud (taimerid, jada, I/O, katkestused) | Minimaalne integratsioon (ainult CPU) |
| Välised komponendid vajalikud | Vähem väliseid komponente | Vajab mitut välist tugi-IC-d |
| Energiatarve | Madal | Kõrgem võrreldes mikrokontrolleripõhiste süsteemidega |
| Rakenduse fookus | Manussüsteemid ja juhtimisrakendused | Üldotstarbeline arvutus ja süsteemide arendus |
| Keerukus | Lihtne ja kompaktne süsteemidisain | Keerukam süsteemidisain |
| Hind | Madalam süsteemi kogukulu | Kõrgem süsteemikulu väliste komponentide tõttu |
| Tüüpilised kasutusjuhtumid | Kodumasinad, robootika, automatiseerimine, manusseadmed | Varased arvutisüsteemid, treeningkomplektid, protsessoripõhised süsteemid |
| Tutvustatud aasta | 1980 (Inteli poolt) | 1976 (Inteli poolt) |
8051 eelised ja piirangud
8051 eelised
• Lihtne ja arusaadav arhitektuur
• Integreeritud protsessor, RAM, ROM, taimerid ja I/O pordid ühel kiibil
• Madala hinnaga ja laialdaselt kättesaadav
• Madal energiatarve
• Sisseehitatud jadasidetugi
• Mitmed katkestusallikad reaalajas rakendusteks
• Laiendatava välismälu tugi (kuni 64KB)
• Suur arendustööriistade ja õppevahendite ökosüsteem
• Stabiilne ja usaldusväärne manustatud juhtimisülesannete jaoks
8051 piirangud
• Piiratud sisemine RAM ja programmimälu
• 8-bitine töötlemine piirab arvutusvõimekust
• Madalam töötlemiskiirus võrreldes tänapäevaste mikrokontrolleritega
• Põhiversioonides pole sisseehitatud ADC ega DAC-i
• Piiratud lisaseadmed võrreldes arenenud MCU-dega (nt ARM, AVR)
• Nõuab keerukate rakenduste jaoks väliseid komponente
• Ei ole ideaalne kõrge jõudlusega või andmemahukate süsteemide jaoks
• Aegunud arhitektuur võrreldes tänapäevaste 32-bitiste kontrolleritega
Kokkuvõte
8051 mikrokontrolleri Harvardi arhitektuuri, integreeritud protsessori, organiseeritud mälustruktuuri, programmeeritavate I/O portide, taimerite, katkestussüsteemi ja jadakommunikatsiooni toe abil pakub see täielikku ja tõhusat lahendust spetsiaalsetele juhtimisrakendustele. Kuigi kaasaegsed mikrokontrollerid pakuvad kõrgemat jõudlust ja arenenumaid lisaseadmeid, on 8051 väärtuslik tänu lihtsusele, madalale hinnale, töökindlusele ja tugevale hariduslikule tähendusele.
Korduma kippuvad küsimused [KKK]
Q1. Milliseid programmeerimiskeeli kasutatakse 8051 mikrokontrolleri jaoks?
8051 on tavaliselt programmeeritud Embedded C ja assembleri keeles. Manustatud C on laialdaselt kasutusel tänu lihtsamale silumisele ja kaasaskantavusele, samas kui Assembly pakub täpset riistvaratasandi juhtimist.
Q2. Millised tarkvaratööriistad on 8051 programmeerimiseks parimad?
Populaarsed tööriistad on Keil μVision, Proteus (simulatsiooniks) ja SDCC (Small Device C kompilaator). Keil on kõige laialdasemalt kasutatav professionaalse arengu keskkond.
Q3. Mis on 8051 maksimaalne taktsagedus?
Klassikaline 8051 töötab tavaliselt kuni 12 MHz, samas kui kaasaegsed täiustatud variandid võivad sõltuvalt tootjast töötada palju suurematel kiirustel.
Q4. Kas 8051 saab ühenduda kaasaegsete sensorite ja moodulitega?
Jah, 8051 suudab suhelda kaasaegsete sensoritega digitaalse I/O, UART, SPI (tarkvara kaudu) ja I2C (bit-banging või välised IC-d) abil, kuigi see võib vajada täiendavaid liideskomponente.
Q5. Kuidas on 8051 toidetud ja mis on selle tööpinge?
Standardne 8051 töötab +5V juures. Siiski toetavad mõned kaasaegsed tuletised madalamaid pingeid, näiteks 3,3V madala energiatarbega rakenduste puhul.
Q6. Millised on tänapäeval levinumad 8051 perekonna variandid?
Populaarsed variandid hõlmavad AT89C51, AT89S52 ja teisi täiustatud 8051-ühilduvaid mikrokontrollereid erinevatelt tootjatelt, pakkudes rohkem mälu ja funktsioone.
Q7. Kuidas erineb 8051 tänapäevastest mikrokontrolleritest nagu ARM Cortex-M?
8051 on 8-bitine kontroller, mis on loodud lihtsateks juhtimisülesanneteks, samas kui ARM Cortex-M seadmed on 32-bitised protsessorid, millel on suurem kiirus, arenenud lisaseadmed ja suurem mälumaht.