8051-mikrokontrolleri on edelleen yksi tunnetuimmista ja perustavanlaatuisimmista upotetuista ohjaimista digitaalisessa elektroniikassa. Tässä artikkelissa käsitellään 8051-mikrokontrollerin pinout-yksityiskohtia, sisäistä arkkitehtuuria, lohkokaavion selitystä, teknisiä tietoja, sovelluksia, vertailua 8085-mikroprosessoreihin ja monia muita.

8051 Microcontroller Basic
8051-mikrokontrolleri on Intelin alun perin kehittämä 8-bittinen sulautettu järjestelmäohjain, joka yhdistää prosessorin, muistin, tulo-/lähtöportit, ajastimet ja viestintäliitännät yhdeksi sirulle. Se on suunniteltu ohjaamaan elektronisia laitteita suorittamalla ohjelmoituja käskyjä ja olemalla suoraan vuorovaikutuksessa laitteistokomponenttien kanssa. Toisin kuin yleiskäyttöinen tietokoneprosessori, 8051 on suunniteltu nimenomaan omistuksiin ohjaustehtäviin, kuten antureiden lukemiseen, näyttöjen ohjaamiseen, moottoreiden hallintaan, viestintäsignaalien käsittelyyn ja ajastettuihin toimintoihin. Sen tarkoituksena on toimia sulautettisten järjestelmien "aivoina", mahdollistaen automaattisen ohjauksen ja päätöksenteon kompakteissa, kustannustehokkaissa elektronisissa suunnitteluissa.
8051-mikrokontrollerin pinout-tiedot

| Pinni nro. | Pinnin nimi | Tyyppi | Kuvaus |
|---|---|---|---|
| 1 – 8 | P1.0 – P1.7 | I/O-portti (portti 1) | Yleiskäyttöinen 8-bittinen kaksisuuntainen I/O-portti. Perus 8051:ssä ei ole vaihtoehtoisia toimintoja. |
| 9 | RST | Nollaus | Aktiivinen korkea nollaussyöttö. Korkea pulssi nollaa mikrokontrollerin. |
| 10 – 17 | P3.0 – P3.7 | I/O-portti (portti 3) | Kaksitoiminen portti. Sisältää RXD, TXD, INT0, INT1, T0, T1, WR, RD. |
| 18 | XTAL2 | Kello | Lähtö sisäisestä oskillaattorivahvistimesta. |
| 19 | XTAL1 | Kello | Syöte sisäiseen oskillaattoriin ja kellogeneraattoriin. |
| 20 | GND | Sähkö | Maadoitusviite (0V). |
| 21 – 28 | P2.0 – P2.7 | I/O / Osoiteväylä | Yleinen I/O tai korkean asteen osoiteväylä (A8–A15) ulkoista muistia käytettäessä. |
| 29 | PSEN | Ohjaus | Ohjelma Store Enable. Käytetään ulkoisen ohjelmamuistin lukemiseen. |
| 30 | ALE/PROG | Ohjaus | Osoitteen lukko aktivoi. Erottaa osoitteen/datan ulkoisessa muistiliitännässä. |
| 31 | EA/VPP | Ohjaus | Ulkoinen pääsy mahdollista. Valitsee sisäisen tai ulkoisen ohjelmamuistin. |
| 32 – 39 | P0.0 – P0.7 | I/O / Osoite/Dataväylä | Multiplexattu matalan asteen osoite/dataväylä (AD0–AD7) tai yleiskäyttöinen I/O. |
| 40 | VCC | Sähkö | +5V virtalähteen tulo. |
8051-mikrokontrollerin arkkitehtuuri

Alla on 8051:n ydinarkkitehtoniset lohkot ja miten kukin niistä toimii.
Keskusprosessoriyksikkö (CPU)
CPU on 8051-mikrokontrollerin ydin ja vastaa käskyjen suorittamisesta, aritmeettisten ja loogisten operaatioiden suorittamisesta sekä kaikkien sisäisten toimintojen koordinoinnista. Se sisältää aritmeettisen logiikkayksikön (ALU), akkumulaattorin, B-rekisterin, ohjelmatilasanan (PSW), ohjelmalaskurin (PC), dataosoittimen (DPTR) ja pinoosoittimen (SP). Suoritin käsittelee 8-bittistä dataa ja ohjaa käskyjen dekoodausta, ajoitusta sekä tiedonkulkua muistin ja oheislaitteiden välillä. Jokainen mikrokontrollerin suorittama operaatio tapahtuu tämän keskitetyn prosessoriyksikön kautta.
Ohjelmamuisti (Koodimuisti)
Ohjelman muisti tallentaa mikrokontrollerin suorittamat käskyt. Klassisessa 8051:ssä siinä on tyypillisesti 4 KB sisäistä ROMia, joka säilyttää tallennetut käskyt, vaikka virta katkaistaisiin. Arkkitehtuuri mahdollistaa myös jopa 64 KB ulkoisen ohjelmamuistin laajentamisen. Koska 8051 noudattaa Harvardin arkkitehtuuria, ohjelmamuisti on erillinen datamuistista, mikä takaa järjestetyn käskysuorituksen ja paremman tehokkuuden.
Datamuisti (RAM)
Datamuistia käytetään väliaikaiseen tallennukseen ohjelman suorituksen aikana. Standardi 8051 sisältää 128 tavua sisäistä RAM-muistia, joka on jaettu rekisteripankkeihin, bittiosoitettaviin muistiin, yleiskäyttöisiin RAM-muistiin ja pinotilaan. Tämä muisti tallentaa muuttujat, välitulokset ja operatiiviset tiedot ohjelman aikana. Ulkoista datamuistia voidaan myös laajentaa jopa 64 KB:iin tarvittaessa suuremmissa sovelluksissa.
Tulo/lähtö (I/O) -portit
8051:ssä on neljä 8-bittistä rinnakkaista I/O-porttia: Portti 0, Portti 1, Portti 2 ja Portti 3. Nämä portit mahdollistavat mikrokontrollerin suoran liittämisen ulkoisiin laitteisiin, kuten antureihin, näyttöihin, kytkimiin ja moottoreihin. Joillakin porteilla on myös vaihtoehtoisia toimintoja. Esimerkiksi portti 0 ja portti 2 voivat toimia osoite- ja dataväylinä ulkoisen muistin käyttöön, kun taas portti 3 tarjoaa erityistoimintoja, kuten sarjaviestinnän ja ulkoiset keskeytykset. Tämä joustava porttirakenne tekee 8051:stä sopivan erilaisiin laitteistoliitäntäsovelluksiin.
Ajastimet/laskurit
8051:ssä on kaksi 16-bittistä ajastinta/laskuria: Timer 0 ja Timer 1. Näitä ajastimia käytetään aikaviiveiden tuottamiseen, aikavälien mittaamiseen, ulkoisten tapahtumien laskemiseen ja baudinopeuksien tuottamiseen sarjaviestintään. Ne parantavat järjestelmän tehokkuutta hoitamalla laitteiston ajoitusoperaatioita, jolloin suoritin voi suorittaa muita tehtäviä samanaikaisesti.
Keskeytysohjausjärjestelmä
Keskeytysjärjestelmä antaa 8051:lle mahdollisuuden tilapäisesti pysäyttää nykyinen tehtävä vastatakseen korkeamman prioriteetin tapahtumiin. Mikrokontrolleri tukee viittä keskeytyslähdettä, mukaan lukien kaksi ulkoista keskeytystä, kaksi ajastinkeskeytystä ja yhtä sarjaviestintäkatkosta. Kun keskeytys tapahtuu, suoritin siirtyy automaattisesti ennalta määriteltyyn palvelurutiiniin ja jatkaa pääohjelmaa sen päätyttyä. Tämä ominaisuus parantaa reagointikykyä reaaliaikaisissa sovelluksissa.
Sarjallinen viestintäliitäntä
8051-mallissa on sisäänrakennettu täysduplex-UART (Universal Asynchronous Receiver/Transmitter) sarjalliseen dataviestintään. Se mahdollistaa mikrokontrollerin tiedon lähettämisen ja vastaanottamisen omien TXD- ja RXD-nastojen kautta. Tätä ominaisuutta käytetään laajasti viestintään tietokoneiden, viestintämoduulien ja muiden mikrokontrollerien kanssa.
Oskillaattori ja kellopiiri
Oskillaattoripiiri tarjoaa kellosignaalin, joka tarvitaan käskyn suorittamiseen ja oheislaitteiden käyttöön. 8051 käyttää ulkoisia kideliitäntöjä XTAL1- ja XTAL2-nastojen kautta tuottaakseen vakaita kellopulsseja. Nämä kellopulssit synkronoivat kaikki sisäiset toiminnot ja määrittävät käskyn suoritusnopeuden.
Sisäinen väyläjärjestelmä
Sisäinen väyläjärjestelmä yhdistää prosessorin, muistin ja oheislaitteet mikrokontrollerin sisällä. Se sisältää 8-bittisen dataväylän, 16-bittisen osoiteväylän ja ohjaussignaalit. Dataväylä siirtää dataa, osoiteväylä valitsee muistipaikat ja ohjauslinjat hallitsevat luku- ja kirjoitustoimintoja. Tämä järjestelmällinen väylärakenne varmistaa sujuvan viestinnän sisäisten komponenttien välillä.
Kuinka liittää LED 8051-mikrokontrolleriin
Alla oleva kaavio näyttää perus LED-liitäntäpiirin 8051-mikrokontrollerin kanssa. Yksi yleiskäyttöisistä I/O-nastoista (P1.0) ohjataan LEDiä 220Ω:n virranrajoitusvastuksen kautta. Vastus suojaa LEDiä liialliselta virralta ja estää sekä LEDin että mikrokontrollerin pinnin vaurioitumisen. Kun lähtönasta P1.0 on asetettu KORKEAKSI (logiikka 1), virta kulkee mikrokontrollerista vastuksen ja LEDin kautta maahan, mikä saa LEDin hehkumaan. Kun pinni on asetettu MATALAKSI (logiikka 0), virta pysähtyy ja LED sammuu. Tämä osoittaa yksinkertaisen digitaalisen ulostulon ohjauksen 8051:llä.

Piiriin kuuluu myös olennaiset tukikomponentit mikrokontrollerin asianmukaiselle toiminnalle. Nollauspiiri, joka koostuu kondensaattorista (10μF) ja vastuksesta, varmistaa, että 8051 käynnistyy oikein, kun se käynnistetään. Kideoskillaattori (11,0592 MHz), jossa on kaksi 33pF-kondensaattoria, tuottaa käskyn suorittamiseen tarvittavan kellosignaalin. Pull-up-vastukset, jotka on liitetty porttiin 0, varmistavat vakaat logiikkatasot I/O-linjoina käytettäessä. Yhdessä nämä komponentit muodostavat täydellisen ja toimivan LED-liitäntäjärjestelmän 8051-mikrokontrollereilla.
8051-mikrokontrollerin tekniset tiedot
| Kategoria | Tekniset tiedot | Yksityiskohdat |
|---|---|---|
| CPU-arkkitehtuuri | 8-bittinen prosessori | Käsittelee 8-bittistä dataa; sisältää akkumulaattorin (A) ja B-rekisterin |
| Ohjelmamuisti | Sisäinen ROM | 8 KB Flash (tyypilliset parannetut 8051-versiot); laajennettavissa jopa 64 KB ulkoiseen muistiin |
| Datamuisti | Sisäinen RAM | 256 tavua yhteensä (128 tavua yleistä RAM-levyä + 128 tavua SFR-aluetta) |
| Yleinen RAM (00H–7FH) | 128 tavua | Sisältää 4 rekisteripankkia (R0–R7), bittiosoitealueen ja yleiskäyttöisen RAM-muistin |
| Erikoisfunktiorekisterit (80H–FFH) | 128 tavua | Ohjaa ajastimia, sarjaportteja, I/O-portteja, keskeytyksiä ja järjestelmätoimintoja |
| Rekisteröi pankit | 4 pankkia | Jokaisessa pankissa on 8 yleiskäyttöistä rekisteriä (R0–R7) |
| Pino osoitin (SP) | 8-bittinen | Pisteet pinon sijaintiin RAM-muistissa |
| Ohjelmalaskuri (PC) | 16-bittinen | Pitää seuraavan käskyn osoitteen |
| Dataosoitin (DPTR) | 16-bittinen | Käytetty ulkoisen muistin osoitukseen (DPH & DPL) |
| I/O-portit | 32 I/O-nastaa | Jaettu neljään porttiin: P0, P1, P2, P3 (8 bittiä kukin) |
| Ajastimet/laskurit | 2 × 16-bittinen | Ajastin 0 ja Ajastin 1 viiveen generointiin ja tapahtumien laskemiseen |
| Keskeytykset | 5 Keskeytyslähteet | 2 Ulkoinen (INT0, INT1) + 3 Sisäinen (Timer0, Timer1, Serial) |
| Sarjaviestintä | Täysdupleksi UART | Erottele Tx (Lähetys) ja Rx (Vastaanota) -linjat |
| Oskillaattori | Sirun sisäinen oskillaattoripiiri | Tarvitaan ulkoinen kide kellon tuottamiseen |
| Osoitebussi | 16-bittinen | Tukee jopa 64 KB ulkoista muistia |
| Dataväylä | 8-bittinen | Tiedonsiirto sekä sisäisesti että ulkoisesti |
| Ohjausrekisterit | Moninkertainen | Sisältää PCON, SCON, TMOD, TCON, IE, IP ja muita |
| Käyttötila | Harvardin arkkitehtuuri | Erilliset ohjelma- ja tietomuistitilat |
8051-mikrokontrollerin sovellukset
• Teollisuusautomaatiojärjestelmät – 8051-mikrokontrolleria käytetään moottoreiden, releiden ja antureiden ohjaukseen automatisoiduissa tuotantolinjoissa ja koneiden ohjausjärjestelmissä.
• Kodinkoneet – Se hallinnoi ajoitusta, lämpötilan säätelyä ja käyttäjän syötteen käsittelyä laitteissa, kuten pesukoneissa ja mikroaaltouuneissa.
• Sulautetut ohjausjärjestelmät – 8051-mikrokontrolleri toimii ydinohjaimena omistetuissa sulautetuissa sovelluksissa, jotka vaativat vakaata ja ennustettavaa toimintaa.
• Robotiikkaprojektit – Se lukee anturitietoja ja ohjaa toimilaitteita, mikä tekee siitä sopivan pieniin robotiikka- ja automaatioprojekteihin.
• Kulutuselektroniikka – 8051-mikrokontrolleri integroidaan yleisesti elektronisiin leluihin, kaukosäätimiin ja digitaalisiin kelloihin signaalinhallintaa ja logiikan käsittelyä varten.
• Viestintäjärjestelmät – Se tukee sarjaviestintää tietokoneiden, viestintämoduulien ja muiden mikrokontrollerien liitännässä.
• Lääketieteelliset instrumentit – 8051-mikrokontrolleria käytetään yksinkertaisissa monitoroinnissa ja vähävirtaisissa diagnostiikkalaitteissa.
• Autosovellukset – Se hoitaa perusohjaustoiminnot, kuten näytön hallinnan ja anturien valvonnan ajoneuvoissa.
• Turvajärjestelmät – 8051-mikrokontrolleria käytetään hälytysjärjestelmissä, näppäimistöpohjaisissa lukkoissa ja kulunvalvontalaitteissa.
• Koulutus- ja koulutusprojektit – Sitä käytetään laajasti akateemisissa laboratorioissa mikrokontrolleriohjelmoinnin ja sulautettujen järjestelmien suunnittelun perusteiden opettamiseen.
8051-mikrokontrolleri vs 8085-mikroprosessori
| Ominaisuus | 8051-mikrokontrolleri | 8085 Mikroprosessori |
|---|---|---|
| Tyyppi | Mikrokontrolleri | Mikroprosessori |
| Arkkitehtuuri | Harvardin arkkitehtuuri (erillinen koodi ja datamuisti) | Von Neumann -arkkitehtuuri (jaettu muisti koodille ja datalle) |
| Datan leveys | 8-bittinen | 8-bittinen |
| CPU | Integroitu 8-bittinen suoritin sirulla varustetuilla oheislaitteilla | Vain 8-bittinen prosessori (ei sisäänrakennettuja oheislaitteita) |
| Ohjelmamuisti | Tyypillisesti 4KB–8KB sisäinen ROM (laajennettavissa 64KB ulkoiseen) | Ei sisäistä ROMia (vaatii ulkoista muistia) |
| Datamuisti | 128–256 tavua sisäistä RAM-muistia (laajennettava) | Ei sisäistä RAM-muistia (vaatii ulkoista RAM-muistia) |
| I/O-portit | 32 sisäänrakennettua I/O-linjaa (4 porttia) | Ei sisäänrakennettuja I/O-portteja (vaatii ulkoisia liitäntäpiirejä) |
| Ajastimet/laskurit | 2 × 16-bittistä ajastinta | Ei sisäisiä ajastimia (ulkoisia ajastimia tarvitaan) |
| Keskeytykset | 5 keskeytyslähdettä | 5 keskeytyssyötettä (TRAP, RST 7.5, 6.5, 5.5, INTR) |
| Sarjaviestintä | Sisäänrakennettu täysduplex-UART | Ei sisäänrakennettua sarjaporttia |
| Oskillaattori | Sirun sisäinen oskillaattoripiiri | Vaatii ulkoisen kellogeneraattorin |
| Pino | Sisäinen pino RAM-muistissa | Pino hallitaan ulkoisessa RAM-muistissa |
| Osoitebussi | 16-bittinen (tukee jopa 64KB ulkoista muistia) | 16-bittinen (tukee jopa 64KB muistia) |
| Dataväylä | 8-bittinen | 8-bittinen |
| Perifeerinen integraatio | Erittäin integroitu (ajastimet, sarja, I/O, keskeytykset) | Minimaalinen integraatio (vain CPU) |
| Ulkoiset komponentit vaaditaan | Vähemmän ulkoisia komponentteja | Vaatii useita ulkoisia tukipiirejä |
| Virrankulutus | Matala | Korkeampi verrattuna mikrokontrolleripohjaisiin järjestelmiin |
| Sovellusfokus | Sulautetut järjestelmät ja ohjaussovellukset | Yleiskäyttöinen laskenta ja järjestelmäkehitys |
| Monimutkaisuus | Yksinkertainen, kompakti järjestelmäsuunnittelu | Monimutkaisempi järjestelmäsuunnittelu |
| Kustannukset | Alhaisempi kokonaisjärjestelmäkustannus | Korkeampi järjestelmäkustannus ulkoisten komponenttien vuoksi |
| Tyypilliset käyttötapaukset | Kodinkoneet, robotiikka, automaatio, sulautetut laitteet | Varhaiset tietokonejärjestelmät, koulutuspaketit, prosessoripohjaiset järjestelmät |
| Vuosi esitelty | 1980 (Intelin toimesta) | 1976 (Intelin toimesta) |
8051:n edut ja rajoitukset
8051:n edut
• Yksinkertainen ja helposti ymmärrettävä arkkitehtuuri
• Integroitu CPU, RAM, ROM, ajastimet ja I/O-portit yhdellä sirulla
• Alhainen hinta ja laajasti saatavilla
• Alhainen virrankulutus
• Sisäänrakennettu sarjaviestintätuki
• Useita keskeytyslähteitä reaaliaikaisiin sovelluksiin
• Laajennettava ulkoisen muistin tuki (jopa 64KB)
• Laaja ekosysteemi kehitystyökaluja ja oppimismateriaaleja
• Vakaa ja luotettava sulautettuihin ohjaustehtäviin
8051-rajoitukset
• Rajoitettu sisäinen RAM- ja ohjelmamuisti
• 8-bittinen prosessointi rajoittaa laskentakykyä
• Alhaisempi käsittelynopeus verrattuna nykyaikaisiin mikrokontrollereihin
• Perusversioissa ei ole sisäänrakennettua ADC- tai DAC-järjestelmää
• Rajoitetut oheislaitteet verrattuna edistyneisiin MCU-laitteisiin (esim. ARM, AVR)
• Vaatii ulkoisia komponentteja monimutkaisiin sovelluksiin
• Ei ihanteellinen suorituskykyisille tai dataintensiivisille järjestelmille
• Vanhentunut arkkitehtuuri verrattuna nykyaikaisiin 32-bittisiin ohjaimiin
Yhteenveto
8051-mikrokontrollerin Harvard-arkkitehtuurin, integroidun suorittimen, järjestetyn muistirakenteen, ohjelmoitavien I/O-porttien, ajastimien, keskeytysjärjestelmän ja sarjaviestinnän tuen ansiosta se tarjoaa täydellisen ja tehokkaan ratkaisun omistetuille ohjaussovelluksiin. Vaikka nykyaikaiset mikrokontrollerit tarjoavat suorituskykyisempiä ja kehittyneempiä oheislaitteita, 8051 on edelleen arvokas yksinkertaisuutensa, alhaisen hintansa, luotettavuutensa ja vahvan koulutuksellisen merkityksensä ansiosta.
Usein kysytyt kysymykset [UKK]
Q1. Mitä ohjelmointikieliä 8051-mikrokontrollerissa käytetään?
8051 ohjelmoidaan yleisesti Embedded C:llä ja assembler-kielellä. Embedded C on laajasti käytössä helpomman virheenkorjauksen ja siirrettävyyden vuoksi, kun taas Assembly tarjoaa tarkan laitteistotason hallinnan.
Q2. Mitkä ohjelmistotyökalut sopivat parhaiten 8051:n ohjelmointiin?
Suosittuja työkaluja ovat Keil μVision, Proteus (simulointiin) ja SDCC (Small Device C Compiler). Keil on laajimmin käytetty ammatillisen kehityksen ympäristö.
Q3. Mikä on 8051:n maksimikellotaajuus?
Klassinen 8051 toimii tyypillisesti jopa 12 MHz taajuudella, kun taas nykyaikaiset parannetut versiot voivat toimia paljon korkeammilla nopeuksilla valmistajasta riippuen.
Q4. Voiko 8051 yhdistää nykyaikaiset sensorit ja moduulit?
Kyllä, 8051 voi liittää nykyaikaisten antureiden kanssa digitaalisen I/O:n, UART:n, SPI:n (ohjelmiston kautta) ja I2C:n (bit-banging tai ulkoiset IC:t) avulla, vaikka se saattaa vaatia lisäliitäntäkomponentteja.
Q5. Miten 8051 saa virtansa ja mikä on sen käyttöjännite?
Vakio 8051 toimii +5V jännitteellä. Kuitenkin jotkut nykyaikaiset johdannaiset tukevat matalampia jännitteitä, kuten 3,3 V, vähävirtaisissa sovelluksissa.
Q6. Mitkä ovat yleisimmät 8051-perheen versiot nykyään?
Suosittuja versioita ovat AT89C51-, AT89S52- ja muut parannetut 8051-yhteensopivat mikrokontrollerit eri valmistajilta, jotka tarjoavat enemmän muistia ja ominaisuuksia.
Q7. Miten 8051 eroaa nykyaikaisista mikrokontrollereista, kuten ARM Cortex-M:stä?
8051 on 8-bittinen ohjain, joka on suunniteltu yksinkertaisiin ohjaustehtäviin, kun taas ARM Cortex-M -laitteet ovat 32-bittisiä prosessoreita, joissa on suurempi nopeus, kehittyneet oheislaitteet ja suurempi muistikapasiteetti.