MK-porttien ohjelmointi kielellä C 51. Mikro-ohjaimet MCS–51: ohjelmamalli, rakenne, komennot. Portin lukutila

Perusversio MCS-51 Lyhyt tiedot. Nykyaikaisissa 8-bittisissä mikro-ohjaimissa (MC) on sellaisia ​​reaaliaikaisia ​​ohjausresursseja, joihin käytettiin aiemmin kalliita monisiruisia asetteluja erillisten mikrotietokonelevyjen muodossa, nimittäin:

● on riittävä muistikapasiteetti, sen fyysinen ja looginen jakautuminen ohjelmamuistiin ja datamuisti(Harvard-arkkitehtuuri) ja ohjausalgoritmien suorittamiseen keskittynyt komentojärjestelmä;

● sisältää kaikki laitteet (prosessori, ROM, RAM, tulo/lähtöportit, keskeytysjärjestelmä, bittitietojen käsittelyvälineet jne.), jotka ovat välttämättömiä mikroprosessoriohjausjärjestelmän toteuttamiseksi. Viime vuosisadan 70-luvulla yritys Intel 8-bittisten MCS-48-mikro-ohjainten perhe, jota yhdistää joukko yhteisiä ominaisuuksia (bittikapasiteetti, komentojärjestelmä, päätoimintolohkot jne.), on kehitetty ja otettu teolliseen tuotantoon. Tämän perheen perusversio sisältää:

● 8-bittinen prosessori;

● sisäinen ohjelmamuisti (1/2/4K tavua);

● sisäinen tietomuisti (64/128/256 tavua);

● jopa 27 sisäistä ja 16 ulkoista I/O-linjaa;

● yksi 8-bittinen ajastinlaskuri;

● yksitasoinen keskeytysjärjestelmä kahdella pyyntölähteellä. Vuonna 1980 sama yritys kehitti uuden kahdeksanbittisten mikro-ohjainten perheen MCS-51, joka on yhteensopiva MCS-48-perheen arkkitehtuurin kanssa, mutta jolla on paremmat ominaisuudet.

MCS-51-perheen arkkitehtuuri osoittautui niin onnistuneeksi, että se on edelleen yksi 8-bittisten MK:iden standardeista. Siksi tutkimuksen kohteeksi valittiin tämän perheen mikro-ohjaimet, joita käytetään laajalti suhteellisen yksinkertaisissa ohjausjärjestelmissä.

MCS-51-perheelle on kehitetty erilaisia ​​ohjelmien valmistelutyökaluja (kääntäjät, laitteisto-ohjelmistoemulaattorit jne.) ja vakiorutiineja on suuri määrä kirjastoja. Perheeseen kuuluu erilaisia ​​muunnelmia mikro-ohjaimien mikropiireistä (siruversiot). Tämän jakson artikkeleissa käsitellään yksityiskohtaisesti MCS-51-perheen mikro-ohjainten perusversiota (8051-mikropiiri vastaa kotimaista analogia KP1816BE51), rakenteellisesti ja toiminnallisesti ja ymmärtämisen kannalta yksinkertaisin.

Myöhemmät mikropiirisarjat, säilyttäen yhteensopivuuden perusversion kanssa, eroavat siitä parannetussa valmistustekniikassa, sähköiset parametrit, lisälaitteita ja toiminnallisuutta. Seuraavat artikkelit on omistettu MCS-51-mikropiirien myöhempien muutosten rakenteellisiin ja toiminnallisiin ominaisuuksiin.
MCS-51:n yleinen lohkokaavio. MC:n koostumus, jonka yleinen lohkokaavio on esitetty kuvassa. 7.1.1 sisältää:

● 8-bittinen prosessori CPU, joka koostuu ALU, ohjauslaitteet UU ja osoitegeneraattori F;

● maski-ROM, jonka kapasiteetti on 4K tavua ohjelmien tallentamista varten;

● RAM, jonka kapasiteetti on 128 tavua tietojen tallennusta varten;

● neljä ohjelmoitavaa porttia P0–P3 tuloa varten– tiedon ulostulo;

● lohko sarjaliitäntä BPI tietojen vaihtamiseen ulkoisten laitteiden kanssa kaksijohdinlinjan kautta;

● BT/C-ajastimien/laskurien esto reaaliaikaisen tilan ylläpitämiseksi;

● BP-keskeytyslohko suoritettavien ohjelmien keskeytysten järjestämiseen. Nämä varat muodostuvat asukas mikro-ohjaimen osa, joka sijaitsee suoraan sirulla. MK sisältää suuren määrän rekistereitä, jotka on kohdistettu erillisiin toimintalohkoihin ja joita ei näy kaaviossa.

Kaavio ei myöskään näytä ohjauspiirejä. Kaksisuuntainen tiedonvaihto lohkojen välillä tapahtuu sisäisen 8-bitin kautta dataväyläШД-8.

Sisäisellä 16-bittisellä osoiteväyläША-16 CPU:ssa luotu osoite lähetetään ROM:iin (12 osoitebittiä) ja RAM:iin (8 matalan kertaluvun bittiä).

Ulkoista muistia käytettäessä osoitteen 8 vähiten merkitsevää bittiä lähetetään porttiin P0 ja 3 tai 8 merkitsevintä bittiä porttiin P2.

Rajapinnan loogiseen laajentamiseen käytetään porttilinjojen toimintojen yhdistämistä. Esimerkkinä kuvassa. 7.1.1 katkoviiva näyttää ne P3-portin viivat, jotka toimivat vaihtoehto ohjaussignaalien lähettämisen toimintoja, joiden tarkoitusta käsitellään jäljempänä. Sisäisen kellogeneraattorin luomiseksi MK-mikropiirin liittimiin kytketään kvartsiresonaattori ja kaksi kondensaattoria (kuva 7.1.1). Sisäisen kellogeneraattorin sijasta synkronointiin voidaan käyttää ulkoista värähtelylähdettä. Ehdollinen graafinen merkintä MK-mikropiirit on esitetty kuvassa. 7.1.2, tappien nimitys ja käyttötarkoitus - taulukossa. 7.1.1. Tarkastellaan MK:n toiminnallisia lohkoja ja niiden toimintaperiaatetta. Aritmeettinen logiikkalaite. Aritmeettinen logiikkalaite on suunniteltu suorittamaan aritmeettisia (mukaan lukien kerto- ja jakolaskutoimia) ja loogisia operaatioita kahdeksanbittisille operandeille sekä loogisia siirto-, nollaus-, asetustoimintoja jne. ALU:n lohkokaavio on esitetty kuvassa. 7.1.3.

ALU sisältää

● rinnakkainen kahdeksanbittinen lisäin Yhdistelmätyyppinen SM peräkkäisellä siirrolla, joka suorittaa aritmeettisia (yhteen- ja vähennyslaskuja) ja loogisia (yhteen-, kerto-, ero- ja identiteetti) operaatioita;

akku A, aritmeettisen päärekisterin toimintojen tarjoaminen;

rekisteröidy B, jota käytetään kerto- ja jakooperaatioiden toteuttamiseen tai ylimääräisenä superoperaatiorekisterinä, jonka toiminnot käyttäjä määrittää;

rekisterit(ohjelmisto ei saatavilla) väliaikainen varastoРВХ1, РВХ2, tarkoitettu operandien vastaanottamiseen ja tallentamiseen toiminnan ajaksi;

● ROM vakioita ROM, joka tallentaa korjauskoodin datan binaarista desimaaliesitystä varten, maskikoodin bittioperaatioille ja koodin vakioille;

ohjelman tila sanarekisteri PSW, joka tallentaa ALU:n tilan suoritetun toiminnon jälkeen. Taulukossa 7.1.2 tarjoaa tietoa PSW-rekisterin yksittäisten bittien bittien osoittamisesta. Ohjauslaite. Keskusprosessorin ohjausyksikkö (CU). tarkoitettu koordinointia varten yhteistyötä kaikki MK-solmut käyttävät generoituja kellopulsseja ja ohjaussignaaleja. Se koostuu (kuva 7.1.4):

synkronointi ja ohjausyksikkö Ohjausjärjestelmä, joka generoi kellopulsseja, jotka määrittävät koneen työkierrot ja niiden yksittäiset tilat (S) ja vaiheet (P) ja muodostavat mikrokontrollerin toimintatavasta riippuen tarvittavan joukon ohjaussignaaleja. Komennon suorittaminen kestää yhden, kaksi tai neljä konesykliä.

Jokaisella konesyklillä on kuusi osavaltiota S1–S6, A jokainen tila sisältää kaksi vaihetta P1, P2, jonka kesto on kellogeneraattorin T 0SC värähtelyjakso.

Konejakson kesto on 12T 0SC. Kaikki koneen syklit ovat samat, alkaen vaiheesta S1P1 ja päättyen vaiheeseen S6P2.

Kellopulssien lisäksi tahdistuslaite generoi jokaisessa konejaksossa kaksi (joskus yhden) avainnussignaalia ALE-osoitteen alemmalle tavulle positiivisen pulssin muodossa vaiheissa S1P2–S2P1 ja S4P2–S5P1. Ajoituskaaviot kuvassa. 7.1.5 havainnollistaa konesyklien organisointia;

● komentorekisteri RK, komentodekooderi DC ja PLM, jotka mahdollistavat jokaisessa konesyklissä joukon mikrooperaatioita generoinnin suoritetun komennon mikroohjelman mukaisesti;

● LVV-tulo/lähtölogiikka signaalien vastaanottamiseen ja lähettämiseen, mikä varmistaa tiedonvaihdon MK:sta ulkoisten laitteiden kanssa porttien P0–P3 kautta;

● PCON-rekisteri, jossa on yksi käytössä oleva SMOD-bitti kohdassa PCON.7, joka kaksinkertaistaa sarjaportin datanopeuden. Loput bitit on varattu myöhempää käyttöä varten.
Osoitegeneraattori. Osoitegeneraattori (FA) tai PC-komentolaskuri, tarkoitettu muodostaa ohjelmamuistin nykyisen 16-bittisen osoitteen ja ulkoisen datamuistin 8/16-bittisen osoitteen. Se koostuu (kuva 7.1.6):

● 16-bittinen puskuri B, joka kommunikoi 8-bittisen SD-dataväylän ja osoitteenmuodostajan 16-bittisen sisäisen väylän (IB) välillä;

● SI-inkrementtipiiri nykyisen osoitteen arvon kasvattamiseksi ohjelmamuisti yksikköä kohti;

● rekisteröidä SI:stä tulevien PTA-komentojen nykyiset osoitteet;

● dataosoittimen rekisteri DPTR , koostuu kahdesta 8-bittisestä rekisteristä DPH ja DPL. Se tallentaa ulkoisen datamuistin 16-bittisen osoitteen, ja sitä voidaan käyttää kahtena itsenäisenä ohjelmiston käytettävissä olevana RON:na;

● XRF-osoitegeneraattorin rekisteri, johon tallennetaan ohjelmamuistin 16-bittinen osoite tai ulkoisen datamuistin 8/16-bittinen osoite. Tätä rekisteriä käytetään myös tiedon siirtämiseen portin P0 kautta ulkoisia laitteita kun suoritetaan MOVX @Rm, A ja MOVX @DPRT, A komentoja.

Datamuisti. Datamuisti tarkoitettu ohjelman suorittamisen aikana käytetyn tiedon vastaanottamiseen, tallentamiseen ja antamiseen. Sisäinen (asuva) datamuisti (kuva 7.1.7) koostuu RAM-muistista, jonka kapasiteetti on 128 tavua, pinoosoitin S.P. osoiterekisteri RAM RA ja dekooderi Dsh. Pinoosoitin SP on 8-bittinen rekisteri, joka on suunniteltu vastaanottamaan ja tallentamaan viimeksi käytetyn pinosolun osoite. Nollauksen jälkeen pinoosoitin asetetaan osoitteeseen 07H, joka vastaa osoitteella 08H olevan pinon alkua. PA-osoiterekisteri yhdessä Dsh-dekooderin kanssa mahdollistaa pääsyn tarvittavaan muistisoluun, joka sisältää tavun tai bitin tietoa.

MK tarjoaa mahdollisuuden lisätä muistin kapasiteettia jopa 64 kilotavuun yhdistämällä ulkoisia tallennuslaitteita. Esimerkkinä kuvassa. 7.1.8 näyttää ulkoisen VPD-tietomuistin sivujärjestelyn, jonka kapasiteetti on 2 kt tavua MOVX-tyyppisten komentojen avulla @ Rm (m = 0; 1). Tässä tapauksessa portti P0 toimii multipleksoituna osoite/dataväylänä, kolmea portin P2 riviä käytetään ulkoisen RAM-sivun osoittamiseen ja loput viisi riviä voidaan käyttää tulo/lähtölinjoina.
Kuvassa 7.1.9 näyttää luku- ja kirjoitusjaksojen ajoituskaaviot, kun MK toimii ulkoisen RAM:n kanssa. Kaaviot osoittavat:

● RSN - PC-komentolaskurin korkea tavu;

● DPL, DPH - DPTR-dataosoittimen rekisterin matalat ja korkeat tavut, jota käytetään rekisterinä epäsuoraan osoitteisiin MOVX @DPTR,A- ja MOVX A,@DPTR-komennoissa;

● P2 SFR - P2-portin salvat;

● Rm (m = 0, 1) - MOVX @Rm-, A- ja MOVX A-, @Rm-käskyissä käytetyt rekisterit epäsuorina osoiterekistereinä;

● Z - korkean vastuksen tila;

● D - aika, jonka aikana tiedot portista P0 syötetään mikro-ohjaimeen. Ohjelman muisti. Ohjelmamuisti on suunniteltu tallentamaan ohjelmia, sillä on oma (tietomuistista erillinen) osoiteavaruutensa ja se on vain luku -tilassa. Se sisältää Dsh-dekooderin ja ROM-muistin (kuva 7.1.10). 16-bittistä PC-laskuria käytetään ohjelmamuistin osoittamiseen, joten sen maksimikapasiteetti on 64 kt. Sisäinen ohjelmamuisti koostuu 4K-tavuisesta ROM-muistista ja 12-bittisestä dekooderista. Ulkoinen muisti on kytketty kuvan 1 kaavion mukaisesti. 7.1.11. Jos MK:n ¯EA-nastalle syötetään 0 V (kuten kuvassa 7.1.11), sisäinen muisti ohjelmat on poistettu käytöstä. Kaikki muistin haut alkavat osoitteesta 0000h. Kun ¯EA-nasta on kytketty virtalähteeseen, pääsy sisäiseen ohjelmamuistiin osoitteissa 0000h–FFFFh ja ulkoiseen ohjelmamuistiin osoitteissa 0FFFh–FFFFh tapahtuu automaattisesti.

MK-ohjelmien ulkoisen muistin lukemiseksi generoidaan ¯PSEN-signaali. Kun työskennellään sisäisen muistin kanssa, lukusignaalia ei käytetä. Ulkoista ohjelmamuistia käytettäessä muodostuu aina 16-bittinen osoite. Osoitteen alhainen tavu välitetään portin P0 kautta konejakson ensimmäisellä puoliskolla ja se korjataan rekisterissä olevan ALE-vilkkukuvan leikkauksella. Jakson toisella puoliskolla porttia P0 käytetään syöttämään tavu tiedot ulkoisesta muistista MK:hen.

Osoitteen merkittävin tavu välitetään portin P2 kautta koko muistin käyttöajan.

Kuvassa on luku- ja kirjoitusjaksojen ajoituskaaviot, kun MK toimii ulkoisen RAM:n kanssa. 7.1.12.
Kaaviot osoittavat:

● PCL OUT - PC-ohjelmalaskurin alemman tavun lähtö;

● RSN OUT - PC-komentolaskurin korkean tavun lähtö;

● DPH - DPTR-dataosoitinrekisterin korkea tavu, jota käytetään MOVX @DPTR,A ja MOVX A,@DPTR käskyjen epäsuoran osoitteen rekisterinä;

● P2 SFR - P2-portin salvat;

● INS IN - ohje (komento)tavun syöttö ohjelmamuistista;

● ADDR OUT - ulkoisen datamuistin osoitteen alemman tavun antaminen Rm-rekistereistä (m = 0, 1) tai DPL-rekisteristä (DPTR-alhainen rekisteri). I/O-portit. Portin määritys. Portit P0, P1, P2, P3 tarkoitettu tiedon vaihtamiseen MK:n ja ulkoisten laitteiden välillä sekä myös seuraavien toimintojen suorittamiseen:

● osoitteen A7…A0 alhainen tavu tulostetaan portin P0 kautta; datatavu tulostetaan MK:sta ja syötetään MK:hen käytettäessä ulkoista ohjelmamuistia ja ulkoista datamuistia (aikaeroteltu);

● portin P2 kautta tulostetaan osoitteen A15...A8 korkea tavu käytettäessä ulkoista ohjelmamuistia ja ulkoista tietomuistia (vain käytettäessä MOVX A,@DPTR ja MOVX @DPTR,A komentoja);

● P3-portin linjoilla voidaan suorittaa vaihtoehtoisia toimintoja, jos tämän rivin salpaan syötetään 1, muuten linjalähtöön on kiinteä 0. P3-portin nastojen vaihtoehtoiset toiminnot on esitetty taulukossa. 7.1.3.

Porttien piiriominaisuudet

Kuvassa 7.1.13 näyttää kaavioita kunkin MK-portin yhdestä kanavasta, mukaan lukien:

● salpa vastaanotetun databitin kiinnittämiseksi;

● lähtövahvistin ryöpytä(kuljettaja);

● solmu yhteys lähtöaste (paitsi P2);

● piiri databitin lähettämiseksi portin lähtöpuolelta, joka koostuu puskureista B2 ja B3 (portille P4). Salpa on D-flip-flop, joka kellotetaan sisäisellä "Write to luch" -signaalilla. Databitti D-kiikun suorasta lähdöstä voidaan lukea ohjelmallisesti puskurin B1 kautta käyttämällä "Read Latch" -signaalia MK:n sisäisen dataväylän (ID) linjalle.

Tulostusvaihe portti P0 on invertteri, jonka ominaisuudet ilmenevät siinä, että kuormitustransistori VT2 avautuu vain ulkoista muistia käytettäessä (osoitteita ja tietoja siirrettäessä portin kautta). Kaikissa muissa tiloissa kuormitustransistori on suljettu. Siksi P0:n (Kuva 7.1.13, a) käyttäminen yleiskäyttöisenä lähtöporttina on välttämätöntä kytkeä ulkoiset kuormitusvastukset sen liittimiin. Kun portin salpaan kirjoitetaan 1, invertteritransistori VT1 lukitaan ja P0.X-portin ulkoinen nasta kytketään suurresistanssitilaan. Tässä tilassa portin P0.X lähtö voi toimia tulona. Jos P0-porttia käytetään yleiskäyttöisenä I/O-porttina, jokainen sen P0.X-nasta voi toimia itsenäisesti tulona tai lähtönä. Tulostusvaiheet portit P1, P2, P3 (kuva 7.1.13, b, c, d) valmistettu invertteripiirien mukaan, jossa on sisäinen kuormitusvastus, jota käytetään transistorina VT2.

Kytkentäajan lyhentämiseksi, kun portin nastat siirtyvät tilasta 0 tilaan 1, lisätransistori VT3 otettiin käyttöön rinnan kuormatransistorin VT2 kanssa. Hilapiirin elementtejä käyttävä transistori VT3 avataan ajaksi, joka vastaa pääkvartsioskillaattorin kahta värähtelyjaksoa (konejakson vaiheiden S1P1, S2P2 aikana). Tulostusvaiheet MX-multiplekserin avulla portit P0, P2 (Kuva 7.1.13, A, c) voidaan liittää joko salpoihin tai sisäisiin “Address/data”- ja “Address”-väyliin. Portin P1 lähtöaste (Kuva 7.1.13, 6) on kytketty kiinteästi salpaan.

Jos portin P3 nasta on lähtö ja sen salpa sisältää 1, niin sen lähtöastetta ohjataan laitteistolla sisäinen signaali"Vaihtoehtoinen lähtötoiminto", joka tarjoaa vastaavan vaihtoehtoisen toiminnon suorittamisen, ts. jokin signaaleista ¯WR, ¯RD tai RxD syntyy ulkoisessa nastassa. Jos porttilähtöä käytetään tulona, ​​siihen saapuva vaihtoehtoinen signaali (TxD, ¯INT0, ¯INT1, T0, T1) välitetään ”Vaihtoehtoinen tulotoiminto” sisäiselle linjalle.

Portin tallennustila.

Kun portin kirjoituskomento suoritetaan, uusi arvo kirjoitetaan salpaan vaiheessa S6P2 ja tulostetaan suoraan portin lähtönastan vaiheeseen S1P1 seuraavassa konejaksossa.

Portin lukutila

Portin lukukomennot lukevat tietoja suoraan portin ulkoisista nastoista tai salpalähdöistä. Ensimmäisessä tapauksessa databitti portin nastasta luetaan ohjelmallisesti puskurin B2 kautta käyttämällä "Read Pins" -signaalia MK:n sisäisen dataväylän (SD) linjalle. Huomaa, että signaalit "Kirjoita salpaan", "Lue salpa", "Read pins" generoidaan laitteistossa, kun vastaavat komennot suoritetaan.

Toisessa tapauksessa toteutetaan ns. Read-Modify-Write-tila, jossa komento lukee salpatilasignaalin, muuttaa sitä tarvittaessa ja kirjoittaa sen sitten takaisin salpaan. "Lue-Muokkaa-Kirjoita" -tila toteutetaan suoritettaessa seuraavia komentoja: ANL, ORL, XRL, JBC; CPL; INC; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Lukemalla tietoja salpojen lähdöistä voit poistaa virheet portin nastan loogisen tason tulkinnassa. Lue artikkelin jatko.

MCS-51-perheen arkkitehtuuri määräytyy pitkälti sen tarkoituksen - rakentamisen - perusteella kompakti Ja halpa digitaaliset laitteet. Kaikki mikrotietokoneen toiminnot toteutetaan yhdellä mikropiirillä. MCS-51-perhe sisältää laajan valikoiman mikropiirejä yksinkertaisimmista mikrokontrollereista varsin monimutkaisiin. MCS-51-perheen mikro-ohjaimet mahdollistavat sekä eri laitteiden ohjaustehtävien suorittamisen että yksittäisten komponenttien toteuttamisen analoginen piiri. Kaikki tämän perheen mikropiirit toimivat samalla komentojärjestelmällä, useimmat niistä suoritetaan samoissa tapauksissa vastaava pinout(jalkojen numerointi vartaloa varten). Näin voit käyttää eri valmistajien mikropiirejä (kuten Intel, Dallas, Atmel, Philips jne.) kehitetyssä laitteessa. ilman uudelleenkäsittelyä kaaviokuva laitteita ja ohjelmia.

Kuva 1. K1830BE751-ohjaimen lohkokaavio

Ohjaimen lohkokaavio on esitetty kuvassa 1. Se koostuu seuraavista päätoiminnallisista yksiköistä: ohjausyksikkö, aritmeettis-looginen yksikkö, ajastin/laskuriyksikkö, sarjaliitäntä ja keskeytysyksikkö, ohjelmalaskuri, tietomuisti ja ohjelmamuisti. Kaksisuuntainen tiedonsiirto tapahtuu sisäisen 8-bittisen tietoväylän avulla. Tarkastellaanpa tarkemmin kunkin lohkon tarkoitusta. Lähes kaikki MCS-51-perheen jäsenet on rakennettu tämän järjestelmän mukaan. Tämän perheen erilaiset mikropiirit eroavat vain erikoisrekistereissä (mukaan lukien porttien lukumäärä). Komentojärjestelmä kaikki ohjaimet perhe MCS-51 sisältää 111 peruskomennot muodossa 1, 2 tai 3 tavua ja se ei muutu siirryttäessä sirulta toiseen. Tämä varmistaa ohjelman erinomaisen siirrettävyyden sirulta toiseen.

Ohjaus- ja synkronointiyksikkö

Ajoitus- ja ohjausyksikkö on suunniteltu tuottamaan synkronointi- ja ohjaussignaaleja, jotka varmistavat keskustietokoneyksiköiden yhteistoiminnan koordinoinnin kaikissa sen sallituissa toimintatiloissa. Ohjausyksikkö sisältää:

  • laite aikavälien muodostamiseen,
  • tulo-lähtölogiikka,
  • komentorekisteri
  • energiahallinnon rekisteri,
  • komentodekooderi, tietokoneen ohjauslogiikka.

Laite aikavälien muodostamiseen suunniteltu generoimaan ja lähettämään sisäisiä vaiheiden, kellojen ja jaksojen kellosignaaleja. Konejaksojen määrä määrittää ohjeiden keston. Lähes kaikki tietokoneen komennot suoritetaan yhdessä tai kahdessa konesyklissä, paitsi kerto- ja jakokäskyt, joiden suoritusaika on neljä konesykliä. Merkitään isäntäoskillaattorin taajuutta F g. Tällöin konejakson kesto on 12/F g eli 12 masteroskillaattorin signaalin jaksoa. I/O-logiikka on suunniteltu vastaanottamaan ja lähettämään signaaleja, jotka varmistavat tiedonvaihdon ulkoisten laitteiden kanssa tulo/lähtöporttien P0-P3 kautta.

Komentorekisteri suunniteltu tallentamaan ja tallentamaan suoritettavan komennon 8-bittinen toimintakoodi. Toimintakoodi muunnetaan komentojen ja tietokoneen ohjauslogiikan avulla mikroohjelmaksi komennon suorittamista varten.

Demand Control Register (PCON) mahdollistaa mikro-ohjaimen pysäyttämisen virrankulutuksen ja mikro-ohjaimen aiheuttamien häiriöiden vähentämiseksi. Vielä suurempi virrankulutuksen ja häiriön vähentäminen voidaan saavuttaa pysäyttämällä mikro-ohjaimen pääoskillaattori. Tämä voidaan saavuttaa vaihtamalla PCON-kulutuksen ohjausrekisterin bittejä. n-MOS-valmistusvaihtoehdossa (1816-sarja tai vieraat sirut, joiden nimen keskellä ei ole "c"-kirjainta) PCON-kulutuksenhallintarekisteri sisältää vain yhden bitin, joka ohjaa sarjaportin SMOD siirtonopeutta, ja virrankulutuksen ohjausbittejä ei ole.

Yhdessä artikkelin "Mikro-ohjainten MCS-51 arkkitehtuuri" kanssa lukee:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

Tällä hetkellä useat yritykset tuottavat monia tämän perheen muunnelmia ja analogeja, sekä Intelin että muiden valmistajien, kellonopeus ja muistikapasiteetti ovat kymmenkertaistuneet ja kasvavat edelleen. Myös LSI:n sisäänrakennettujen moduulien joukkoa laajennetaan; monissa nykyaikaisissa malleissa on sisäänrakennettu nopea ADC, jossa on jopa 12 bittiä, ja nyt niitä saattaa olla enemmän. Mutta MCS51-perhe perustuu Intelin LSI:ihin 8051, 80С51, 8751, 87С51, 8031, 80С31, joista ensimmäiset näytteet julkaistiin vuonna 1980.

MCS51-perheen mikro-ohjaimet valmistetaan korkealaatuisella n-MOS-tekniikalla (sarja 8ХХХ, analoginen - sarja 1816 Venäjällä ja Valko-Venäjällä) ja k-MOS-tekniikalla (sarja 8ХСХХ, analoginen - sarja 1830). Toinen merkki 8:n jälkeen tarkoittaa: 0 – sirulla ei ole EPROM-muistia, 7 – 4K EPROM, jossa on ultraviolettihäivytys. Kolmas merkki: 3 – sirulla oleva ROM, 5 – jos ROM:ia ei ole, sirussa on maski-ROM.

Ja niin 80С51 on k-MOS-tekniikkaan perustuva LSI, jonka piirissä on maski-ROM, 8031 ​​on n-MOS LSI ilman ohjelmamuistia (ROM, RPOM) sirulla, 8751 on n-MOS LSI, jossa on pysyvä (sijaitsee sirulla) RPOM ultraviolettipoistolla. Tarkastelemme edelleen 8751 LSI:tä ja teemme tarvittaessa varauksia muiden piirien välisiin eroihin viitaten parametreihin, jotka julkaistiin ensimmäisille sarja-LSI:ille. Tarvittaessa löydät lisätietoa kaikista nykyaikaisista muutoksista yrityshakemistoista ja teknisestä dokumentaatiosta.

A. Yleiset ominaisuudet ja nastat

MCS51-perhe perustuu viiteen MK:n muunnelmaan (joilla on identtiset perusominaisuudet), joiden tärkein ero on ohjelmamuistin toteutus ja virrankulutus (katso taulukko 3.1). Mikro-ohjain on kahdeksanbittinen, ts. on käskyt kahdeksanbittisten sanojen käsittelyyn, siinä on Harvard-arkkitehtuuri, perheen perusnäytteiden kellotaajuus on 12 MHz.

Taulukko 3.1.

Mikropiirit

Sisäinen ohjelmamuisti, tavua

Ohjelman muistityyppi

Sisäinen tietomuisti, tavu

Kellotaajuus, MHz

Virrankulutus, mA

MK 8051 ja 80C51 sisältävät maskilla ohjelmoitavan ROM-ohjelmamuistin, jonka kapasiteetti on 4096 tavua sirun valmistuksen aikana ja ne on suunniteltu käytettäväksi massatuotantoon. MK 8751 sisältää 4096 tavun RPOM:n ultraviolettihälytyksellä ja on kätevä järjestelmän kehitysvaiheessa ohjelmien virheenkorjauksessa sekä tuotannossa pienissä erissä tai luotaessa järjestelmiä, jotka vaativat uudelleenkirjoittamista käytön aikana.

säännöllinen säätö.

MK 8031 ​​ja 80C31 eivät sisällä sisäänrakennettua ohjelmamuistia. Ne, kuten aiemmin kuvatut muutokset, voivat käyttää jopa 64 KB ulkoista ohjelmamuistia ja niitä käytetään tehokkaasti järjestelmissä, jotka vaativat huomattavasti suuremman määrän (yli 4 KB sirulla) ROM-ohjelmamuistia.

Jokainen perheen MK sisältää pysyvän datamuistin, jonka kapasiteetti on 128 tavua ja joka pystyy laajentamaan RAM-tietojen kokonaismäärää jopa 64 kilotavuun käyttämällä ulkoisia RAM-IC:itä.

    kahdeksan bittinen keskusprosessori;

    4 kt ohjelmamuisti (vain 8751 ja 87C51);

    128 tavun datamuisti;

    neljä kahdeksanbitistä ohjelmoitavaa I/O-porttia;

    kaksi 16-bittistä monimuotoajastinta/laskuria;

    automaattinen vektorikeskeytysjärjestelmä, jossa on viisi vektoria ja kaksi ohjelmiston ohjaamaa prioriteettitasoa;

    sarjaliitäntä, mukaan lukien universaali duplex-lähetin-vastaanotin, joka pystyy toimimaan neljässä tilassa;

    kellogeneraattori.

MK-komentojärjestelmä sisältää 111 peruskomentoa, joiden muoto on 1, 2 tai 3 tavua. Mikro-ohjaimessa on:

    32 yleiskäyttöistä rekisteriä RON, jotka on järjestetty neljäksi kahdeksaan rekisterin pankiksi, joista kukin on nimeltään R0...R7, yhden tai toisen pankin valinnan määrää ohjelma asettamalla vastaavat bitit ohjelman tilarekisteriin PSW;

    128 ohjelmisto-ohjattua lippua (bittiprosessori, katso alla);

    joukko erikoistoimintojen rekistereitä, jotka ohjaavat MK-elementtejä. Mikro-ohjaimella on seuraavat toimintatilat:

1). Yleinen nollaus. 2). Normaali toiminta. 3). Alhainen virrankulutustila ja tyhjäkäyntitila. 4). Ohjelmointitila pysyvälle RPOM:lle, jos saatavilla.

Tässä keskitymme kahteen ensimmäiseen käyttötilaan; yksityiskohtainen kuvaus MK:n koostumuksesta ja toiminnasta kaikissa tiloissa on liitteessä P1.

RON ja bittiprosessorialue sijaitsevat pysyvän RAM:n osoiteavaruudessa osoitteilla 0-80h.

Asuinalueiden RAM-osoitteiden ylävyöhykkeellä on erityistoimintorekisterit (SFR, Special Function Registers). Niiden tarkoitus on esitetty taulukossa. 3.2.

Taulukko 3.2.

Nimitys

Nimi

Akku

Rekisteröidy B

Ohjelman tilarekisteri

Pinoosoitin

Data osoitin. 2 tavua:

Matala tavu

Korkea tavu

Keskeytä prioriteettirekisteri

Keskeytysrekisteri

Ajastin/laskuritilarekisteri

Ajastin/laskurin ohjausrekisteri

Ajastin/laskuri 0. Suuri tavu

Ajastin/laskuri 0. Matala tavu

Ajastin/laskuri 1. Suuri tavu

Ajastin/laskuri 1. Matala tavu

Sarjaportin ohjaus

Sarjapuskuri

Kulutuksen hallinta

* - rekisterit, sallimalla bittikohtaisesti osoitteleminen

Katsotaanpa lyhyesti taulukossa 3.2 esitettyjen SFR-rekisterien toimintoja.

Akku ACC - akkurekisteri. Toimimaan suunnitellut komennot

käytä akun kanssa muistomerkkiä "A", esim. MOV A, P2 . ACC-muistomerkkiä käytetään esimerkiksi osoitettaessa bittikohtaisesti akkua. Näin ollen akun viidennen bitin symbolinen nimi käytettäessä A5M51-asentajaa on seuraava: ACC. 5. .

Rekisteröidy SISÄÄN . Käytetään kerto- ja jakooperaatioissa. Muiden ohjeiden osalta rekisteriä B voidaan käsitellä reaaliaikaisena lisärekisterinä.

Rekisteröidy osavaltio ohjelmia P.S.W. sisältää tietoa ohjelman tilasta ja asennetaan osittain automaattisesti suoritetun toimenpiteen tuloksen perusteella ja osittain käyttäjän toimesta. Rekisteribittien nimitys ja tarkoitus on esitetty taulukoissa 3.3 ja 3.4.

Taulukko 3.3.

Nimitys

Taulukko 3.4.

Nimitys

Bittitehtävä

Bittipääsy

Kanna lippua. Muutokset aritmeettisten ja loogisten käskyjen suorittamisen aikana.

Laitteisto tai ohjelmisto

Lisäkuljetuslippu. Aseta/tyhjennä laitteistossa yhteen- tai vähennyskäskyjen aikana osoittamaan siirtoa tai lainaa bitissä 3, kun tuloksen vähiten merkitsevä nibble (D0-D3) generoidaan.

Laitteisto tai ohjelmisto

Lippu 0. Käyttäjän määrittämä lippu.

Ohjelmallisesti

Ohjelmallisesti

Työrekisterin pankkiindeksi

Ohjelmallisesti

Pankki 0 osoitteineen (00Н - 07Н) Pankki 1 osoitteineen (08Н - 0FН) Pankki 2 osoitteineen (10Н - 17Н) Pankki 3 osoitteineen (18Н - 1FН)

Ylivuoto lippu. Laitteiston asettaminen tai tyhjennys aritmeettisten käskyjen suorittamisen aikana ilmaisemaan ylivuototilan

Laitteisto tai ohjelmisto

Varaosat. Sisältää kirjoitettavan ja luettavan liipaisimen, jota voidaan käyttää

Pariteetti vähän. Laitteiston nollaus tai asetus jokaisessa käskyjaksossa ilmaisee parillisen tai parittoman määrän akkubittejä "1"-tilassa.

Laitteisto tai ohjelmisto

Osoitin pino SP - 8-bittinen rekisteri, jonka sisältöä kasvatetaan ennen tietojen kirjoittamista pinoon, kun PUSH- ja CALL-käskyjä suoritetaan. Ensimmäisessä nollauksessa pinoosoitin asetetaan arvoon 07H ja data-RAM:n pinoalue alkaa osoitteesta 08H. Tarvittaessa pino-osoittimen ohituksella pinoalue voi sijaita missä tahansa mikro-ohjaimen datan sisäisessä RAM-muistissa.

Osoitin tiedot DPTR koostuu korkeasta tavusta (DPH) ja matalasta tavusta

(DPL). Sisältää 16-bittisen osoitteen käytettäessä ulkoista muistia. Voidaan käyttää

olla joko 16-bittinen rekisteri tai kaksi itsenäistä kahdeksanbittistä rekisteriä.

Portti0 - PortZ. Erikoisfunktioiden P0, P1, P2, RZ rekisterien erilliset bitit ovat porttien P0, P1, P2, RZ ”salvat”-bittejä.

Puskuri johdonmukainen portti SBUF edustaa kahta erillistä rekisteriä: lähettimen puskuria ja vastaanotinpuskuria. Kun dataa kirjoitetaan SBUF:iin, se menee lähettimen puskuriin, ja tavun kirjoittaminen SBUF:iin käynnistää automaattisesti lähetyksen sarjaportin kautta. Kun dataa luetaan SBUF:sta, se noudetaan vastaanotinpuskurista.

Rekisterit ajastin. Rekisteriparit (TH0, TL0) ja (TH1, TL1) muodostavat 16

bittien laskentarekisterit ajastimelle/laskimelle 0 ja ajastimelle/laskurille 1, vastaavasti.

Rekisterit hallinta. Erikoistoimintojen IP, IE, TMOD, TCON, SCON ja PCON rekisterit sisältävät keskeytysjärjestelmän ohjausbittejä ja tilabittejä, aika-

metrit/laskurit ja sarjaportti. Niitä käsitellään yksityiskohtaisesti alla.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 E.A.

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0,0 P0,1 P0,2 P0,3 P0,4 P0,5 P0,6 P0,7

Toimiessaan MC tarjoaa:

    lisäyskomentojen vähimmäissuoritusaika on 1 μs;

    laitteiston kertominen ja jako vähintään 4 μs:n suoritusajalla.

MK tarjoaa mahdollisuuden asettaa sisäisen oskillaattorin taajuutta käyttämällä kvartsia, LC-ketjua tai ulkoista oskillaattoria.

Laajennettu käskyjärjestelmä tarjoaa tavu- ja bittiosoitteita, binääri- ja binaarista desimaaliaritmetiikkaa, ylivuodon ilmaisua ja parillisen/parittoman määrityksen sekä mahdollisuuden toteuttaa looginen prosessori.

MCS51-perhearkkitehtuurin tärkein ja erottuva ominaisuus on, että ALU voi käsitellä yksibittistä dataa sen lisäksi, että se suorittaa toimintoja 8-bittisille tietotyypeille. Yksittäiset ohjelmiston käytettävissä olevat bitit voidaan asettaa, tyhjentää tai korvata niiden komplementilla, voidaan lähettää edelleen, tarkistaa ja

Kuva 3.2. Ulkoiset tapit

mikro-ohjain

käytetään loogisissa laskelmissa. Tuki yksinkertaisille tietotyypeille (jos saatavilla)

Vaikka nykyinen suuntaus kohti pidempiä sanoja saattaa ensi silmäyksellä tuntua askelta taaksepäin, tämä laatu tekee MCS51-mikro-ohjainperheestä erityisen sopivan ohjainpohjaisiin sovelluksiin. Jälkimmäisen toiminta-algoritmit edellyttävät tulo- ja lähtö Boolen muuttujia, joita on vaikea toteuttaa tavallisilla mikroprosessoreilla. Kaikkia näitä ominaisuuksia kutsutaan yhteisesti MCS51-perheen Boolen prosessoriksi. Tämä tehokas ALU tekee MCS51-mikro-ohjainperheestä sopivan sekä reaaliaikaisiin ohjaussovelluksiin että dataintensiivisiin algoritmeihin.

Mikro-ohjaimen piirikaavio on esitetty kuvassa. 3.2. Perusversiossa se on pakattu 40-nastaiseen DIP-pakettiin. Katsotaanpa nastojen tarkoitusta.

Aloitetaan virtanastoista «0 SISÄÄN" Ja "5 SISÄÄN" , jonka kautta hän saa perusravintoa. Nykyinen kulutus on esitetty taulukossa. 3.1.

Johtopäätös "RST" - mikro-ohjaimen nollaus. Kun aktiivinen korkea taso asetetaan tähän nastaan, tila yleistä nollaa ja MK suorittaa seuraavat toimet:

Nollaa PC-ohjelmalaskurin ja kaikki erikoistoimintorekisterit P0-P3-porttien salvat, SP-pinoosoittimen ja SBUF-rekisterin lukuun ottamatta;

    pinoosoitin saa arvon, joka on yhtä suuri kuin 07H;

    poistaa käytöstä kaikki keskeytyslähteet, ajastinlaskurin ja sarjaportin

    valitsee BANK 0 RAM:in, valmistelee portit P0-RZ tiedon vastaanottamista ja määritystä varten

jakaa ALE- ja PME-nastat ulkoisen kellon tuloina;

      rekistereissä erikoistoiminnot PCON, IP ja IE varatut bitit ottavat satunnaisia ​​arvoja, ja kaikki muut bitit nollataan;

      SBUF-rekisteri on asetettu satunnaisiin arvoihin.

      asettaa porttien P0-PZ salvat arvoon "1".

Mikro-ohjainrekisterien tilat nollauksen jälkeen on esitetty taulukossa 3.5.

Taulukko 3.5.

Tiedot

Epävarma

0ХХХ0000V k-MOS:lle 0XXXXXXXB n-MOS:lle

RST-nastalla on myös vaihtoehtoinen toiminto. Sen kautta syötetään varavirtaa, jotta mikro-ohjaimen RAM-muistin sisältö pysyy muuttumattomana, kun päämuisti poistetaan.

johtopäätöksiä BQ1, BQ2 on tarkoitettu kytkemään kvartsiresonaattori, joka määrittää MK:n kellotaajuuden.

Johtopäätös EA` (E xternal A pukeutua ulkoinen osoite) - Suunniteltu aktivoimaan ohjauskoodien lukemisen ulkoisesta ohjelmamuistista, kun aktiivinen matala taso kohdistetaan tähän nastaan. Ulostulolla on vaihtoehtoinen tarkoitus (toiminto). Se syötetään ohjelmointijännitteellä RPOM:sta ohjelmointitilassa.

Johtopäätös PME (P rogram M muisti E kyetä lupa muisti ohjelmia) - on suunniteltu ohjaamaan lukujaksoa ohjelmamuistista, ja MK aktivoi sen automaattisesti jokaisessa konesyklissä.

Johtopäätös ALE (A pukeutua L pituus E kyetä lupa juniori osoitteet) vilkkuu osoitteen alemman luokan lähdön portin P0 kautta. Lähtöä käytetään myös ohjelmoitaessa RPOM:ia, kun taas siihen syötetään ohjelmointiprosessin strobopulssi.

MK sisältää neljä porttiryhmää: P0, P1, P2 ja P3. Nämä ovat mikro-ohjaimen loput 40 nastaa. Nämä portit voivat palvella bitti kerrallaan tiedon syöttämistä ja tulostamista, mutta lisäksi jokaisella niistä on oma erikoisalansa. Portin yleinen toimintakaavio on esitetty kuvassa. 3.3. Portti sisältää nastan FET-lähtökytkimet, toimintokytkimen, D-kiikun salvan ja ohjauslogiikan. Yksikkö tai nolla voidaan kirjoittaa MK:n sisäisen väylän salpaan. Tämä tieto lähetetään toimintokytkimen kautta lähtökytkimille ja MK:n lähtöön. Yhdessä tilassa molemmat transistorit N ja N1 ovat kiinni, mutta N2 on auki. Nollatilassa N avautuu-

Xia ja N2 sulkeutuu. Kun portti suorittaa vaihtoehtoisen toiminnon, johon se on erikoistunut, lähdön lukitustila tyhjenee. Mikro-ohjain voi lukea erikseen porttisalvan tilan ja sen lähdön tilan ulkoisen signaalin asettamana. Tätä tarkoitusta varten MK-asentaja sisältää erityisiä komentoja, jotka aktivoivat vastaavat rivit. Voit lukea nastan tilan vastaavaan portin salpaan

olla äänitetty etukäteen

Sisäpuolelta

Ohjaussalpa

Toimintokytkin

Vcc

Viikonloppu

yksikkö. Kun lukusalpa-rivi on aktivoitu, näkyviin tulee sen "AND"-solun lähtö, johon tämä rivi on kytketty.

hänen renkaansa MK D Q

Kirjoita salpaan C Q

Lue salpa

Portin tappi

Lukitustila lähetetään MC:n sisäiseen väylään, kun se on aktivoitu

"lukulähtö" - portin ulkoisen nastan tila.

Portti P0 – universaali kaksisuuntainen portti

I/O Tämän sataman ulkopuolella

ulkoisten osoiteväylien järjestämistoiminto ja

Riisi. 3.3. Mikrokontrolleriportin toimintakaavio

tiedot ohjelmamuistin ja tietomuistin laajentamiseen

mikro-ohjain. Kun ulkoista ohjelmamuistia käytetään tai suoritetaan komento ulkoisen datamuistin käyttämiseksi, osoitteen alhainen osa (A0...A7) asetetaan portin nastoihin, joka on portitettu korkealle ALE-nastassa. Sitten, kun kirjoitetaan tietoja muistiin, tallennetut tiedot MK:n sisäisestä väylästä lähetetään P0-portin nastoihin. Lukutoiminnoissa päinvastoin tiedot portin nastaista lähetetään sisäiseen väylään. P0-portin ominaisuus on "pull-up"-transistorin N2 puuttuminen, joka antaa virran lähtöön. Kun kirjoitetaan yksikköportin salpaan, se yksinkertaisesti siirretään korkeaimpedanssiseen tilaan, mikä on välttämätöntä dataväylän normaalille toiminnalle. Jos on tarpeen antaa virtaa ulkoisille laitteille lähdön kautta, ulkoiset vastukset tulee toimittaa virtapiireistä portin lähtöön.

Portti P1 – universaali kaksisuuntainen I/O-portti ilman vaihtoehtoisia toimintoja.

Portti P2 – universaali kaksisuuntainen I/O-portti, joka vaihtoehtoisena toimintona antaa suurimman osan osoitteesta (A8...A15) ulkoista muistia käytettäessä.

Portti P3 – universaali kaksisuuntainen I/O-portti, jonka jokainen bitti mahdollistaa erilaisten vaihtoehtoisten toimintojen toteuttamisen. Tässä tapauksessa vaihtoehtoisia toimintoja toteutetaan vain, jos niitä on kirjoitettu portin nastojen salpoihin, muuten vaihtoehtoisten toimintojen suorittaminen estetään. Listataan ne erikseen jokaiselle bitille:

P3.0 RxD (R ead e X sisäinen D söi, lue ulkoisia tietoja) – sisäänrakennetun sarjalähetin-vastaanottimen syöttö.

P3.1 TxD (T joo e X sisäinen D ate, lähettää ulkoista dataa) – sisäänrakennetun sarjalähetin-vastaanottimen lähtö.

P3.2 INT0` (INT errupt, interrupt) – ulkoinen keskeytystulo 0.

P3.3 INT1` – ulkoinen keskeytystulo 1.

P3.4 С/T0 – nolla sisäänrakennettua ajastin/laskurituloa.

P3.5 C/T1 – ensimmäisen sisäänrakennetun ajastimen/laskurin syöttö.

P3.6 WR". (W rite, write) – lähtö datamuistin kirjoitusjakson ohjaamiseen.

P3.7 RD` (R ead, read) – lukujakson ohjauslähtö tietomuistista.

Porttien P1, P2 ja P3 nastat pystyvät tuottamaan noin 0,2 mA virran yksikköä kohden ja vastaanottamaan 3 mA virran nollassa; portin P0 nastat ovat tehokkaampia ja pystyvät antamaan noin 0,8 mA virran yhdessä yksikössä ja vastaanottaa 5 mA virran nollassa. Lyhyt tieto mikro-ohjaimen nastojen tarkoituksesta on annettu taulukossa 3.6.

Taulukko 3.6.

Nimitys

Tuotoksen tarkoitus

8-bittinen kaksisuuntainen portti P1. Osoitetulo A0-A7 tarkistettaessa sisäistä ROM-muistia (RPM)

syötä uloskäynti

Yleinen nollaussignaali. RAM-varavirtalähtö ulkoisesta lähteestä (1816)

8-bittinen kaksisuuntainen P3-portti lisäominaisuuksilla

syötä uloskäynti

Vastaanottimen sarjatiedot - RxD

Lähettimen sarjatiedot - TxD

Ulkoinen keskeytystulo 0-INT0`

Ulkoinen keskeytystulo 1-INT1`

Ajastin/laskuritulo 0: - T0

Ajastin/laskuritulo 1: - T1

Strobe-signaalin lähtö ulkoiseen muistiin kirjoitettaessa: - WR`

Strobe-signaalin lähtö luettaessa ulkoisesta tietomuistista – RD`

Johtimet kvartsiresonaattorin kytkemiseen.

poistu tulosta

Yleinen päätelmä

8-bittinen kaksisuuntainen portti P2. Osoite A8-A15 ulostulo ulkoisessa muistitilassa. Sisäisessä ROM-tarkistustilassa nastoja P2.0 - P2.6 käytetään osoitteiden A8-A14 tulona. Pin P2.7 - ROM-lukuoikeus.

syötä uloskäynti

Ohjelman muistin resoluutio

Osoitteen kiinnityksen mahdollistava lähtösignaali. Ohjelmoitaessa RPOM-signaalia: PROG

syötä uloskäynti

Työn estäminen sisäisellä muistilla. RPOM:ia ohjelmoitaessa annetaan UPR-signaali

syötä uloskäynti

8-bittinen kaksisuuntainen portti P0. Osoite/tietoväylä ulkoisen muistin kanssa työskentelemiseen. Datalähtö D7-D0 sisäisessä ROM (RPM) testitilassa.

syötä uloskäynti

Ulostulo +5V jännitelähteestä

LUENTTOSUUNNITELMA

1. Esittely

2. Aritmeettiset ja loogiset ohjeet

3. Tiedonsiirtokomennot

4. Boolen operaatiot

5. Hyppyohjeet

1. Esittely

Komentojärjestelmä MCS-51 tukee yhtä käskysarjaa, joka on suunniteltu suorittamaan 8-bittisiä toimilaitteen ohjausalgoritmeja. On mahdollista käyttää nopeita menetelmiä sisäisen RAM-muistin osoittamiseen ja bittitoimintojen suorittamiseen pienille tietorakenteille. Yksibittisten muuttujien osoittamiseen itsenäisenä tietotyyppinä on laaja järjestelmä, joka mahdollistaa yksittäisten bittien käytön Boolen algebran loogisissa ja ohjauskäskyissä.

Osoitustilat : komentosarja MCS-51 tukee seuraavia osoitetiloja. Suora osoitus: Operandi määräytyy käskyn 8-bittisen osoitteen mukaan. Suoraa osoitusta käytetään vain sisäisen tietomuistin ja rekisterien alimmalle puolelle SFR. Epäsuora osoitus: Käsky osoittaa operandin osoitteen sisältävän rekisterin. Tämä tyyppi osoitetta käytetään ulkoiselle ja sisäiselle RAM-muistille. Rekisterien avulla voidaan määrittää 8-bittisiä osoitteita R0 Ja R1 valittu rekisteripankki tai pinoosoitin SP. 16-bittisessä osoitteessa käytetään vain dataosoitinrekisteriä DPTR.

Rekisteröinnin ohjeet : rekisterit R0-R7 nykyiseen rekisteripankkiin voidaan ottaa yhteyttä erityisillä käskyillä, jotka sisältävät 3-bittisen kentän, joka osoittaa rekisterinumeron itse käskyssä. Tässä tapauksessa vastaava osoitekenttä puuttuu komennosta. Toiminnot erityisrekistereillä: joissakin ohjeissa käytetään yksittäisiä rekistereitä (esim. akkutoiminnot, DPTR, jne.). Tässä tapauksessa operandiosoitetta ei ole määritetty komennossa ollenkaan. Se on ennalta määritetty toimintakoodilla.

Välittömät vakiot : vakio voi sijaita suoraan komentokoodin jälkeen.

Indeksiosoite : Indeksiosoitetta voidaan käyttää vain ohjelmamuistiin pääsyyn ja vain lukutilassa. Tässä tilassa tarkastellaan ohjelmamuistissa olevia taulukoita. 16-bittinen rekisteri ( DPTR tai ohjelmalaskuri) osoittaa halutun taulukon kantaosoitteen ja akku ilmoittaa sisääntulokohdan siihen.

Komentosarjaon 42 komentomuistomerkkiä, jotka määrittävät tämän järjestelmän 33 toimintoa. Useimpien kokoonpanokielen käskyjen syntaksi koostuu funktiomuistomerkistä, jota seuraa operandit, jotka osoittavat osoitemenetelmiä ja tietotyyppejä. Erilaisia ​​tyyppejä data- tai osoitemoodit määräytyvät asetettujen operandien mukaan, eivät muistotekniikan muutoksilla.

Komentojärjestelmä voidaan jakaa viiteen ryhmään: aritmeettisia ohjeita; loogiset komennot; tiedonsiirtokomennot; bittiprosessorin komennot; haarautumis- ja ohjauskomennot. Komentojärjestelmässä käytetyt merkinnät ja symbolit on annettu alla.

Pöytä. Komentojärjestelmässä käytetyt merkinnät ja symbolit

Nimitys, symboli

Tarkoitus

Akku

Valitun rekisteripankin rekisterit

Komennossa määritetty ladatun rekisterin numero

suoraan

Suoraan osoitettava 8-bittinen sisäinen tietosoluosoite, joka voi olla sisäinen data-RAM-solu (0–127) tai SFR-erikoistoimintorekisteri (128–255)

Epäsuorasti osoitettavissa oleva 8-bittinen sisäinen data-RAM-solu

8-bittinen suoraan tiedot sisältyvät käyttökoodiin (OPC)

dataH

Merkittävimmät bitit (15–8) välittömästä 16-bittisestä tiedosta

dataL

Välittömän 16-bittisen datan vähiten merkitsevät bitit (7–0).

11-bittinen kohdeosoite

addrL

Vähiten merkitsevät kohdeosoitteen bitit

8-bittinen etumerkitty offsettavu

Suoraan osoitettava bitti, jonka osoite sisältää sisäisessä tietomuistissa tai erikoistoimintorekisterissä SFR sijaitsevan COP:n

a15, a14...a0

Kohdeosoitebitit

Elementin X sisältö

Sisältö elementtiin X tallennettuun osoitteeseen

Elementin X bitti M


+

*
JA
TAI
XOR
/X

Toiminnot:
lisäys
vähennyslasku
kertolasku
divisioonat
looginen kertolasku (AND-operaatio)
looginen lisäys (TAI-toiminto)
lisäys modulo 2 (yksinomainen TAI)
elementin X inversio

Funktiomuistomerkit liittyvät ainutlaatuisesti osoitusmenetelmien ja tietotyyppien tiettyihin yhdistelmiin. Yhteensä komentojärjestelmässä on 111 tällaista yhdistelmää.

2. Aritmeettiset ja loogiset ohjeet

Miten p esimerkki aritmeettinen opetus, lisäys voidaan suorittaa jollakin seuraavista komennoista.

LISÄTÄA,7 F 16 – lisää numero 7 A-rekisterin sisältöön F 16 ja tallenna tulos rekisteriin A;

LISÄTÄA,@ R0 – lisää rekisterin A sisältöön numero, jonka osoite (@ – kaupallinen klo ) on tallennettu rekisteriin R 0 (epäsuora osoitus) ja tallenna tulos rekisteriin A;

LISÄÄ A,R7– lisää rekisterin A sisältö rekisterin sisältöön R 7 ja tallenna tulos rekisteriin A;

LISÄÄ A,#127– lisää rekisterin A sisältöön numero, jonka tallennussolun osoite on 127 ( # – numerosymboli) ja tallenna tulos rekisteriin T-re A.

Kaikki aritmeettiset käskyt suoritetaan yhdessä konesyklissä käskyä lukuun ottamatta INC DPTR(tietoosoittimen siirtymä DPTR seuraavaan tavuun), joka vaatii kaksi konesykliä sekä kerto- ja jakooperaatioita 4 konejaksossa. Mitä tahansa sisäisen tietomuistin tavua voidaan kasvattaa ja pienentää ilman akkua.

Ohjeet MUL AB suorittaa akun tiedon kertomisen (kertomisen) rekisterin B tiedoilla ja sijoittaa tuotteen rekistereihin A (alhainen puoli) ja B (korkea puoli).

Ohjeet DIV AB jakaa (jakaa) akun sisällön rekisterissä B olevalla arvolla, jolloin jäännös jää B:hen ja osamäärä varaajaan.

Ohjeet DA A on tarkoitettu binäärisiin desimaaliaritmeettisiin operaatioihin (aritmeettisiin operaatioihin binäärisessä desimaalikoodissa esitettyjen lukujen kanssa). Se ei muunna binäärilukua BCD, mutta antaa oikean tuloksen vain, kun lisätään kaksi binaarilukua.

Esimerkki looginen komento: Looginen JA-toiminto voidaan suorittaa jollakin seuraavista komennoista:

ANLA,7 F 16 – rekisterin A sisällön looginen kertominen luvulla 7 F 16 ja tulos tallennetaan rekisteriin A;

ANLA,@ R1 – rekisterin A sisällön looginen kertominen numerolla, jonka osoite on tallennettu rekisteriin R 1 (epäsuora osoitus) ja tallenna tulos rekisteriin A;

ANL A,R6– rekisterin A sisällön looginen kertominen rekisterin sisällöllä R 6, ja tallenna tulos rekisteriin A;

ANL A,#53 – rekisterin A sisällön looginen kertominen luvulla, jonka tallennussolun osoite on 53 16, ja tulos tallennetaan rekisteriin A.

Kaikki loogiset toiminnot akun sisällölle suoritetaan yhdessä konesyklissä, loput kahdessa. Loogiset toiminnot voidaan suorittaa millä tahansa sisäisen tietomuistin alemmalla 128 tavulla tai mille tahansa rekisterille SFR (erikoistoimintorekisterit) suorassa osoitetilassa ilman paristoa.

Kiertosiirtotoiminnot RL A, RLC A jne. siirtävät akun sisältöä bitin oikealle tai vasemmalle. Vasemman syklisen siirron tapauksessa vähiten merkitsevä bitti siirretään merkittävimpään kohtaan. Oikean syklisen siirtymän tapauksessa tapahtuu päinvastoin.

Operaatio VAIHTO A vaihtaa akun matalan ja korkean tetradit.

3. Tiedonsiirtokomennot

Tiimi MOV dest,src voit siirtää tietoja sisäisten RAM-solujen tai välillä SFR käyttämättä akkua. Tässä tapauksessa työ sisäisen RAM-muistin yläosan kanssa voidaan suorittaa vain epäsuorassa osoitetilassa ja pääsy rekistereihin SFR– vain suoraosoitetilassa.

Kaikissa mikropiireissä MCS-51 Pino sijoitetaan suoraan pysyvään datamuistiin ja kasvaa ylöspäin. Ohjeet TYÖNTÄÄ lisää ensin arvoa pinon osoitinrekisterissä SP, ja kirjoittaa sitten tavun dataa pinoon. Joukkueet TYÖNTÄÄ Ja POP käytetään vain suoraosoitetilassa (kirjoitetaan tai palautetaan tavua), mutta pino on aina käytettävissä, kun osoitetaan epäsuorasti rekisterin kautta SP. Siten pino voi käyttää myös ylintä 128 tavua datamuistia. Samat seikat sulkevat pois mahdollisuuden käyttää pinokäskyjä rekistereiden osoittamiseen SFR.

Tiedonsiirtoohjeet sisältävät 16-bittisen siirtotoiminnon MOV DPTR,#data16, jota käytetään dataosoittimen rekisterin alustamiseen DPTR kun katselet taulukoita ohjelmamuistissa tai päästäksesi ulkoiseen tietomuistiin.

Operaatio XCH A, tavu käytetään tiedon vaihtamiseen akun ja osoitetun tavun välillä. Tiimi XCHD A,@Ri samanlainen kuin edellinen, mutta suoritetaan vain operandien vaihtoon osallistuville alemmille tetradeille.

Ulkoiseen datamuistiin pääsemiseksi käytetään vain epäsuoraa osoitetta. Yksitavuisten osoitteiden tapauksessa käytetään rekistereitä R0 tai R1 nykyinen rekisteripankki ja 16-bittiselle dataosoittimen rekisteri DPTR. Kaikilla tavoilla päästä käsiksi ulkoiseen datamuistiin, akku toimii tiedon lähteenä tai vastaanottajana.

Voit käyttää ohjelmamuistissa olevia taulukoita käyttämällä seuraavia komentoja:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Tietoosoitinrekisterin sisältöä käytetään taulukon kantaosoitteena DPTR tai PC(ohjelmalaskuri), ja siirtymä otetaan A. Näitä ohjeita käytetään yksinomaan tietojen lukemiseen ohjelmamuistista, mutta ei siihen kirjoittamiseen.

4. Boolen operaatiot

Mikropiirit MCS-51 sisältää Boolen prosessorin. Sisäisessä RAM-muistissa on 128 suoraan osoitettavaa bittiä. Erikoistoimintorekisteritila SFR voi myös tukea jopa 128-bittisiä kenttiä. Bittikäskyt suorittavat ehdollisia haaroja, siirtoja, nollauksia, käännöksiä sekä JA- ja TAI-operaatioita. Kaikki määritetyt bitit ovat käytettävissä suoraosoitetilassa.

Kanna vähän CF erikoistoimintorekisterissä "ohjelman tilasana" P.S.W." käytetään yksibittisenä akuna Boolen prosessorille.

5. Hyppyohjeet

Hyppyoperaatioiden osoitteet ilmaistaan ​​kokoonpanokielellä etiketillä tai todellisella arvolla ohjelmamuistitilassa. Ehdolliset haaraosoitteet kootaan suhteelliseksi siirtymäksi - merkkitavuksi, joka lisätään ohjelmalaskuriin PC jos siirtymäehto täyttyy. Tällaisten siirtymien rajat ovat välillä miinus 128 ja 127 suhteessa käskyn jälkeiseen ensimmäiseen tavuun. Erikoistoimintorekisterissä "ohjelman tilasana" P.S.W."ei ole nollalippua, joten ohjeet JZ Ja JNZ tarkista ehto "yhtä nolla" akun tietojen testaamiseksi.

On olemassa kolmenlaisia ​​ehdottomia hyppykomentoja: SJMP, LJMP Ja AJMP– kohdeosoitteet, joiden muoto eroaa. Ohjeet SJMP koodaa osoitteen suhteelliseksi siirtymäksi ja ottaa kaksi tavua. Hyppyetäisyys on rajoitettu alueelle miinus 128 - 127 tavua suhteessa seuraavaan ohjeeseen SJMP.

Ohjeissa LJMP Kohdeosoitetta käytetään 16-bittisenä vakiona. Komennon pituus on kolme tavua. Kohdeosoite voi sijaita missä tahansa ohjelmamuistissa.

Tiimi AJMP käyttää 11-bittistä osoitevakiota. Komento koostuu kahdesta tavusta. Kun tämä käsky suoritetaan, osoitelaskurin alemmat 11 bittiä korvataan käskyn 11-bittisellä osoitteella. Ohjelmalaskurin viisi tärkeintä bittiä PC pysyä muuttumattomana. Siten siirtyminen voidaan tehdä 2K-tavuisen lohkon sisällä, jossa käskyä seuraava käsky sijaitsee AJMP.

Aliohjelmalle on olemassa kahdenlaisia ​​komentokutsuja: LCALL Ja SOITTO. Ohjeet LCALL käyttää kutsutun aliohjelman 16-bittistä osoitetta. Tässä tapauksessa aliohjelma voi sijaita missä tahansa ohjelmamuistissa. Ohjeet SOITTO käyttää 11-bittistä aliohjelman osoitetta. Tässä tapauksessa kutsutun rutiinin on sijaittava yhdessä 2 kt:n tavun lohkossa seuraavan käskyn kanssa SOITTO. Molemmat käskyn versiot työntävät seuraavan käskyn osoitteen pinoon ja lataavat sen ohjelmalaskuriin PC vastaava uusi arvo.

Aliohjelma päättyy ohjeeseen RET, jonka avulla voit palata komentoa seuraavaan ohjeeseen PUHELU. Tämä ohje ponnahtaa paluuosoitteen pois pinosta ja lataa sen ohjelmalaskuriin. PC . Ohjeet RETI käytetään palaamaan keskeytysrutiineista. Ainoa ero RETI alkaen RET onko tuo RETI ilmoittaa järjestelmälle, että keskeytyksen käsittely on valmis. Jos toteutushetkellä RETI ei ole muita keskeytyksiä, niin se on identtinen RET.

Ohjeet DJNZ suunniteltu ohjaamaan sykliä. Suorittaaksesi silmukan N kun sinun täytyy ladata tavu arvon kanssa laskuriin N ja sulje silmukan runko komennolla DJNZ, joka osoittaa jakson alun.

Tiimi CJNE vertaa kahta operandiaan etumerkittömiin kokonaislukuihin ja hyppää siinä määritettyyn osoitteeseen, jos verrattavat operandit eivät ole samanarvoisia. Jos ensimmäinen operandi on pienempi kuin toinen, niin siirtobitti CF on asetettu arvoon "1".

Kaikki ohjeet koottuna vievät 1, 2 tai 3 tavua.

MIKRO-OHJAUSPERHEEN ARKKITEHTIMCS-51

Luentomuistiinpanot kursseille

"Mikroprosessorit ohjausjärjestelmissä", "Mikroprosessoritekniikka"

"Mikroprosessorityökalut ja -järjestelmät"

kaikentyyppisten erikoisalojen opiskelijoille

072000 – Standardointi ja sertifiointi

210200 – Teknisten prosessien automatisointi

230104 – Tietokoneavusteiset suunnittelujärjestelmät

Tambov 2005

JOHDANTO.. 3

1. INTEL 8051 MIKROOHJAIN RAKENNE 3

1.1. Muistin organisointi. 5

1.2. Aritmeettis-looginen laite. 6

1.3. Residenssimuisti ohjelmille ja datalle. 7

1.4. Akku- ja yleisrekisterit. 8

1.5. Ohjelman tilasanarekisteri ja sen liput. 9

1.6. Osoitinrekisterit. 10

1.7. Erikoistoimintorekisterit. yksitoista

1.8. Ohjaus- ja synkronointilaite. yksitoista

1.9. Tietojen rinnakkaistulo/lähtöportit. 12

1.10. Ajastimet/laskurit. 13

1.11. Sarjaportti. 18

1.11.1. Rekisteröidy SBUF.. 18

1.11.2. Sarjaportin toimintatilat. 18

1.11.3. Rekisteröidy SCON.. 19

1.11.4. Vastaanotto/lähetysnopeus. 21

1.12. Keskeytä järjestelmä. 22

2. INTEL 8051 MIKROOHJAIMEN KÄYTTÖJÄRJESTELMÄ.

2.1. Yleistä tietoa. 26

2.1.1. Komentojen tyypit. 27

2.1.2. Operandityypit. 28

2.1.3. Tietojen osoitusmenetelmät. kolmekymmentä

2.1.4. Tulosliput. 31

2.1.5. Symbolinen osoitus. 32

2.2. Tiedonsiirtokomennot. 33

2.2.1. Tietolinkkien rakenne. 33

2.2.2. Pääsy akkuun. 33

2.2.3. Ulkoisen datamuistin käyttö. 34

2.2.4. Ohjelmamuistin käyttö... 34


2.2.5. Pääsy pinoon. 35

2.3. Aritmeettiset operaatiot. 35

2.4. Loogiset operaatiot. 39

2.5. Ohjaa siirtokomentoja. 43

2.5.1. Pitkä siirtymä. 43

2.5.2. Absoluuttinen siirtymä. 43

2.5.3. Suhteellinen siirtymä. 44

2.5.4. Epäsuora siirto. 44

2.5.5. Ehdolliset hyppyt.. 44

2.5.6. Aliohjelmat.. 47

2.6. Operaatiot bittien kanssa. 48

Testikysymykset... 49

KIRJALLISUUS.. 50

Liite INTEL 8051 KOMENTOJÄRJESTELMÄ 51

JOHDANTO

1900-luvun 80-luvulta lähtien mikroprosessoriteknologiaan on syntynyt itsenäinen luokka integroidut piirit– yksisiruiset mikro-ohjaimet, jotka on suunniteltu integroitaviksi eri tarkoituksiin tarkoitettuihin laitteisiin. Ne erottuvat yksisiruisten mikroprosessorien luokasta sisäisen muistin ja kehittyneiden keinojen vuorovaikutukseen ulkoisten laitteiden kanssa.

MCS-51-perheen 8-bittisiä yksisiruisia mikrokontrollereita käytetään laajalti. Tämä perhe muodostettiin Intel 8051 -mikro-ohjaimen pohjalta, joka on saavuttanut suuren suosion mikroprosessoriohjausjärjestelmien kehittäjien keskuudessa hyvin suunnitellun arkkitehtuurinsa ansiosta. Mikrokontrolleriarkkitehtuuri on joukko sisäisiä ja ulkoisia ohjelmistolla saavutettavia laitteistoresursseja ja komentojärjestelmiä.

Myöhemmin Intel julkaisi noin 50 mallia, jotka perustuivat Intel 8051 -mikro-ohjaimen käyttöytimeen.Samaan aikaan monet muut yritykset, kuten Atmel, Philips, alkoivat tuottaa omia MCS-51-standardin mukaisia ​​mikrokontrollereita. On myös kotimainen analogi Intel 8051 mikro-ohjain - K1816BE51 siru.

2. INTEL 8051 MIKROOHJAIMEN RAKENNE

Intel 8051 -mikro-ohjain perustuu korkean tason n-MOS-tekniikkaan. Sen tärkeimmät ominaisuudet ovat seuraavat:

· kahdeksanbittinen keskusprosessori, joka on optimoitu ohjaustoimintojen toteuttamiseen;

· sisäänrakennettu kellogeneraattori (maksimitaajuus 12 MHz);

· ohjelmamuistin osoiteavaruus - 64 KB;

· tietomuistin osoiteavaruus - 64 KB;

· sisäinen ohjelmamuisti - 4 KB;

· sisäinen tietomuisti - 128 tavua;

· lisäominaisuudet Boolen algebran operaatioiden suorittamiseen (bittikohtaiset operaatiot);

· 2 16-bittistä monitoimiajastinta/laskuria;

· full-duplex asynkroninen lähetin-vastaanotin (sarjaportti);

· vektoroitu keskeytysjärjestelmä, jossa on kaksi prioriteettitasoa ja viisi tapahtumalähdettä.

Kuva 1 - Intel 8051 -mikroohjaimen lohkokaavio

Lohkokaavion (kuva 1) perustan muodostaa sisäinen kaksisuuntainen 8-bittinen väylä, joka yhdistää mikro-ohjaimen pääsolmut ja laitteet: pysyvä ohjelmamuisti (RPM), pysyvä datamuisti (RDM), aritmeettis-looginen yksikkö (ALU), rekisteriyksikön erikoistoiminnot, ohjausyksikkö (CU), rinnakkaiset I/O-portit (P0-P3) sekä ohjelmoitavat ajastimet ja sarjaportti.

2.1. Muistin organisaatio

Tässä mikro-ohjaimessa on sisäänrakennettu (asuva) ja ulkoinen muisti ohjelmia ja tietoja varten. Residentin ohjelmamuistin (RPM) kapasiteetti on 4 kilotavua ja pysyvän datamuistin (RDM) kapasiteetti on 128 tavua.


Mikro-ohjaimen modifikaatiosta riippuen RPM toteutetaan maski-ROM-, kerta-ohjelmoitavan tai uudelleenohjelmoitavan ROM-muodossa.

Tarvittaessa käyttäjä voi laajentaa ohjelmamuistia asentamalla ulkoisen ROM:n. Pääsy sisäiseen tai ulkoiseen ROM-muistiin määräytyy nastassa EA (ulkoinen pääsy) olevan signaalin arvon perusteella:

EA=VCC (syöttöjännite) - pääsy sisäiseen ROM-muistiin;

EA=VSS (maapotentiaali) - pääsy ulkoiseen ROM-muistiin.

Ulkoinen ohjelma- ja datamuisti voi olla kooltaan 64 kilotavua ja ne voidaan osoittaa porttien P0 ja P2 kautta. Kuvassa 2 on Intel 8051 -muistikortti.

Kuva 2 - Intel 8051 -muistin organisaatio

Ulkoisen ROM-muistin lukuvalo - (Ohjelmatallennus käyttöön) syntyy, kun käytetään ulkoista ohjelmamuistia, ja se ei ole aktiivinen sirulla olevaa ROM-muistia käytettäessä.

Alempien ohjelmamuistiosoitteiden aluetta (kuva 3) käyttää keskeytysjärjestelmä. INTEL 8051 -siruarkkitehtuuri tukee viittä keskeytyslähdettä. Osoitteita, joihin keskeytyksen ohjaus siirretään, kutsutaan keskeytysvektoreiksi.

Kuva 3 - Alemman ohjelmamuistialueen kartta

2.2. Aritmeettinen logiikkayksikkö

8-bittinen aritmeettinen logiikkayksikkö (ALU) voi suorittaa aritmeettisia yhteen-, vähennys-, kerto- ja jakolaskuoperaatioita; loogiset operaatiot JA, TAI, poissulkevat TAI, samoin kuin sykliset siirrot, nollaukset, käännöstoiminnot jne. Ohjelmiston käyttökelvottomat rekisterit T1 ja T2, jotka on tarkoitettu operandien tilapäiseen tallentamiseen, desimaalikorjauspiiri (DCU) ja piirteiden generointipiiri on kytketty tulojen toimintatulokseen (PSW).

Yksinkertaista summaustoimintoa käytetään ALU:ssa lisäämään rekisterien sisältöä, siirtämään dataosoittimen rekisteriä (RAR) eteenpäin ja laskemaan automaattisesti seuraavan ohjelman pysyvä muistiosoite. Yksinkertaisinta vähennysoperaatiota käytetään ALU:ssa rekistereiden pienentämiseen ja muuttujien vertailuun.

Yksinkertaisimmat operaatiot muodostavat automaattisesti "tandemeja" suorittamaan operaatioita, kuten esimerkiksi 16-bittisten rekisteriparien lisäämistä. ALU toteuttaa mekanismin yksinkertaisten toimintojen peräkkäiseen suorittamiseen monimutkaisten komentojen toteuttamiseksi. Joten esimerkiksi suoritettaessa jotakin ehdollisen ohjauksen siirtokomentoa, ALU:n vertailutulokseen perustuen, ohjelmalaskuria (PC) kasvatetaan kolme kertaa, RDM luetaan kahdesti, suoritetaan kahden muuttujan aritmeettinen vertailu, muodostetaan 16-bittinen siirtymäosoite ja päätetään, tehdäänkö siirtymä ohjelman mukaan vai ei. Kaikki yllä mainitut toiminnot suoritetaan vain 2 μs:ssa.

ALU:n tärkeä ominaisuus on sen kyky käyttää tavujen lisäksi myös bittejä. Yksittäisiä ohjelmiston käytettävissä olevia bittejä voidaan asettaa, tyhjentää, kääntää, lähettää, testata ja käyttää loogisissa operaatioissa. Tämä kyky on varsin tärkeä, koska objektien ohjaamiseen käytetään usein algoritmeja, jotka sisältävät operaatioita tulo- ja lähtö Boolen muuttujiin, joiden toteuttamiseen liittyy tiettyjä vaikeuksia tavanomaisten mikroprosessorien avulla.

Siten ALU voi toimia neljän tyyppisten tietoobjektien kanssa: Boolen (1 bittiä), digitaalista (4 bittiä), tavua (8 bittiä) ja osoitetta (16 bittiä). ALU suorittaa 51 erilaista toimintoa näiden tietojen välittämiseksi tai muuntamiseksi. Koska osoitteita on 11 (7 datalle ja 4 osoitteelle), yhdistämällä toiminta ja osoitustila, 111 käskyn perusmäärä kasvaa 255:een 256:sta mahdollisesta yksitavuisella opkoodilla.

2.3. Resident-ohjelma ja datamuisti

Residential (on-chip) ohjelmamuisti (RPM) ja datamuisti (RDM) ovat fyysisesti ja loogisesti erotettuja, niillä on erilaiset osoitemekanismit, ne toimivat eri signaalien ohjauksessa ja suorittavat erilaisia ​​toimintoja.

RPM-ohjelmamuistin kapasiteetti on 4 KB ja se on suunniteltu tallentamaan komentoja, vakioita, alustuksen ohjaussanoja, muunnostaulukoita tulo- ja lähtömuuttujille jne. Muistissa on 16-bittinen osoiteväylä, jonka kautta pääsy tapahtuu PC-ohjelmalaskuri tai rekisteristä dataosoitin (DPTR). DPTR toimii perusrekisterinä epäsuoralle ohjelmahypylle tai sitä käytetään taulukkooperaatioissa.

RDM-tietomuisti on suunniteltu tallentamaan muuttujia sovellusohjelman suorituksen aikana, se on osoitettavissa yhdellä tavulla ja sen kapasiteetti
128 tavua. Lisäksi sen osoiteavaruus on erikoistoimintorekisterien osoitteiden vieressä, jotka on lueteltu taulukossa. 1.

Ohjelmamuistia, kuten datamuistia, voidaan laajentaa
64 kt liittämällä ulkoisia siruja.

pöytä 1

Erikoistoimintorekisterilohko

Nimi

Akku

Akun laajennusrekisteri

Ohjelman tilasana

Pinoosoitinrekisteri

Dataosoittimen rekisteri

Keskeytä prioriteettirekisteri

Keskeytä maskirekisteri

Ajastin/laskuritilarekisteri

Ajastinohjaus/tilarekisteri

Ajastin 0 (suuri tavu)

Ajastin 0 (pieni tavu)

Ajastin 1 (suuri tavu)

Ajastin 1 (pieni tavu)

Lähetin-vastaanottimen ohjausrekisteri

Lähetin-vastaanottimen puskuri

Tehonsäätörekisteri

Huomautus. Rekisterit, joiden nimet on merkitty (*), mahdollistavat yksittäisten bittien osoittamisen.

2.4. Akku ja yleisrekisterit

Akku (A) on operandin lähde ja tuloksen sijainti suoritettaessa aritmeettisia, loogisia operaatioita ja useita tiedonsiirtooperaatioita. Lisäksi siirtotoiminnot, nollan tarkistaminen, pariteettilipun generointi jne. voidaan suorittaa vain käyttämällä akkua.

Käyttäjällä on käytössään neljä 8 yleisrekisterin R0–R7 pankkia (kuva 9). On kuitenkin mahdollista käyttää vain yhden neljästä pankista, joka valitaan PSW-rekisteribitillä.

2.5. Ohjelman tilasanarekisteri ja sen liput

Kun ALU:ssa suoritetaan monia käskyjä, syntyy joukko operaatioattribuutteja (lippuja), jotka tallennetaan ohjelman tilasanarekisteriin (PSW). Taulukossa 2 tarjoaa luettelon PSW-lipuista, antaa niiden symboliset nimet ja kuvaa niiden muodostumisen edellytykset.

taulukko 2

PSW-ohjelman tila Word-muoto

Nimi ja tarkoitus

Kanna lippua. Aseta ja nollaa laitteisto tai ohjelmisto suorittaessasi aritmeettisia ja loogisia operaatioita

Ylimääräinen kantolippu. Vain laitteisto asettaa ja tyhjentää, kun yhteen- ja vähennyskäskyjä suoritetaan ja se signaloi siirtoa tai lainaa bitissä 3

Lippu 0. Ohjelma voi asettaa, tyhjentää tai tarkistaa käyttäjän määrittämänä lippuna.

Rekisteröintipankin valinta. Määritä ja nollaa ohjelmistolla toimivan rekisteripankin valitseminen (taulukko 3)

Ylivuoto lippu. Aseta ja nollaa laitteisto, kun suoritat aritmeettisia operaatioita

Ei käytetty

Pariteetin lippu. Asettaa ja nollaa laitteiston jokaisessa syklissä ja korjaa parittoman/parillisen ykköbittien määrän akussa, eli suorittaa pariteetin

Taulukko 3

Toimivan rekisteripankin valinta

Osoitteen rajat

"Aktiivisin" PSW-lippu on siirtolippu, joka on mukana ja jota muokataan monien toimintojen aikana, mukaan lukien yhteen-, vähennys- ja siirrot. Lisäksi siirtolippu (CY) toimii "Boolen akkuna" bittimanipulointikäskyissä. Ylivuotolippu (OV) havaitsee aritmeettisen ylivuodon etumerkillisissä kokonaislukuoperaatioissa ja mahdollistaa aritmeettisen käytön kahden komplementtikoodeissa. ALU ei ohjaa rekisteripankin valintalippuja (RS0, RS1), niiden arvon määrittää kokonaan sovellusohjelma ja sitä käytetään valitsemaan yksi neljästä rekisteripankista.

Tavuna PSW-rekisteri voidaan esittää seuraavasti:

Mikroprosessoreissa, joiden arkkitehtuuri perustuu akkuun, useimmat käskyt toimivat akulla käyttämällä implisiittistä osoitusta. Intel 8051 on erilainen. Vaikka prosessori perustuu akkuun, se voi suorittaa monia komentoja ilman sen osallistumista. Esimerkiksi dataa voidaan siirtää mistä tahansa RDM-solusta mihin tahansa rekisteriin, mihin tahansa rekisteriin voidaan ladata välitön operandi jne. Monet loogiset toiminnot voidaan suorittaa ilman akkua. Lisäksi muuttujia voidaan lisätä, pienentää ja tarkistaa ilman akkua. Liput ja ohjausbitit voidaan tarkistaa ja muuttaa samalla tavalla.

2.6. Osoitinrekisterit

8-bittinen pinoosoitin (SP) voi osoittaa mitä tahansa RDM-aluetta. Sen sisältöä kasvatetaan ennen kuin tiedot tallennetaan pinoon PUSH- ja CALL-käskyjen aikana. SP:n sisältöä pienennetään POP- ja RET-komentojen suorittamisen jälkeen. Tätä pinoelementtien osoittamismenetelmää kutsutaan preincrement/post-decrementiksi. Mikro-ohjaimen alustuksen aikana RST-signaalin jälkeen koodi 07H ladataan automaattisesti SP:hen. Tämä tarkoittaa, että ellei sovellusohjelma ohita pinoa, pinon ensimmäinen tietoelementti sijaitsee RDM-paikassa 08H.

Kaksitavuista dataosoitinrekisteriä DPTR käytetään tyypillisesti 16-bittisen osoitteen sieppaamiseen ulkoisen muistin käyttötoiminnoissa. Mikrokontrollerikomennoilla dataosoitinrekisteriä voidaan käyttää joko 16-bittisenä rekisterinä tai kahtena itsenäisenä 8-bittisenä rekisterinä (DPH ja DPL).

2.7. Erikoistoimintorekisterit

Rekisterejä, joiden symbolinen nimi on IP, IE, TMOD, TCON, SCON ja PCON, käytetään keskeytyspiirin, ajastimen/laskurin, sarjalähetin-vastaanottimen ja virranhallinnan ohjaus- ja tilabittien lukitsemiseen ja ohjelmointiin. Niiden organisaatio kuvataan yksityiskohtaisesti kohdissa 1.8-1.12, kun tarkastellaan mikro-ohjaimen ominaisuuksia eri tiloissa.

2.8. Ohjaus- ja synkronointilaite

Mikrokontrollerin ulkoisiin nastoihin kytketty kvartsiresonaattori ohjaa sisäisen oskillaattorin toimintaa, joka puolestaan ​​tuottaa synkronointisignaaleja. Ohjausyksikkö (CU) generoi synkronointisignaalien perusteella kiinteän kestoisen konejakson, joka vastaa 12 generaattorijaksoa. Suurin osa mikro-ohjaimen käskyistä suoritetaan yhdessä konesyklissä. Jotkin 2-tavuisia sanoja käyttävien tai ulkoista muistia käyttävien ohjeiden suorittaminen kestää kaksi konesykliä. Vain jako- ja kertolaskukäskyt vaativat neljä konesykliä. Näiden ohjauslaitteen toimintaominaisuuksien perusteella lasketaan sovellusohjelmien suoritusaika.

Mikrokontrolleripiirissä ohjauslaitteen vieressä on käskyrekisteri (IR). Sen tehtävänä on tallentaa suoritettavan komennon koodi.

Ohjaus- ja synkronointilaitteen tulo- ja lähtösignaalit:

1. PSEN – ohjelmamuistin resoluutio,

2. ALE – osoitteen kiinnityksen mahdollistava lähtösignaali,

3. PROG – ohjelmointisignaali,

4. EA – sisäisen muistin käytön estäminen,

5. VPP – ohjelmointijännite,

6. RST – yleinen palautussignaali,

7. VPD – muistin varavirtalähtö ulkoinen lähde,

8. XTAL – liitäntätulot kvartsi resonaattori.

2.9. Rinnakkaiset tulo/lähtöportit

Kaikki neljä porttia (P0-P3) on suunniteltu syöttämään tai tulostamaan tietoa tavu kerrallaan. Jokainen portti sisältää ohjatun salparekisterin, syöttöpuskurin ja lähtöohjaimen.

Porttien P0 ja P2 lähtöajureita sekä portin P0 tulopuskuria käytetään ulkoiseen muistiin käytettäessä. Tässä tapauksessa portin P0 kautta aikamultipleksointitilassa osoitteen alhainen tavu tulostetaan ensin ja sitten datatavu annetaan tai vastaanotetaan. Portti P2 tulostaa osoitteen merkittävimmän tavun tapauksissa, joissa osoitteen leveys on 16 bittiä.

Kaikkia portin P3 nastoja voidaan käyttää taulukossa lueteltujen vaihtoehtoisten toimintojen toteuttamiseen. 4. Nämä toiminnot voidaan ottaa käyttöön kirjoittamalla 1 portin P3 salparekisterin (P3.0-P3.7) vastaaviin bitteihin.

Taulukko 4

Vaihtoehtoiset P3-porttitoiminnot

Nimi ja tarkoitus

Lukeminen. Laitteisto tuottaa aktiivisen matalan tason signaalin, kun ulkoista muistia käytetään

Ennätys. Laitteisto tuottaa aktiivisen matalan tason signaalin, kun ulkoista muistia käytetään

Ajastin/laskuritulo 1 tai testitulo

Ajastin/laskuritulo 0 tai testitulo

Keskeytyspyynnön tulo 1. Tunnistelee matalan tason tai katkaisusignaalin

Keskeytyspyynnön tulo 0. Tunnistelee matalan tason tai katkaisusignaalin

Sarjaportin lähettimen lähtö UART-tilassa. Kellon lähtö siirtorekisteritilassa

Sarjaportin vastaanottimen tulo UART-tilassa. Tietojen syöttö/lähtö siirtorekisteritilassa

Portti 0 on kaksisuuntainen ja portit 1-3 ovat lähes kaksisuuntaisia. Jokaista porttilinjaa voidaan käyttää itsenäisesti tulona tai lähtönä.

RST-signaalin perusteella yksiköt kirjoitetaan automaattisesti kaikkien porttien lukitusrekistereihin, jolloin ne asetetaan tulotilaan.

Kaikkia portteja voidaan käyttää järjestämään tiedon syöttö/tulostus kaksisuuntaisten siirtolinjojen kautta. Portteja P0 ja P2 ei kuitenkaan voida käyttää tähän tarkoitukseen, jos järjestelmässä on ulkoinen muisti, jonka kanssa viestintä on järjestetty yhteisen jaetun osoite/dataväylän kautta, joka toimii aikamultipleksointitilassa.

I/O-portteihin pääsy on mahdollista komennoilla, jotka toimivat tavulla, yksittäisellä bitillä tai mielivaltaisella bittien yhdistelmällä. Lisäksi tapauksissa, joissa portti on sekä operandi että tuloksen kohde, ohjauslaite toteuttaa automaattisesti erityistilan nimeltä "lue-muokkaa-kirjoita". Tämä pääsytila ​​sisältää signaalien syöttämisen ei portin ulkoisista nastoista, vaan sen salparekisteristä, mikä eliminoi aiemmin tulostetun tiedon virheellisen lukemisen. Tämä porttien käyttömekanismi on toteutettu komennoissa:




Yläosa