MK portok programozása C nyelven 51. Mikrokontrollerek MCS–51: programmodell, felépítés, parancsok. Port olvasási mód

MCS-51 alapverzió Rövid információ. A modern 8 bites mikrokontrollerek (MC-k) olyan valós idejű vezérlési erőforrásokkal rendelkeznek, amelyekhez korábban drága többchipes elrendezéseket használtak külön mikroszámítógépes kártyák formájában, nevezetesen:

● elegendő memóriakapacitással rendelkezik, annak fizikai és logikai felosztása programmemóriára és adatmemória(Harvard architektúra) és egy vezérlő algoritmusok végrehajtására összpontosító parancsrendszer;

● tartalmazzon minden olyan eszközt (processzor, ROM, RAM, bemeneti/kimeneti portok, megszakítási rendszer, bitinformáció feldolgozására szolgáló eszközök stb.), amely egy minimális konfigurációs mikroprocesszor-vezérlő rendszer megvalósításához szükséges. A múlt század 70-es éveiben a cég Intel 8 bites MCS-48 mikrokontroller családot fejlesztettek ki, amelyet számos közös jellemző (bitkapacitás, parancsrendszer, fő funkcionális blokkok halmaza, stb.) egyesít és ipari termelésbe bocsátott. Ennek a családnak az alapváltozata a következőket tartalmazza:

● 8 bites processzor;

● belső programmemória (1/2/4K bájt);

● belső adatmemória (64/128/256 bájt);

● akár 27 belső és 16 külső I/O vonal;

● egy 8 bites időzítő számláló;

● egyszintű megszakítási rendszer két kérésforrással. 1980-ban ugyanez a cég kifejlesztett egy új nyolcbites mikrokontroller családot, az MCS-51-et, amely kompatibilis az MCS-48 család architektúrájával, de nagyobb képességekkel rendelkezik.

Az MCS-51 család architektúrája olyan sikeresnek bizonyult, hogy még mindig a 8 bites MK-k szabványai közé tartozik. Ezért a vizsgálat tárgyát ennek a családnak a mikrovezérlőinek választották, amelyeket széles körben használnak viszonylag egyszerű vezérlőrendszerekben.

Az MCS-51 családhoz különféle program-előkészítő eszközöket fejlesztettek ki (fordítók, hardver-szoftver emulátorok stb.), és számos szabványos rutin könyvtár található. A család a mikrovezérlők mikroáramkörök (chip változatai) különféle módosításait tartalmazza. Az ebben a részben található cikkek részletesen tárgyalják az MCS-51 család mikrovezérlőinek alapváltozatát (a 8051-es mikroáramkör megfelel a hazai analóg KP1816BE51-nek), amely szerkezeti és funkcionális szempontból, valamint a megértés szempontjából a legegyszerűbb.

A mikroáramkörök későbbi sorozata, miközben megőrzi a kompatibilitást az alapváltozattal, a továbbfejlesztett gyártástechnológiában különbözik attól, elektromos paraméterek, további hardver és funkcionalitás. A következő cikkek az MCS-51 mikroáramkörök későbbi módosításainak szerkezeti és funkcionális jellemzőivel foglalkoznak.
Az MCS-51 általánosított blokkvázlata. Az MC összetétele, amelynek általánosított blokkdiagramja az ábrán látható. A 7.1.1 a következőket tartalmazza:

● 8 bites CPU CPU-ból áll ALU, vezérlőeszközök U Ués címgenerátor F;

● maszk ROM 4K bájt kapacitással a programok tárolására;

● RAM 128 bájt kapacitással adattároláshoz;

● négy programozható port P0-P3 a bemenethez- információ kimenet;

● blokk soros interfész BPI külső eszközökkel történő információcseréhez kétvezetékes vonalon keresztül;

● BT/C időzítők/számlálók blokkja a valós idejű mód fenntartásához;

● BP megszakítási blokk a végrehajtható programok megszakításainak szervezéséhez. Ezek az alapok kialakulnak lakos a mikrokontroller része, amely közvetlenül a chipen található. Az MK nagyszámú regisztert tartalmaz, amelyek külön funkcionális blokkhoz vannak hozzárendelve, és nem szerepelnek a diagramon.

A diagram nem mutatja a vezérlőáramköröket sem. A blokkok közötti kétirányú információcsere belső 8 biten keresztül történik adatbuszШД-8.

Belső 16 bitessel címbuszША-16 A CPU-ban generált cím a ROM-ba (12 címbit) és a RAM-ba (8 alacsonyrendű bit) kerül kiadásra.

Külső memória használatakor a cím 8 legkisebb jelentőségű bitje a P0 portra, a 3 vagy 8 legjelentősebb bit pedig a P2 portra kerül.

Az interfész logikai bővítéséhez a portvonalak funkcióinak kombinálását használják. Példaként az ábrán. 7.1.1 a pontozott vonal a P3 port teljesítő vonalait mutatja alternatív vezérlőjelek továbbításának funkciói, amelyek célját az alábbiakban tárgyaljuk. Belső órajelgenerátor létrehozásához egy kvarc rezonátort és két kondenzátort csatlakoztatunk az MK mikroáramkör kivezetéseihez (7.1.1. ábra). A belső órajelgenerátor helyett külső oszcillációs forrás is használható a szinkronizáláshoz. Feltételes grafikai megjelölés Az MK mikroáramkörök az ábrán láthatók. 7.1.2, csapok megnevezése és rendeltetése - táblázatban. 7.1.1. Tekintsük az MK funkcionális blokkjait és működési elvét. Aritmetikai logikai eszköz. Az aritmetikai logikai eszközt úgy tervezték, hogy nyolcbites operandusokon aritmetikai (beleértve a szorzást és osztást is) és logikai műveleteket, valamint logikai eltolási, nullázási, beállítási műveleteket hajtson végre. Az ALU blokkvázlata az ábrán látható. 7.1.3.

Az ALU tartalmazza

● párhuzamos nyolcbites vipera Kombinációs típusú SM szekvenciális átvitellel, aritmetikai (összeadás és kivonás) és logikai (összeadás, szorzás, eltérés és azonosság) műveleteket végrehajtva;

A akkumulátor, a fő aritmetikai regiszter funkcióinak biztosítása;

Regisztráció B, szorzási és osztási műveletek végrehajtására vagy kiegészítő szuperműveleti regiszterként, amelynek funkcióit a felhasználó határozza meg;

regisztereket(a szoftver nem elérhető) Átmeneti tárolóРВХ1, РВХ2, operandusok fogadására és tárolására szolgál a művelet időtartama alatt;

● ROM állandók ROM, amely tárolja a korrekciós kódot az adatok bináris decimális megjelenítéséhez, a maszkkódot a bitműveletekhez és a konstansok kódját;

program állapot szóregiszter PSW, amely rögzíti az ALU állapotát egy befejezett művelet után. táblázatban A 7.1.2 a PSW regiszter egyes bitjei bitjeinek hozzárendeléséről ad tájékoztatást. Vezérlő eszköz. A központi processzor vezérlőegysége (CU). szándékolt koordinációra együttműködés minden MK csomópont generált óraimpulzusokat és vezérlőjeleket használ. A következőkből áll (7.1.4. ábra):

szinkronizálás és vezérlő egység A vezérlőrendszer, amely a gépi ciklusokat és azok egyedi állapotait (S) és fázisait (P) meghatározó órajel-impulzusokat generál, és a mikrokontroller működési módjától függően generálja a szükséges vezérlőjel-készletet. Egy parancs végrehajtásához egy, két vagy négy gépi ciklus szükséges.

Minden gépciklusnak van hat állam S1–S6, A mindegyik állapot magában foglalja két fázis P1, P2, melynek időtartama a T 0SC órajelgenerátor rezgési periódusa.

A gépi ciklus időtartama 12T 0SC. Minden gépciklus azonos, az S1P1 fázistól kezdve az S6P2 fázisig.

A szinkronizáló eszköz az órajel impulzusokon kívül két (néha egy) kapuzási jelet generál az ALE cím alacsony bájtjára minden gépciklusban pozitív impulzus formájában az S1P2–S2P1 és az S4P2–S5P1 fázisokban. Időzítési diagramok az ábrán. 7.1.5 szemléltesse a gépi ciklusok szervezését;

● RK parancsregiszter, parancs dekóder DC és PLM, lehetővé téve minden egyes gépi ciklusban mikroműveletek készletének előállítását a végrehajtott parancs mikroprogramjával összhangban;

● LVV bemeneti/kimeneti logika jelek fogadásához és kiadásához, amely biztosítja az információcserét az MK-tól külső eszközökkel a P0–P3 portokon keresztül;

● PCON regiszter, amely egyetlen engedélyezett SMOD bittel rendelkezik a PCON.7 pozícióban a soros port adatsebességének megduplázására. A fennmaradó bitek későbbi használatra vannak fenntartva.
Cím generátor. Címgenerátor (FA), vagy PC parancsszámláló, szándékolt a programmemória aktuális 16 bites címének és a külső adatmemória 8/16 bites címének kialakításához. A következőkből áll (7.1.6. ábra):

● 16 bites puffer B, amely a 8 bites SD adatbusz és a címképző 16 bites belső busza (IB) között kommunikál;

● SI inkrementális áramkör az aktuális cím értékének növelésére programmemória egységenként;

● regiszter az SI-ből érkező PTA parancsok aktuális címének tárolására;

● adatmutató regiszter DPTR , két 8 bites DPH és DPL regiszterből áll. A külső adatmemória 16 bites címének tárolására szolgál, és két független szoftverrel elérhető RON-ként használható;

● az XRF címgenerátor regisztere a programmemória végrehajtó 16 bites címének vagy a külső adatmemória 8/16 bites címének tárolására. Ez a regiszter adatátvitelre is szolgál a P0 porton keresztül külső eszközök a MOVX @Rm, A és MOVX @DPRT, A parancsok végrehajtásakor.

Adatmemória. Adatmemória szándékolt a programvégrehajtás során használt információk fogadására, tárolására és kiadására. A belső (rezidens) adatmemória (7.1.7. ábra) 128 bájt kapacitású RAM-ból áll, veremmutató S.P. címjegyzék RAM RA és dekóder Dsh. Az SP veremmutató egy 8 bites regiszter, amelyet az utoljára elért veremcella címének fogadására és tárolására terveztek. Az alaphelyzetbe állítás után a veremmutató a 07H címre áll, ami megfelel a 08H címû verem elejének. A PA címregiszter a Dsh dekóderrel együtt lehetővé teszi a hozzáférést a szükséges memóriacellához, amely egy bájtot vagy bitnyi információt tartalmaz.

Az MK lehetővé teszi az adatmemória kapacitásának 64 KB-ig történő növelését csatlakoztatással külső tárolóeszközök. Példaként az ábrán. A 7.1.8 a 2K bájt kapacitású külső VPD adatmemória oldalszervezését mutatja MOVX típusú parancsokkal @ Rm (m = 0; 1). Ebben az esetben a P0 port multiplexelt cím/adatbuszként működik, a P2 port három sora a külső RAM oldalának címezésére szolgál, a maradék öt sor pedig bemeneti/kimeneti vonalként használható.
ábrán. A 7.1.9 az olvasási és írási ciklusok időzítési diagramjait mutatja be, amikor az MK külső RAM-mal működik. A diagramok a következőket mutatják:

● RSN - a PC parancsszámláló magas bájtja;

● DPL, DPH - a DPTR adatmutató regiszter alsó és felső bájtjai, amely regiszterként szolgál közvetett címzésre a MOVX @DPTR,A és MOVX A,@DPTR parancsokban;

● P2 SFR - P2 portreteszek;

● Rm (m = 0, 1) - a MOVX @Rm, A és MOVX A, @Rm utasításokban használt regiszterek közvetett címregiszterként;

● Z - nagy ellenállású állapot;

● D - az az időtartam, amely alatt a P0 portról származó adatok bekerülnek a mikrokontrollerbe. Program memória. A programmemória programok tárolására szolgál, saját (az adatmemóriától elkülönült) címterével rendelkezik, és csak olvasható. Tartalmaz egy Dsh dekódert és ROM-ot (7.1.10. ábra). A programmemória címezésére 16 bites PC-számláló szolgál, így a maximális kapacitása 64K bájt. A belső programmemória egy 4K bájtos ROM-ból és egy 12 bites dekódolóból áll. A külső memória csatlakoztatása az ábrán látható diagram szerint történik. 7.1.11. Ha 0 V feszültséget kap az MK ¯EA érintkezője (ahogy az a 7.1.11. ábrán látható), belső memória programok le vannak tiltva. Minden memória-hozzáférés a 0000h címen kezdődik. Ha az ¯EA érintkezőt áramforráshoz csatlakoztatja, a 0000h–FFFFh címen lévő belső programmemóriához és a 0FFFh–FFFFh címen a külső programmemóriához való hozzáférés automatikusan megtörténik.

Az MK programok külső memóriájának olvasásához a ¯PSEN jel generálódik. Ha belső memóriával dolgozik, az olvasási jel nem használatos. A külső programmemória elérésekor mindig 16 bites cím jön létre. A cím alacsony bájtja a P0 porton keresztül kerül továbbításra a gépi ciklus első felében, és rögzítésre kerül a regiszterben lévő ALE villogó metszésével. adatokat a külső memóriából az MK-ba.

A cím legjelentősebb bájtja a P2 porton keresztül kerül továbbításra a teljes memóriaelérési idő alatt.

Az olvasási és írási ciklusok időzítési diagramja látható, amikor az MK külső RAM-mal működik. 7.1.12.
A diagramok a következőket mutatják:

● PCL OUT - a PC-programszámláló alacsony bájtjának kimenete;

● RSN OUT - a PC parancsszámláló magas bájtjának kimenete;

● DPH - a DPTR adatmutató regiszter magas bájtja, amely a MOVX @DPTR,A és MOVX A,@DPTR utasításokban regiszterként szolgál közvetett címzésre;

● P2 SFR - P2 portreteszek;

● INS IN - az utasítás (parancs) byte bevitele a programmemóriából;

● ADDR OUT - a külső adatmemória címének alsó bájtjának kiadása az Rm regiszterekből (m = 0, 1) vagy a DPL regiszterből (DPTR alacsony regiszter). I/O portok. Port hozzárendelés. P0, P1, P2, P3 portok szándékolt az MK és a külső eszközök közötti információcseréhez, valamint a következő funkciók végrehajtásához:

● az A7…A0 cím alsó bájtja a P0 porton keresztül kerül kiadásra; külső programmemóriával és külső adatmemóriával (időben elválasztva) végzett munka során egy adatbájt kerül kiadásra az MK-ból, és bekerül az MK-ba;

● a P2 porton keresztül az A15...A8 cím magas bájtja kerül kiadásra, ha külső programmemóriával és külső adatmemóriával dolgozik (csak MOVX A,@DPTR és MOVX @DPTR,A parancsok használatakor);

● A P3 port sorai alternatív funkciók végrehajtására használhatók, ha ennek a sornak a reteszébe 1 van beírva, ellenkező esetben a vonalkimeneten 0. A P3 port érintkezőinek alternatív funkciói a táblázatban találhatók. 7.1.3.

A portok áramköri jellemzői

ábrán. 7.1.13 diagramokat mutat be az egyes MK portok egy-egy csatornájához, beleértve:

● retesz a vett adatbit rögzítésére;

● kimeneti erősítő vízesés(sofőr);

● csomópont kapcsolattal végfok (kivéve P2);

● egy áramkör adatbit átvitelére a port kimeneti oldaláról, amely B2 és B3 pufferekből áll (a P4 porthoz). A retesz egy D-flip-flop, amely a belső „Write to latch” jellel működik. A D flip-flop közvetlen kimenetének adatbitje programozottan beolvasható a B1 pufferen keresztül a „Read Latch” jel segítségével az MK belső adatbuszának (ID) vonalához.

Kimeneti szakasz A P0 port egy inverter, amelynek jellemzői abban nyilvánulnak meg, hogy a VT2 terhelési tranzisztor csak a külső memória elérésekor nyílik meg (címek és adatok továbbításakor a porton keresztül). Minden más üzemmódban a terhelési tranzisztor zárva van. Ezért ahhoz, hogy a P0-t (7.1.13. ábra, a) általános célú kimeneti portként használhassuk, külső terhelési ellenállásokat kell csatlakoztatni a kapcsaihoz. Amikor a portreteszre 1-et írunk, a VT1 invertertranzisztor reteszelődik, és a P0.X port külső érintkezője nagy ellenállású állapotba kerül. Ebben az üzemmódban a P0.X port kimenete szolgálhat bemenetként. Ha a P0 portot általános célú I/O portként használják, minden P0.X érintkezője függetlenül működhet bemenetként vagy kimenetként. Kimeneti szakaszok P1, P2, P3 portok (7.1.13. ábra, b, c, d) inverter áramkörök szerint készült belső terhelő ellenállással, amelyet VT2 tranzisztorként használnak.

A kapcsolási idő csökkentése érdekében, amikor a port érintkezői 0 állapotból 1 állapotba váltanak, egy további VT3 tranzisztor került beépítésre a VT2 terheléstranzisztorral párhuzamosan. A VT3 tranzisztor a kapuáramkör elemeit használva a fő kvarcoszcillátor két rezgési periódusának megfelelő időre feloldódik (a gépi ciklus S1P1, S2P2 fázisai alatt). Kimeneti szakaszok A P0, P2 portok (7.1.13. ábra, A, c) az MX multiplexerrel akár reteszekre, akár a belső „Cím/adatok” és „Cím” buszokra csatlakoztathatók. A P1 port kimeneti fokozata (7.1.13, 6. ábra) állandóan a reteszhez van kötve.

Ha a P3 port tűje kimenet, és a retesz 1-et tartalmaz, akkor a kimeneti fokozatát hardver vezérli belső jel"Alternatív kimeneti funkció", amely a megfelelő alternatív funkció végrehajtását biztosítja, azaz. a ¯WR, ¯RD vagy RxD jelek egyike generálódik a külső érintkezőn. Ha a port kimenetet bemenetként használjuk, akkor az arra érkező alternatív jel (TxD, ¯INT0, ¯INT1, T0, T1) az „Alternatív bemeneti funkció” belső vonalára kerül.

Port rögzítési mód.

Amikor egy portírási parancsot végrehajtanak, az új érték az S6P2 fázisban lévő reteszbe íródik, és a következő gépciklus S1P1 fázisában közvetlenül a port kimeneti lábára kerül.

Port olvasási mód

A portolvasási parancsok közvetlenül a port külső érintkezőiről vagy a reteszelő kimenetekről olvasnak információkat. Az első esetben a port érintkezőjének adatbitje programozottan beolvasásra kerül a B2 pufferen keresztül a „Read Pins” jel segítségével az MK belső adatbuszának (SD) vonalára. Ne feledje, hogy a „Reteszelés írása”, „Reteszelés olvasása”, „Olvasási tűk” jelek a hardverben generálódnak a megfelelő parancsok végrehajtásakor.

A második esetben az úgynevezett „Read-Modify-Write” mód valósul meg, amelyben a parancs beolvassa a reteszelés állapotjelét, szükség esetén módosítja, majd visszaírja a reteszbe. Az „Olvasás-Módosítás-Írás” mód a következő parancsok végrehajtásakor kerül megvalósításra: ANL, ORL, XRL, JBC; CPL; INC; DECEMBER; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

A reteszek kimeneteiből származó információk kiolvasása lehetővé teszi a hibák kiküszöbölését a port érintkezőjének logikai szintjének értelmezésekor. Olvassa el a cikk folytatását.

Az MCS-51 család felépítését nagymértékben meghatározza a rendeltetése - az építés kompaktÉs olcsó digitális eszközök. A mikroszámítógép összes funkciója egyetlen mikroáramkörrel valósul meg. Az MCS-51 család a mikroáramkörök egész sorát tartalmazza a legegyszerűbb mikrokontrollerektől a meglehetősen bonyolultakig. Az MCS-51 család mikrovezérlői lehetővé teszik a különböző eszközök vezérlési feladatainak elvégzését és az egyes alkatrészek megvalósítását analóg áramkör. Ennek a családnak az összes mikroáramköre működik ugyanazzal a parancsrendszerrel, legtöbbjüket azonos esetekben hajtják végre hozzáillő pinout(lábak számozása a test számára). Ez lehetővé teszi a különböző gyártók (például Intel, Dallas, Atmel, Philips stb.) mikroáramkörök használatát a kifejlesztett eszközhöz. átdolgozás nélkül sematikus ábrája eszközök és programok.

1. ábra A K1830BE751 vezérlő blokkvázlata

A vezérlő blokkvázlata az 1. ábrán látható, és a következő fő funkcionális egységekből áll: vezérlőegység, aritmetikai-logikai egység, időzítő/számláló egység, soros interfész és megszakító egység, programszámláló, adatmemória és programmemória. A kétirányú kommunikáció belső 8 bites adatbusz segítségével történik. Nézzük meg közelebbről az egyes blokkok célját. Az MCS-51 család szinte minden tagja e séma szerint épül fel. Ennek a családnak a különböző mikroáramkörei csak a speciális célú regiszterekben (beleértve a portok számát) különböznek. Parancsrendszer minden vezérlő Az MCS-51 család 111-et tartalmaz alapvető parancsokat 1, 2 vagy 3 bájtos formátummal, és nem változik az egyik chipről a másikra való váltáskor. Ez biztosítja a program kiváló hordozhatóságát egyik chipről a másikra.

Vezérlő és szinkronizáló egység

Az időzítő és vezérlő egység olyan szinkronizálási és vezérlőjeleket generál, amelyek biztosítják a nagyszámítógép-egységek együttes működésének összehangolását minden megengedett üzemmódban. A vezérlőegység a következőket tartalmazza:

  • időintervallumok kialakítására szolgáló eszköz,
  • bemenet-kimenet logika,
  • parancsregiszter
  • energiagazdálkodási nyilvántartás,
  • parancsdekóder, számítógépes vezérlési logika.

Időintervallumok kialakítására szolgáló eszköz fázisok, órajelek és ciklusok belső órajeleinek generálására és kiadására tervezték. A gépi ciklusok száma határozza meg az utasítások időtartamát. Szinte minden számítógépes parancs végrehajtása egy vagy két gépi ciklusban történik, kivéve a szorzási és osztási utasításokat, amelyek végrehajtási időtartama négy gépi ciklus. Jelöljük a mester oszcillátor frekvenciáját F g-vel, ekkor a gépi ciklus időtartama 12/Fg vagy a mester oszcillátor jelének 12 periódusa. Az I/O logikát olyan jelek fogadására és kimenetére tervezték, amelyek a P0-P3 bemeneti/kimeneti portokon keresztül biztosítják az információcserét a külső eszközökkel.

Parancsregiszter a végrehajtott parancs 8 bites műveleti kódjának rögzítésére és tárolására szolgál. A műveleti kódot parancsok és számítógépes vezérlőlogika segítségével a parancs végrehajtására szolgáló mikroprogrammá alakítjuk.

Demand Control Register (PCON) lehetővé teszi a mikrokontroller leállítását az energiafogyasztás csökkentése és a mikrokontroller okozta interferencia szintjének csökkentése érdekében. Az energiafogyasztás és az interferencia még nagyobb csökkentése érhető el a mikrokontroller fő oszcillátorának leállításával. Ez a PCON fogyasztásvezérlő regiszter bitjeinek váltogatásával érhető el. Az n-MOS gyártási opciónál (1816-os sorozatú vagy külföldi chipek, amelyek nevük közepén nincs „c”) a PCON fogyasztásvezérlő regiszter csak egy bitet tartalmaz, amely a soros port SMOD adatátviteli sebességét szabályozza, ill. nincsenek energiafogyasztást vezérlő bitek.

Az "MCS-51 mikrokontrollerek felépítése" cikkel együtt olvasható:


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

Jelenleg a különböző vállalatok számos módosítást és analógot gyártanak ebből a családból, mind az Intel, mind más gyártók által, az órajel és a memóriakapacitás tízszeresére nőtt, és folyamatosan növekszik. Bővül az LSI-be épített modulok készlete is, a modern modellek nagy része beépített rezidens nagysebességű ADC-vel rendelkezik, akár 12 bittel, és most több is lehet. Az MCS51 család azonban az Intel LSI 8051, 80С51, 8751, 87С51, 8031, 80С31 típusokon alapul, amelyek első mintáit 1980-ban adták ki.

Az MCS51 család mikrovezérlői kiváló minőségű n-MOS technológiával (8ХХХ sorozat, analóg - 1816-os sorozat Oroszországban és Fehéroroszországban) és k-MOS technológiával (8ХСХХ sorozat, analóg - 1830 sorozat) készülnek. A 8 utáni második karakter azt jelenti: 0 – nincs EPROM a chipen, 7 – 4K EPROM ultraibolya törléssel. Harmadik karakter: 3 – chipen belüli ROM, 5 – ha nincs ROM, akkor van egy maszk ROM a chipen.

Tehát a 80С51 egy k-MOS technológián alapuló LSI maszk ROM-mal a chipen, a 8031 ​​egy n-MOS LSI programmemória (ROM, RPOM) nélkül egy chipen, a 8751 egy n-MOS LSI rezidens (a chipen található) RPOM ultraibolya törléssel. Tovább fogjuk vizsgálni a 8751 LSI-t, szükség esetén fenntartásokat fogalmazva meg a többi áramkör közötti különbségekkel kapcsolatban, hivatkozva azokra a paraméterekre, amelyeket az első soros LSI-k esetében tettek közzé. Ha szükséges, minden modern módosításról további információkat találhat a cégjegyzékekben és a műszaki dokumentációkban.

A. Általános jellemzők és csapok hozzárendelései

Az MCS51 család az MK öt (azonos alapjellemzőkkel rendelkező) módosításán alapul, amelyek között a fő különbség a programmemória megvalósítása és az energiafogyasztás (lásd 3.1. táblázat). A mikrokontroller nyolcbites, azaz. nyolcbites szavak feldolgozására szolgáló parancsokkal rendelkezik, Harvard architektúrájú, a család alapmintáinak órajel-frekvenciája 12 MHz.

3.1. táblázat.

Mikro áramkörök

Belső programmemória, byte

Program memória típusa

Belső adatmemória, bájt

Órajel frekvencia, MHz

Áramfelvétel, mA

Az MK 8051 és 80C51 maszkokkal programozható ROM programmemóriát tartalmaznak, amelynek kapacitása 4096 bájt a chip gyártása során, és tömeggyártásra tervezték. Az MK 8751 4096 bájtos RPOM-ot tartalmaz ultraibolya törléssel, és kényelmes a rendszerfejlesztési szakaszban a programok hibakeresése során, valamint a kis tételekben történő gyártás során vagy olyan rendszerek létrehozásakor, amelyek működése során újraírást igényelnek.

időszakos kiigazítás.

Az MK 8031 ​​és 80C31 nem tartalmaz beépített programmemóriát. A korábban ismertetett módosításokhoz hasonlóan akár 64 KB külső programmemóriát is használhatnak, és hatékonyan használhatók olyan rendszerekben, amelyek lényegesen nagyobb (4 KB-nál a chipen) ROM programmemóriát igényelnek.

A család minden MK-ja 128 bájt kapacitású rezidens adatmemóriát tartalmaz, amely külső RAM IC-k használatával akár 64 KB-ra bővítheti a RAM-adatok teljes mennyiségét.

    nyolc bites központi processzor;

    4 KB programmemória (csak 8751 és 87C51);

    128 bájtos adatmemória;

    négy nyolcbites programozható I/O port;

    két 16 bites többmódusú időzítő/számláló;

    automatikus vektoros megszakítási rendszer öt vektorral és két szoftver által vezérelt prioritási szinttel;

    soros interfész, beleértve egy univerzális duplex adó-vevőt, amely négy üzemmódban képes működni;

    óra generátor.

Az MK parancsrendszer 111 alapvető parancsot tartalmaz 1, 2 vagy 3 bájt formátumban. A mikrokontroller rendelkezik:

    32 általános célú RON regiszter négy, egyenként R0...R7 nevű, nyolc regiszterből álló bankba szervezve, az egyik vagy másik bank kiválasztását a program határozza meg a megfelelő bitek beállításával a PSW programállapot-regiszterben;

    128 szoftver által vezérelt jelző (bit processzor, lásd alább);

    speciális függvények regisztereinek halmaza, amelyek MK elemeket vezérelnek. A mikrokontrollernek a következő üzemmódjai vannak:

1). Általános visszaállítás. 2) Normális működés. 3). Alacsony energiafogyasztású és üresjárati üzemmód. 4). Programozási mód a rezidens RPOM-hoz, ha elérhető.

Itt az első két üzemmódra összpontosítunk, az MK összetételének és működésének részletes leírása minden üzemmódban a P1. függelékben található.

A RON és a bitprocesszor terület a rezidens RAM címterében található 0 és 80h közötti címekkel.

A lakossági RAM-címek felső zónájában speciális funkcióregiszterek (SFR, Special Function Registers) találhatók. Céljukat a táblázat tartalmazza. 3.2.

3.2. táblázat.

Kijelölés

Név

Akkumulátor

Regisztráció B

Programállapot-nyilvántartás

Veremmutató

Adatmutató. 2 bájt:

Alacsony bájt

Magas bájt

A prioritási nyilvántartás megszakítása

Megszakítás engedélyezése regiszter

Időzítő/számláló mód regisztrálása

Timer/Counter Control Register

Időzítő/számláló 0. Magas bájt

Időzítő/számláló 0. Alacsony bájt

Időzítő/számláló 1. Magas bájt

Időzítő/számláló 1. Alacsony bájt

Soros port vezérlés

Soros puffer

Fogyasztás menedzsment

* - nyilvántartások, lehetővé téve bitenként megszólítás

Nézzük meg röviden a 3.2. táblázatban látható SFR regiszterek funkcióit.

Akkumulátor ACC - akkumulátoros regiszter. Működésre tervezett parancsok

az akkumulátorral használja például az "A" emlékeztetőt, MOV A, P2 . Az ACC emlékeztetőt például akkor használják, amikor egy akkumulátort bitenként címeznek. Így az A5M51 assembler használatakor az akkumulátor ötödik bitjének szimbolikus neve a következő lesz: ACC. 5. .

Regisztráció BAN BEN . Szorzási és osztási műveleteknél használatos. Egyéb utasítások esetén a B regiszter további valós idejű regiszterként kezelhető.

Regisztráció állapot programokat P.S.W. információkat tartalmaz a program állapotáról, és részben automatikusan, az elvégzett művelet eredménye alapján, részben a felhasználó települ. A regiszterbitek megnevezését és rendeltetését a 3.3. és 3.4. táblázat tartalmazza.

3.3. táblázat.

Kijelölés

3.4. táblázat.

Kijelölés

Bit hozzárendelés

Bit hozzáférés

Hordj zászlót. Változások egy sor aritmetikai és logikai utasítás végrehajtása során.

Hardver vagy szoftver

További hordozási zászló. Beállítás/törlés a hardverben az összeadási vagy kivonási utasítások során, hogy jelezze a 3. bitben történő átvitelt vagy kölcsönzést, amikor az eredmény legkevésbé jelentős nibble-je (D0-D3) keletkezik.

Hardver vagy szoftver

Flag 0. Felhasználó által meghatározott jelző.

Programozottan

Programozottan

Working Register Bank Index

Programozottan

0. bank címekkel (00Н - 07Н) 1. bank címekkel (08Н - 0FН) 2. bank címekkel (10Н - 17Н) 3. bank címekkel (18Н - 1FН)

Túlcsordulás zászló. A hardver beállítja vagy törli az aritmetikai utasítások végrehajtása során, hogy jelezze a túlcsordulási állapotot

Hardver vagy szoftver

Tartalék. Használható írható és olvasható triggert tartalmaz

Paritás bit. Hardver alaphelyzetbe állítása vagy beállítása minden utasítási ciklusban, hogy jelezze a páros vagy páratlan számú akkumulátorbitet "1" állapotban.

Hardver vagy szoftver

Mutató Kazal SP - Egy 8 bites regiszter, amelynek tartalma növekszik, mielőtt adatokat írna a verembe, amikor PUSH és CALL utasításokat hajtanak végre. A kezdeti alaphelyzetbe állításkor a veremmutató 07H-ra áll, és az adat-RAM-ban lévő veremterület a 08H címen kezdődik. Ha szükséges, a veremmutató felülbírálásával a veremterület bárhol elhelyezhető a mikrokontroller adatainak belső RAM-jában.

Mutató adat DPTR magas bájtból (DPH) és alacsony bájtból áll

(DPL). 16 bites címet tartalmaz a külső memória elérésekor. Használható

lehet egy 16 bites regiszter vagy két független nyolc bites regiszter.

Port0 - PortZ. A P0, P1, P2, RZ speciális függvények regisztereinek külön bitjei a P0, P1, P2, RZ portok „reteszelő” bitjei.

Puffer következetes kikötő SBUF két külön regisztert képvisel: az adó pufferét és a vevő pufferét. Amikor adatot írnak az SBUF-ba, az bekerül az adó pufferébe, és egy bájt írása az SBUF-ba automatikusan kezdeményezi az átvitelt a soros porton keresztül. Amikor az adatokat az SBUF-ból olvassa be, a rendszer a vevő pufferéből tölti le.

Regiszterek időzítő. A regiszterpárok (TH0, TL0) és (TH1, TL1) 16-ot alkotnak

bitszámláló regiszterek az időzítő/számláló 0 és az időzítő/számláló 1 számára.

Regiszterek menedzsment. Az IP, IE, TMOD, TCON, SCON és PCON speciális funkciók regiszterei tartalmazzák a megszakítási rendszer vezérlőbitjeit és állapotbitjeit, idő-

mérő/számláló és soros port. Az alábbiakban részletesen tárgyaljuk őket.

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

Működés közben az MC a következőket nyújtja:

    az összeadási parancsok minimális végrehajtási ideje 1 μs;

    hardveres szorzás és osztás minimum 4 μs végrehajtási idővel.

Az MK lehetővé teszi a belső oszcillátor frekvenciájának beállítását kvarc, LC lánc vagy külső oszcillátor segítségével.

A kibővített utasításrendszer bájt- és bitcímzést, bináris és bináris decimális aritmetikát, túlcsordulás jelzést és páros/páratlan meghatározást, valamint logikai processzor megvalósításának lehetőségét biztosítja.

Az MCS51 család architektúrájának legfontosabb és legmeghatározóbb jellemzője, hogy az ALU képes egybites adatok manipulálására a 8 bites adattípusokon végzett műveletek mellett. Az egyes szoftverrel elérhető bitek beállíthatók, törölhetők, vagy kiegészítésükkel helyettesíthetők, továbbíthatók, ellenőrizhetők és

3.2. ábra. Külső csapok

mikrokontroller

logikai számításoknál használják. mivel az egyszerű adattípusok támogatása (ha elérhető)

Noha a szóhosszabbítás jelenlegi tendenciája első pillantásra visszalépésnek tűnhet, ez a minőség az MCS51 mikrokontrollercsaládot különösen alkalmassá teszi vezérlő alapú alkalmazásokhoz. Utóbbiak működési algoritmusai feltételezik a bemeneti és kimeneti Boole-változók jelenlétét, amelyek szabványos mikroprocesszorokkal nehezen megvalósíthatók. Mindezeket a tulajdonságokat összefoglalóan az MCS51 család logikai processzorának nevezzük. Ez a nagy teljesítményű ALU teszi az MCS51 mikrokontroller családot alkalmassá valós idejű vezérlési alkalmazásokhoz és adatintenzív algoritmusokhoz egyaránt.

A mikrokontroller kapcsolási rajza az ábrán látható. 3.2. Az alapváltozatban 40 tűs DIP csomagba van csomagolva. Nézzük a csapok célját.

Kezdjük a tápcsapokkal «0 BAN BEN" És "5 BAN BEN" , amelyen keresztül alapvető táplálékot kap. Az aktuális fogyasztást a táblázat tartalmazza. 3.1.

Következtetés "RST" - mikrokontroller reset. Ha aktív magas szintet alkalmaznak erre a tűre, a mód Tábornok Visszaállítás és MK a következő műveleteket hajtja végre:

Nullára állítja a PC-programszámlálót és az összes speciális funkcióregisztert, kivéve a P0-P3 portreteszeket, az SP veremmutatót és az SBUF regisztert;

    a veremmutató 07H-val egyenlő értéket vesz fel;

    letiltja az összes megszakítási forrást, az időzítő számlálót és a soros számlálót

    kiválasztja a BANK 0 RAM-ot, előkészíti a P0-RZ portokat az adatok fogadására és meghatározására

megosztja az ALE és PME érintkezőket külső órajel bemenetként;

      lajstromokban speciális funkciókat A PCON, IP és IE fenntartott bitek véletlenszerű értékeket vesznek fel, és az összes többi bit nullára áll vissza;

      az SBUF regiszter véletlenszerű értékekre van állítva.

      a P0-PZ portok reteszeit "1"-re állítja.

A mikrokontroller regisztereinek visszaállítás utáni állapotát a 3.5. táblázat mutatja.

3.5. táblázat.

Információ

Bizonytalan

0ХХХ0000 V k-MOS esetén 0XXXXXXXB n-MOS esetén

Az RST tűnek van egy alternatív funkciója is. A tartalék tápellátást ezen keresztül látják el, hogy a mikrokontroller RAM-jának tartalma változatlan maradjon, amikor a fő vezérlőt eltávolítják.

következtetéseket BQ1, BQ2 az MK órajelét meghatározó kvarc rezonátor csatlakoztatására szolgálnak.

Következtetés EA` (E xternal A ruha külső cím) - Arra tervezték, hogy aktiválja a vezérlőkódok külső programmemóriából történő kiolvasásának módját, amikor aktív alacsony szintet alkalmaznak erre a lábra. A kimenetnek alternatív célja (funkciója) van. Programozási üzemmódban az RPOM-ról kap programozási feszültséget.

Következtetés PME (P rogram M emória E nable engedély memória programokat) - a programmemóriából történő olvasási ciklus vezérlésére szolgál, és az MK automatikusan aktiválja minden gépi ciklusban.

Következtetés ALE (A ruha L hosszában E nable engedély junior címek) villog a cím alacsony rendű részének kimenete a P0 porton keresztül. A kimenetet az RPOM programozásakor is használják, miközben a programozási folyamathoz villogó impulzust kap.

Az MK négy portcsoportot tartalmaz: P0, P1, P2 és P3. Ez a mikrokontroller maradék 40 tűje. Ezek a portok szolgálhatnak bitenkénti információbevitelre és -kimenetre, de emellett mindegyiknek megvan a maga specializációja. A port általánosított funkcionális diagramja az ábrán látható. 3.3. A port a lábhoz csatlakoztatott FET kimeneti kapcsolókat, egy funkciókapcsolót, egy D flip-flop reteszt és vezérlőlogikát tartalmaz. Egy egység vagy nulla írható az MK belső buszának reteszébe. Ezt az információt a funkciókapcsolón keresztül továbbítják a kimeneti kapcsolókhoz és az MK kimenetéhez. Az egyik állapotban mindkét N és N1 tranzisztor zárt, de az N2 nyitott. Nulla állapotban N megnyílik-

Xia, és az N2 bezár. Abban a pillanatban, amikor egy port alternatív funkciót hajt végre, amelyre specializálódott, a kimeneti reteszelés állapota törlődik. A mikrokontroller külön-külön tudja leolvasni a portretesz állapotát és a kimenetének állapotát, külső jellel beállítva. Erre a célra az MK assembler speciális parancsokat tartalmaz, amelyek aktiválják a megfelelő sorokat. A tű állapotának a megfelelő portreteszbe történő beolvasásához a

előre rögzíteni kell

Belsőről

Vezérlőretesz

Funkció kapcsoló

Vcc

Hétvége

Mértékegység. Amikor az „olvasási zár” sor aktiválva van, megjelenik annak az „ÉS” cellának a kimenete, amelyhez ez a sor csatlakozik.

abroncsai MK D Q

Írjon a C Q reteszbe

Olvassa le a reteszt

Port pin

A reteszelés állapota az MC belső buszára kerül továbbításra, amikor aktiválva van

„olvasási kimenet” - a port külső érintkezőjének állapota.

Kikötő P0 – univerzális kétirányú port

I/O Ezen a kikötőn túl

a külső címbuszok szervezési funkciója és

Rizs. 3.3. A mikrokontroller portjának működési diagramja

adatok a program- és adatmemória bővítéséhez

mikrokontroller. A külső programmemória elérésekor vagy a külső adatmemória eléréséhez szükséges parancs végrehajtása során a cím alsóbbrendű része (A0...A7) a port érintkezőinél van beállítva, amely az ALE lábon magasan kapuzott. Ezután az adatok memóriába írásakor az MK belső buszáról felvett információ a P0 port lábaira kerül. Az olvasási műveleteknél éppen ellenkezőleg, a port érintkezőiből származó információ a belső buszra kerül. A P0 port jellemzője az N2 „felhúzható” tranzisztor hiánya, amely tápellátást biztosít a kimenethez. Amikor az egység port reteszébe ír, az egyszerűen átkerül egy nagy impedanciájú állapotba, ami az adatbusz normál működéséhez szükséges. Ha bármilyen külső eszközt kell táplálni a kimeneten keresztül, külső ellenállásokat kell biztosítani a tápáramköröktől a port kimenetig.

Kikötő P1 – univerzális kétirányú I/O port alternatív funkciók nélkül.

Kikötő P2 – univerzális kétirányú I/O port, amely alternatív funkcióként a cím magas részét (A8...A15) adja ki a külső memória elérésekor.

Kikötő P3 – univerzális kétirányú I/O port, amelynek minden bitje különféle alternatív funkciók megvalósítását biztosítja. Ebben az esetben az alternatív funkciók csak akkor valósulnak meg, ha a port érintkezőinek reteszeire vannak írva, ellenkező esetben az alternatív funkciók végrehajtása blokkolva van. Soroljuk fel őket minden egyes bithez külön:

P3.0 RxD (R ead e x belső D evett, külső adatok olvasása) – a beépített soros adó-vevő bemenete.

P3.1 TxD (T igen e x belső D ate, továbbítsa a külső adatokat) – a beépített soros adó-vevő kimenete.

P3.2 INT0` (INT errupt, interrupt) – külső megszakítási bemenet 0.

P3.3 INT1` – külső megszakítás bemenet 1.

P3.4 С/T0 – nulla beépített időzítő/számláló bemenet.

P3.5 C/T1 – az első beépített időzítő/számláló bemenete.

P3.6 WR". (W rite, write) – kimenet az adatmemóriában lévő írási ciklus vezérlésére.

P3.7 RD` (R ead, read) – az olvasási ciklus vezérlő kimenete az adatmemóriából.

A P1, P2 és P3 portok érintkezői egységenként körülbelül 0,2 mA áramot képesek kiadni, és nullánál 3 mA áramot vesznek fel; a P0 port érintkezői erősebbek és körülbelül 0,8 mA áramot képesek leadni. egy egységben, és 5 mA áramot kap nullán. A mikrokontroller érintkezőinek rendeltetéséről a 3.6. táblázat található.

3.6. táblázat.

Kijelölés

Kimeneti cél

8 bites kétirányú P1 port. Az A0-A7 bemenet címe a belső ROM (RPM) ellenőrzésekor

lépjen be a kijáratba

Általános visszaállítási jel. RAM tartalék tápkimenet külső forrásból (1816-hoz)

8 bites kétirányú P3 port további szolgáltatásokkal

lépjen be a kijáratba

Vevő soros adata - RxD

Adó soros adata - TxD

Külső megszakítás bemenet 0-INT0`

Külső megszakítási bemenet 1-INT1`

Időzítő/számláló bemenet 0: - T0

1. időzítő/számláló bemenet: - T1

Villogó jel kimenet külső adatmemóriába íráskor: - WR`

Villogó jel kimenet külső adatmemóriából történő olvasáskor – RD`

Kvarc rezonátor csatlakoztatására szolgáló vezetékek.

kilépési bemenet

Általános következtetés

8 bites kétirányú P2 port. A8-A15 kimenet címe külső memória módban. A belső ROM-ellenőrző módban a P2.0 - P2.6 érintkezők az A8-A14 címek bemeneteként szolgálnak. Pin P2.7 – ROM olvasási engedély.

lépjen be a kijáratba

Program memória felbontása

Címrögzítés engedélyezése kimeneti jel. Az RPOM jel programozásakor: PROG

lépjen be a kijáratba

A munka blokkolása belső memóriával. Az RPOM programozásakor az UPR jelet adják

lépjen be a kijáratba

8 bites kétirányú P0 port. Cím/adatbusz külső memóriával való munkavégzéshez. D7-D0 adatkimenet belső ROM (RPM) teszt módban.

lépjen be a kijáratba

Teljesítmény +5V feszültségforrásról

ELŐADÁSTERV

1. Bemutatkozás

2. Aritmetikai és logikai utasítások

3. Adatátviteli parancsok

4. Boole-műveletek

5. Ugrási utasítások

1. Bemutatkozás

Parancsrendszer MCS-51 egyetlen utasításkészletet támogat, amelyet 8 bites működtető vezérlő algoritmusok végrehajtására terveztek. Lehetőség van gyors módszerek alkalmazására a belső RAM címezésére és a kis adatstruktúrákon végzett bitműveletek végrehajtására. Az egybites változók független adattípusként való megcímzésére kiterjedt rendszer áll rendelkezésre, amely lehetővé teszi az egyes bitek használatát a logikai algebra logikai és vezérlőparancsaiban.

Címzési módok : parancskészlet MCS-51 a következő címzési módokat támogatja. Közvetlen címzés: Az operandust az utasításban szereplő 8 bites cím határozza meg. Közvetlen címzést csak a belső adatmemória és a regiszterek alsó felére használunk SFR. Közvetett címzés: Az utasítás az operandus címét tartalmazó regisztert címezi meg. Ez a típus a címzést külső és belső RAM-hoz használják. A regiszterek segítségével 8 bites címeket adhatunk meg R0És R1 kiválasztott regisztrációs bank vagy veremmutató SP. A 16 bites címzésnél csak az adatmutató regiszter kerül felhasználásra DPTR.

Regisztráljon utasításokat : regiszterek R0–R7 Az aktuális regiszterbank megszólítható speciális utasításokkal, amelyek egy 3 bites mezőt tartalmaznak, amely magában az utasításban jelzi a regiszterszámot. Ebben az esetben a megfelelő címmező hiányzik a parancsból. Műveletek speciális regiszterekkel: egyes utasítások egyedi regisztereket használnak (például akkumulátoros műveletek, DPTR stb.). Ebben az esetben az operandus címe egyáltalán nincs megadva a parancsban. Ezt a műveleti kód előre meghatározza.

Azonnali állandók : a konstans közvetlenül az opcode utáni parancsban található.

Index címzés : Az indexcímzés csak a programmemória elérésére használható, és csak olvasási módban. Ebben az üzemmódban a programmemóriában lévő táblázatok tekinthetők meg. 16 bites regiszter ( DPTR vagy programszámláló) jelzi a kívánt tábla alapcímét, az akkumulátor pedig a belépési pontot.

Parancskészlet42 parancsmnemonikával rendelkezik a rendszer 33 funkciójának meghatározásához. A legtöbb assembly nyelvi utasítás szintaxisa egy függvénymnemoniából, majd a címzési módszereket és adattípusokat jelző operandusokból áll. Különféle típusok Az adat- vagy címzési módokat a beállított operandusok határozzák meg, nem a mnemonikában bekövetkezett változások.

A parancsrendszer öt csoportra osztható: számtani utasítások; logikai parancsok; adatátviteli parancsok; bit processzor parancsok; elágazási és vezérlési átviteli parancsok. A parancsrendszerben használt jelölések és szimbólumok az alábbiakban találhatók.

Asztal. A parancsrendszerben használt jelölések és szimbólumok

Megnevezés, szimbólum

Célja

Akkumulátor

Az aktuálisan kiválasztott regisztrációs bank nyilvántartásai

A betöltött regiszter parancsban megadott száma

közvetlen

Közvetlenül címezhető 8 bites belső adatcella cím, amely lehet belső adat RAM cella (0–127) vagy SFR speciális funkcióregiszter (128–255)

Közvetetten címezhető 8 bites belső adat RAM cella

8 bites közvetlen a műveleti kódban (OPC) szereplő adatok

adatokH

Az azonnali 16 bites adatok legjelentősebb bitjei (15–8).

adatokL

Az azonnali 16 bites adatok legkisebb jelentőségű bitjei (7–0).

11 bites célcím

addrL

A célcím legkevésbé jelentős bitjei

8 bites előjeles offset byte

Közvetlenül címezhető bit, amelynek címe tartalmazza a belső adatRAM-ban vagy az SFR speciális funkcióregiszterben található COP-t

a15, a14...a0

Célcím bitjei

Az X elem tartalma

Tartalom az X elemben tárolt címen

Az X elem M bitje


+

*
ÉS
VAGY
XOR
/X

Tevékenységek:
kiegészítés
kivonás
szorzás
hadosztályok
logikai szorzás (ÉS művelet)
logikai összeadás (VAGY művelet)
kiegészítés modulo 2 (exkluzív VAGY)
az X elem megfordítása

A függvénymnemonikák egyedileg a címzési módszerek és adattípusok meghatározott kombinációihoz kapcsolódnak. Összesen 111 ilyen kombináció lehetséges a parancsrendszerben.

2. Aritmetikai és logikai utasítások

Hogyan p példa számtani utasítás, az összeadási művelet a következő parancsok egyikével hajtható végre.

HOZZÁADA,7 F 16 – adja hozzá a 7-es számot az A regiszter tartalmához F 16 és tárolja az eredményt az A regiszterben;

HOZZÁADA,@ R0 – az A regiszter tartalmához adja hozzá a címét (@ – kereskedelmi nál nél ) egy regiszterben tárolódnak R 0 (közvetett címzés), és tárolja az eredményt az A regiszterben;

HOZZÁADJA A,R7– adja hozzá az A regiszter tartalmát a regiszter tartalmához R 7 és mentse el az eredményt az A regiszterbe;

HOZZÁAD A,#127– az A regiszter tartalmához adjunk hozzá egy számot, amelynek tárolócella címe 127 ( # – számszimbólum), és mentse az eredményt a rendszerleíró adatbázisba T-re A.

Az utasítás kivételével minden aritmetikai utasítás egy gépi ciklusban kerül végrehajtásra INC DPTR(adatmutató eltolása DPTR a következő bájtig), amely két gépi ciklust, valamint 4 gépi ciklusban végrehajtott szorzási és osztási műveleteket igényel. A belső adatmemória bármely bájtja elem használata nélkül növelhető és csökkenthető.

Utasítás MUL AB elvégzi az akkumulátorban lévő adatok szorzását (szorzását) a B regiszter adataival, a szorzatot az A (alacsony fele) és B (magas fele) regiszterbe helyezve.

Utasítás DIV AB osztja (osztja) az akkumulátor tartalmát a B regiszterben lévő értékkel, a maradékot B-ben, a hányadost pedig az akkumulátorban hagyja.

Utasítás DA A bináris decimális aritmetikai műveletekhez (bináris decimális kódban ábrázolt számokkal végzett aritmetikai műveletekhez) szolgál. Nem alakítja át a bináris számot BCD, de csak két bináris decimális szám összeadásakor adja meg a helyes eredményt.

Példa logikai parancs: A logikai ÉS művelet a következő parancsok egyikével hajtható végre:

ANLA,7 F 16 – az A regiszter tartalmának logikai szorzása 7-tel F 16 és az eredményt az A regiszterben tároljuk;

ANLA,@ R1 – az A regiszter tartalmának logikai szorzása azzal a számmal, amelynek címét a regiszter tárolja R 1 (közvetett címzés), és tárolja az eredményt az A regiszterben;

ANL A,R6– az A regiszter tartalmának logikai szorzása a regiszter tartalmával R 6, és mentse az eredményt az A regiszterbe;

ANL A,#53 – az A regiszter tartalmának logikai szorzása egy számmal, amelynek tárolócella címe 53 16, és az eredmény az A regiszterben tárolódik.

Az akkumulátor tartalmával kapcsolatos összes logikai műveletet egy gépi ciklusban hajtják végre, a többit kettőben. Logikai műveletek végrehajthatók a belső adatmemória alsó 128 bájtjának bármelyikén vagy bármely regiszteren SFR (speciális funkcióregiszterek) közvetlen címzési módban, akkumulátor használata nélkül.

Az RL A, RLC A stb. forgó eltolási műveletek egy bittel jobbra vagy balra mozgatják az akkumulátor tartalmát. Balra történő ciklikus eltolás esetén a legkisebb jelentőségű bit a legjelentősebb pozícióba kerül. Jobbra ciklikus eltolódás esetén ennek az ellenkezője történik.

Művelet CSERÉLÉS A felcseréli az alacsony és magas tetrádot az akkumulátorban.

3. Adatátviteli parancsok

Csapat MOV dest,src lehetővé teszi az adatok átvitelét a belső RAM-cellák vagy a speciális funkcióregiszter-területek között SFR akkumulátor használata nélkül. Ebben az esetben a belső RAM felső felével csak közvetett címzési módban és a regiszterekhez való hozzáféréssel lehet dolgozni. SFR– csak közvetlen címzési módban.

Minden mikroáramkörben MCS-51 A verem közvetlenül a rezidens adatmemóriába kerül, és felfelé növekszik. Utasítás NYOM először növeli az értéket a veremmutató regiszterében SP, majd egy bájtnyi adatot ír a verembe. Csapatok NYOMÉs POP csak közvetlen címzési módban használatosak (byte írása vagy visszaállítása), de a verem mindig elérhető, ha regiszteren keresztül közvetett címzést végez SP. Így a verem a felső 128 bájt adatmemóriát is használhatja. Ugyanezek a megfontolások kizárják a verem utasítások használatát a regiszterek címezésére SFR.

Az adatátviteli utasítások 16 bites átviteli műveletet tartalmaznak MOV DPTR,#data16, amely az adatmutató-regiszter inicializálására szolgál DPTR a programmemóriában lévő táblázatok megtekintésekor vagy a külső adatmemória eléréséhez.

Művelet XCH A,byte az akkumulátor és a címzett bájt közötti adatcserére szolgál. Csapat XCHD A,@Ri hasonló az előzőhöz, de csak az operanduscserében részt vevő alsó tetradokra hajtják végre.

A külső adatmemória eléréséhez csak közvetett címzést használunk. Az egybájtos címek esetében regisztereket használnak R0 vagy R1 aktuális regiszterbank, 16 bites esetén pedig adatmutató regiszter DPTR. A külső adatmemória elérésének bármely módszere esetén az akkumulátor információforrásként vagy vevőként tölti be.

A programmemóriában található táblázatok eléréséhez használja a következő parancsokat:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Az adatmutató regiszter tartalma a tábla alapcímeként szolgál DPTR vagy PC(programszámláló), és az eltolás innen történik A. Ezek az utasítások kizárólag a programmemóriából való adatok olvasására szolgálnak, de nem írnak bele.

4. Boole-műveletek

Mikroáramkörök MCS-51„Logi” processzort tartalmaznak. A belső RAM 128 közvetlenül címezhető bitből áll. Különleges funkció regiszter tér SFR akár 128 bites mezőket is támogathat. A bitutasítások feltételes elágazásokat, átviteleket, alaphelyzetbe állításokat, inverziókat, ÉS és VAGY műveleteket hajtanak végre. Minden megadott bit elérhető közvetlen címzési módban.

Hordj kicsit CF a „program állapotszó” speciális funkcióregiszterben P.S.W." egybites akkumulátorként használatos egy logikai processzorhoz.

5. Ugrási utasítások

Az ugrási műveletek címét assembly nyelven egy címke vagy egy valós érték jelzi a programmemória területén. A feltételes elágazási címek egy relatív eltolásba vannak összeállítva – a programszámlálóhoz hozzáadott előjel byte PC ha az átmenet feltétele teljesül. Az ilyen átmenetek határai mínusz 128 és 127 között vannak az utasítást követő első bájthoz képest. A "program állapotszó" speciális funkcióregiszterben P.S.W."Nincs nulla zászló, tehát az utasítások JZÉs JNZ ellenőrizze a „nullával egyenlő” feltételt az akkumulátorban lévő adatok teszteléseként.

A feltétel nélküli ugrási parancsnak három típusa van: SJMP, LJMPÉs AJMP– formátumban eltérő célcímek. Utasítás SJMP relatív eltolásként kódolja a címet, és két bájtot vesz fel. Az ugrási távolság a mínusz 128 és 127 bájt közötti tartományra korlátozódik a következő utasításhoz képest SJMP.

Az utasításokban LJMP A célcím 16 bites konstansként használatos. A parancs hossza három bájt. A rendeltetési hely címe bárhol megtalálható a programmemóriában.

Csapat AJMP 11 bites címkonstanst használ. A parancs két bájtból áll. Amikor ez az utasítás végrehajtódik, a címszámláló alsó 11 bitje lecserélődik az utasítás 11 bites címére. A programszámláló öt legjelentősebb bitje PC változatlanok maradnak. Így az átmenet egy 2K bájtos blokkon belül történhet, amelyben az utasítást követő utasítás található AJMP.

Kétféle parancshívás létezik egy szubrutinhoz: LCALLÉs HÍVÁS. Utasítás LCALL a hívott szubrutin 16 bites címét használja. Ebben az esetben az alprogram bárhol elhelyezhető a program memóriájában. Utasítás HÍVÁS 11 bites szubrutin címet használ. Ebben az esetben a hívott rutinnak egyetlen 2K bájtos blokkban kell lennie a következő utasítással HÍVÁS. Az utasítás mindkét verziója benyomja a következő utasítás címét a verembe és betölti a programszámlálóba PC megfelelő új értéket.

Az alprogram az utasítással ér véget RET, amely lehetővé teszi, hogy visszatérjen a parancsot követő utasításhoz HÍVÁS. Ez az utasítás kidobja a visszatérési címet a veremből, és betölti a programszámlálóba. PC . Utasítás RETI a megszakítási rutinokból való visszatéréshez. Az egyetlen különbség RETI tól től RET az, hogy a RETI tájékoztatja a rendszert, hogy a megszakítási feldolgozás befejeződött. Ha a végrehajtás időpontjában RETI nincs más megszakítás, akkor azonos RET.

Utasítás DJNZ ciklusok szabályozására tervezték. Egy hurok végrehajtásához N ha egyszer be kell töltenie egy bájtot egy értékkel a számlálóba N és zárjuk be a huroktestet a paranccsal DJNZ, jelzi a ciklus kezdetét.

Csapat CJNE két operandusát előjel nélküli egész számként hasonlítja össze, és az ott megadott címre ugrik, ha az összehasonlítandó operandusok nem egyenlőek. Ha az első operandus kisebb, mint a második, akkor a hordozóbit CF "1"-re van állítva.

Összeszerelt formában minden utasítás 1, 2 vagy 3 bájtot foglal el.

A MIKROVEZÉRLŐCSALÁD ARCHITEKTÚRAMCS-51

Jegyzetek a kurzusokhoz

„Mikroprocesszorok a vezérlőrendszerekben”, „Mikroprocesszor-technológia”

"Mikroprocesszoros eszközök és rendszerek"

minden típusú tanulmányi szakterület hallgatói számára

072000 – Szabványosítás és tanúsítás

210200 – Technológiai folyamatok automatizálása

230104 – Számítógéppel segített tervezőrendszerek

Tambov 2005

BEVEZETÉS.. 3

1. AZ INTEL 8051 MIKROVEZÉRLŐ FELÉPÍTÉSE 3

1.1. Az emlékezet szervezése. 5

1.2. Aritmetikai-logikai eszköz. 6

1.3. Rezidens memória programok és adatok számára. 7

1.4. Akkumulátoros és általános célú regiszterek. 8

1.5. A program állapot szóregisztere és jelzői. 9

1.6. Mutatóregiszterek. 10

1.7. Speciális funkcióregiszterek. tizenegy

1.8. Vezérlő és szinkronizáló eszköz. tizenegy

1.9. Párhuzamos információs bemeneti/kimeneti portok. 12

1.10. Időzítők/számlálók. 13

1.11. Soros port. 18

1.11.1. SBUF regisztráció.. 18

1.11.2. Soros port működési módok. 18

1.11.3. Regisztráljon SCON.. 19

1.11.4. Vételi/átviteli sebesség. 21

1.12. Megszakítási rendszer. 22

2. AZ INTEL 8051 MIKROVEZÉRLŐ PARANCSRENDSZERE 26

2.1. Általános információ. 26

2.1.1. A parancsok típusai. 27

2.1.2. Operandus típusok. 28

2.1.3. Adatcímzési módszerek. harminc

2.1.4. Eredményjelzők. 31

2.1.5. Szimbolikus megszólítás. 32

2.2. Adatátviteli parancsok. 33

2.2.1. Információs linkek felépítése. 33

2.2.2. Hozzáférés az akkumulátorhoz. 33

2.2.3. Külső adatmemória elérése. 34

2.2.4. Programmemória elérése... 34


2.2.5. Hozzáférés a veremhez. 35

2.3. Aritmetikai műveletek. 35

2.4. Logikai műveletek. 39

2.5. Vezérlő átviteli parancsok. 43

2.5.1. Hosszú átmenet. 43

2.5.2. Abszolút átmenet. 43

2.5.3. Relatív átmenet. 44

2.5.4. Közvetett átvitel. 44

2.5.5. Feltételes ugrások.. 44

2.5.6. Szubrutinok.. 47

2.6. Műveletek bitekkel. 48

Tesztkérdések... 49

IRODALOM.. 50

Függelék INTEL 8051 PARANCSRENDSZER 51

BEVEZETÉS

A 20. század 80-as évei óta önálló osztály alakult ki a mikroprocesszoros technológiában integrált áramkörök– egychipes mikrokontrollerek, amelyeket különféle célú eszközökbe való integrálásra terveztek. Az egylapkás mikroprocesszorok osztályától a belső memória és a külső eszközökkel való interakció fejlett eszközei különböztetik meg őket.

Az MCS-51 család 8 bites egychipes mikrokontrollereit széles körben használják. Ez a család az Intel 8051 mikrokontroller alapján jött létre, amely jól megtervezett architektúrájának köszönhetően nagy népszerűségre tett szert a mikroprocesszoros vezérlőrendszerek fejlesztői körében. A mikrokontroller architektúra belső és külső szoftverrel elérhető hardvererőforrások és parancsrendszerek összessége.

Ezt követően az Intel mintegy 50 modellt adott ki az Intel 8051 mikrokontroller működési magjára épülve, ugyanakkor sok más cég, mint például az Atmel, a Philips megkezdte saját, MCS-51 szabvány szerint kifejlesztett mikrokontrollerek gyártását. Van még hazai analóg Intel 8051 mikrokontroller - K1816BE51 chip.

2. AZ INTEL 8051 MIKROVEZÉRLŐ FELÉPÍTÉSE

Az Intel 8051 mikrokontroller magas szintű n-MOS technológián alapul. Fő jellemzői a következők:

· nyolc bites központi processzor vezérlési funkciók megvalósítására optimalizálva;

· beépített órajelgenerátor (maximális frekvencia 12 MHz);

· program memória címterülete - 64 KB;

· adatmemória címterülete - 64 KB;

· belső programmemória - 4 KB;

· belső adatmemória - 128 bájt;

· további lehetőségek a Boole-algebrai műveletek végrehajtásához (bitenkénti műveletek);

· 2 db tizenhat bites többfunkciós időzítő/számláló;

· full-duplex aszinkron adó-vevő (soros port);

· vektoros megszakítási rendszer két prioritási szinttel és öt eseményforrással.

1. ábra - Az Intel 8051 mikrokontroller blokkvázlata

A blokkdiagram (1. ábra) alapját egy belső kétirányú 8 bites busz képezi, amely összeköti a mikrokontroller fő csomópontjait és eszközeit: rezidens programmemória (RPM), rezidens adatmemória (RDM), aritmetikai-logikai. egység (ALU), regiszter egység speciális funkciói, vezérlőegység (CU), párhuzamos I/O portok (P0-P3), valamint programozható időzítők és soros port.

2.1. Memóriaszervezés

Ez a mikrokontroller beépített (rezidens) és külső memóriával rendelkezik a programok és adatok számára. A rezidens programmemória (RPM) kapacitása 4 KB, a rezidens adatmemória (RDM) pedig 128 bájt.


A mikrokontroller módosításától függően az RPM maszk ROM, egyszer programozható vagy újraprogramozható ROM formájában valósul meg.

Ha szükséges, a felhasználó bővítheti a programmemóriát egy külső ROM telepítésével. A belső vagy külső ROM-hoz való hozzáférést az EA lábon lévő jel értéke határozza meg (külső hozzáférés):

EA=VCC (tápfeszültség) - hozzáférés a belső ROM-hoz;

EA=VSS (földpotenciál) - hozzáférés a külső ROM-hoz.

A külső program- és adatmemória egyenként 64 KB-os lehet, és a P0 és P2 porton keresztül címezhető. A 2. ábra az Intel 8051 memóriakártyát mutatja.

2. ábra – Intel 8051 memóriaszervezés

Külső ROM olvasási villogó - (Program Store Enable) a külső programmemória elérésekor generálódik, és inaktív a chipen található ROM elérésekor.

Az alsó programmemória címek területét (3. ábra) használja a megszakítási rendszer. Az INTEL 8051 chip architektúra öt megszakítási forrást támogat. Azokat a címeket, amelyekre a megszakításvezérlés átkerül, megszakítási vektoroknak nevezzük.

3. ábra - Az alsó programmemória terület térképe

2.2. Számtani logikai egység

A 8 bites aritmetikai logikai egység (ALU) képes végrehajtani az összeadás, kivonás, szorzás és osztás aritmetikai műveleteit; logikai műveletek ÉS, VAGY, kizárólagos VAGY, valamint ciklikus eltolás, alaphelyzetbe állítás, inverzió stb. műveletei. Szoftverrel nem elérhető T1 és T2 regiszterek, amelyek az operandusok ideiglenes tárolására szolgálnak, egy decimális korrekciós áramkör (DCU) és egy jellemzőgeneráló áramkör csatlakoznak a bemeneti művelet eredményéhez (PSW).

Az egyszerű összeadási műveletet az ALU-ban használják a regiszterek tartalmának növelésére, az adatmutató regiszter (RAR) előrehaladására, és automatikusan kiszámítják a következő program rezidens memóriacímét. A legegyszerűbb kivonási műveletet használják az ALU-ban a regiszterek csökkentésére és a változók összehasonlítására.

A legegyszerűbb műveletek automatikusan „tandemeket” alkotnak olyan műveletek végrehajtására, mint például a 16 bites regiszterpárok növelése. Az ALU olyan mechanizmust valósít meg, amely egyszerű műveletek lépcsőzetes végrehajtását teszi lehetővé összetett parancsok végrehajtása érdekében. Így például a feltételes vezérlés átviteli parancsok egyikének végrehajtásakor az ALU-ban lévő összehasonlítási eredmény alapján a programszámlálót (PC) háromszor növeljük, az RDM-et kétszer olvassuk, két változó aritmetikai összehasonlítását hajtjuk végre, létrejön egy 16 bites átmeneti cím, és döntés születik arról, hogy a program szerint megtörténik-e vagy sem. A fenti műveletek mindegyike mindössze 2 μs alatt megtörténik.

Az ALU fontos jellemzője, hogy nem csak bájtokat, hanem biteket is képes kezelni. Az egyes szoftver által elérhető bitek beállíthatók, törölhetők, megfordíthatók, továbbíthatók, tesztelhetők és logikai műveletekben használhatók. Ez a képesség nagyon fontos, mivel az objektumok vezérlésére gyakran olyan algoritmusokat használnak, amelyek bemeneti és kimeneti logikai változókkal kapcsolatos műveleteket tartalmaznak, amelyek megvalósítása bizonyos nehézségekkel jár a hagyományos mikroprocesszorok használatával.

Így az ALU négyféle információs objektummal működhet: logikai (1 bit), digitális (4 bit), bájt (8 bit) és cím (16 bit). Az ALU 51 különböző műveletet hajt végre az adatok továbbítására vagy átalakítására. Mivel 11 címzési mód létezik (7 az adatokhoz és 4 a címekhez), a művelet és a címzési mód kombinálásával a 111 utasításból álló alapszám 255-re bővül az egybájtos műveleti kóddal lehetséges 256-ból.

2.3. Rezidens program és adatmemória

A lakossági (chip) programmemória (RPM) és az adatmemória (RDM) fizikailag és logikailag elválik egymástól, eltérő címzési mechanizmussal rendelkeznek, eltérő jelek vezérlése alatt működnek, és más-más funkciót látnak el.

Az RPM programmemória kapacitása 4 KB, és parancsok, konstansok, inicializálási vezérlőszavak, bemeneti és kimeneti változók konverziós táblázatai stb. tárolására szolgál. A memória 16 bites címbusszal rendelkezik, amelyen keresztül a hozzáférés a PC programszámláló vagy a regiszterből.adatmutató (DPTR). A DPTR az indirekt programugrások alapregisztereként funkcionál, vagy táblaműveletekben használják.

Az RDM adatmemória változók tárolására szolgál egy alkalmazási program végrehajtása során, egy bájttal címezhető és kapacitása
128 bájt. Ezenkívül a címtere szomszédos a speciális funkcióregiszterek címeivel, amelyek a táblázatban találhatók. 1.

A programmemória az adatmemóriához hasonlóan bővíthető
64 KB külső chipek csatlakoztatásával.

Asztal 1

Speciális funkcióregiszter blokk

Név

Akkumulátor

Akkumulátor bővítő regiszter

Program állapotszó

Stack pointer regiszter

Adatmutató regiszter

A prioritási nyilvántartás megszakítása

Megszakítási maszkregiszter

Időzítő/számláló mód regisztrálása

Timer Control/Status Register

Időzítő 0 (magas bájt)

Időzítő 0 (alacsony bájt)

1. időzítő (nagy bájt)

1. időzítő (alacsony bájt)

Adó-vevő vezérlőregiszter

Adó-vevő puffer

Teljesítményvezérlő regiszter

Jegyzet. Azok a regiszterek, amelyek nevét (*) jelölik, lehetővé teszik az egyes bitek megcímzését.

2.4. Akkumulátor és általános regiszterek

Az akkumulátor (A) az operandus forrása és az eredmény helye aritmetikai, logikai műveletek és számos adatátviteli művelet végrehajtásakor. Ezen kívül a shift műveletek, a nulla ellenőrzése, a paritásjelző generálása stb. csak az akkumulátor segítségével hajthatók végre.

A felhasználónak négy bank, 8 általános célú R0–R7 regiszter áll a rendelkezésére (9. ábra). Lehetőség van azonban a négy bank közül csak az egyik regiszterének használatára, amelyet a PSW regiszterbittel választunk ki.

2.5. Programállapot szóregiszter és zászlói

Ha sok utasítást hajtanak végre az ALU-ban, akkor számos műveleti attribútum (jelző) generálódik, amelyek a programállapotszó (PSW) regiszterben kerülnek rögzítésre. táblázatban A 2. ábra a PSW zászlók listáját tartalmazza, megadja szimbolikus nevüket, és leírja létrehozásuk feltételeit.

2. táblázat

PSW program állapota Word formátum

Név és cél

Hordj zászlót. Hardveres vagy szoftveres beállítás és alaphelyzetbe állítás aritmetikai és logikai műveletek végrehajtásakor

Kiegészítő hordzászló. Csak hardver állítja be és törli, amikor összeadási és kivonási utasítások végrehajtásra kerülnek, és átvitelt vagy kölcsönzést jelez a 3. bitben

Flag 0. Beállítható, törölhető vagy ellenőrizhető a program által felhasználó által megadott jelzőként.

Regisztrációs bank kiválasztása. Állítsa be és állítsa vissza szoftverrel a működő regiszterbank kiválasztásához (3. táblázat)

Túlcsordulás zászló. Hardveres beállítás és alaphelyzetbe állítás aritmetikai műveletek végrehajtásakor

Nem használt

Paritás zászló. Hardverrel beállítja és alaphelyzetbe állítja minden ciklusban, és rögzíti a páratlan/páros számú egy bitet az akkumulátorban, azaz paritást hajt végre

3. táblázat

Működő regiszterbank kiválasztása

Címhatárok

A „legaktívabb” PSW jelző a carry flag, amely számos művelet során érintett és módosul, beleértve az összeadást, kivonást és eltolást. Ezen túlmenően a hordozójelző (CY) „logikai gyűjtőként” működik a bitmanipuláló utasításokban. A túlcsordulási jelző (OV) érzékeli az aritmetikai túlcsordulást az előjeles egész műveletekben, és lehetővé teszi az aritmetika használatát kettős komplementer kódokban. Az ALU nem vezérli a regiszterbank kiválasztó jelzőbiteket (RS0, RS1), értéküket teljes mértékben az alkalmazási program határozza meg, és a négy regiszterbank egyikének kiválasztására szolgál.

Bájtként a PSW regiszter a következőképpen ábrázolható:

Azokban a mikroprocesszorokban, amelyek architektúrája akkumulátorra támaszkodik, a legtöbb utasítás az akkumulátoron működik implicit címzés segítségével. Az Intel 8051 más. Bár a processzor akkumulátorra épül, számos parancsot képes végrehajtani a részvétele nélkül. Például bármely RDM cellából bármilyen regiszterbe átvihetők adatok, bármely regiszter betölthető azonnali operandussal stb. Számos logikai művelet végrehajtható akkumulátor használata nélkül. Ezenkívül a változók növelhetők, csökkenthetők és ellenőrizhetők akkumulátor használata nélkül. A zászlók és vezérlőbitek ugyanúgy ellenőrizhetők és módosíthatók.

2.6. Mutatóregiszterek

A 8 bites veremmutató (SP) bármely RDM-területet megszólíthat. Tartalma növekszik, mielőtt az adatokat a veremben tárolná a PUSH és CALL utasítások során. Az SP tartalma a POP és RET parancsok végrehajtása után csökken. A veremelemek megcímzésének ezt a módszerét pre-increment/post-decrement-nek nevezik. A mikrokontroller inicializálása során az RST jel után a 07H kód automatikusan betöltődik az SP-be. Ez azt jelenti, hogy ha az alkalmazásprogram nem írja felül a veremet, a verem első adateleme a 08H RDM helyen lesz.

A kétbájtos DPTR adatmutató regisztert általában 16 bites cím rögzítésére használják külső memória-hozzáférési műveletek során. Mikrokontroller parancsokkal az adatmutató regiszter 16 bites regiszterként vagy két független 8 bites regiszterként (DPH és DPL) használható.

2.7. Speciális funkcióregiszterek

A szimbolikusan IP, IE, TMOD, TCON, SCON és PCON regiszterek a megszakító áramkör, az időzítő/számláló, a soros adó-vevő és az energiagazdálkodás vezérlő- és állapotbitjei reteszelésére és programozására szolgálnak. Felépítésüket részletesen ismertetjük az 1.8-1.12. fejezetekben, amikor megvizsgáljuk a mikrokontroller különféle üzemmódokban való tulajdonságait.

2.8. Vezérlő és szinkronizáló eszköz

A mikrokontroller külső érintkezőire csatlakoztatott kvarc rezonátor vezérli a belső oszcillátor működését, amely viszont szinkronizációs jeleket generál. A vezérlőegység (CU) a szinkronizációs jelek alapján 12 generátorperiódusnak megfelelő fix időtartamú gépciklust állít elő. A legtöbb mikrokontroller utasítást egy gépi ciklusban hajtják végre. Egyes utasítások, amelyek 2 bájtos szavakkal működnek vagy külső memóriát érnek el, két gépi ciklust vesz igénybe. Csak az osztási és szorzási utasítások négy gépi ciklust igényelnek. A vezérlőkészülék ezen működési jellemzői alapján számítják ki az alkalmazási programok végrehajtási idejét.

A mikrokontroller áramkörében egy utasításregiszter (IR) található a vezérlőeszköz mellett. Feladata a végrehajtott parancs kódjának tárolása.

A vezérlő és szinkronizáló eszköz bemeneti és kimeneti jelei:

1. PSEN – programmemória felbontás,

2. ALE – címrögzítés engedélyezése kimeneti jel,

3. PROG – programozó jel,

4. EA – blokkoló munka belső memóriával,

5. VPP – programozási feszültség,

6. RST – általános visszaállítási jel,

7. VPD – a memória tartalék teljesítmény kimenete külső forrás,

8. XTAL – csatlakozási bemenetek kvarc rezonátor.

2.9. Párhuzamos bemeneti/kimeneti portok

Mind a négy portot (P0-P3) úgy tervezték, hogy bájtonként be- vagy kimenjen információkat. Minden port tartalmaz egy vezérelt reteszelő regisztert, egy bemeneti puffert és egy kimeneti illesztőprogramot.

A P0 és P2 portok kimeneti meghajtóit, valamint a P0 port bemeneti pufferét használják a külső memória eléréséhez. Ebben az esetben a P0 porton keresztül időmultiplexelés üzemmódban először a cím alsó bájtja kerül kiadásra, majd az adatbájt kiadása vagy fogadása. A P2 port a cím legjelentősebb bájtját adja ki, ha a cím szélessége 16 bit.

A P3 port összes érintkezője használható a táblázatban felsorolt ​​alternatív funkciók megvalósítására. 4. Ezeket a funkciókat úgy lehet engedélyezni, hogy a P3 port reteszelő regiszterének (P3.0-P3.7) megfelelő bitjére 1-et írunk.

4. táblázat

Alternatív P3 port funkciók

Név és cél

Olvasás. A külső adatmemória elérésekor a hardver aktív alacsony szintű jelet generál

Rekord. A külső adatmemória elérésekor a hardver aktív alacsony szintű jelet generál

Időzítő/számláló bemenet 1 vagy teszt bemenet

Időzítő/számláló bemenet 0 vagy tesztbemenet

Megszakítási kérés bemenet 1. Alacsony szintet vagy lekapcsolási jelet érzékel

Megszakítás kérés bemenet 0. Alacsony szintet vagy lekapcsolási jelet érzékel

Soros port adó kimenet UART módban. Órakimenet műszakregiszter módban

Soros port vevő bemenet UART módban. Adatbevitel/kimenet shift regiszter módban

A 0-s port kétirányú, az 1-3-as portok pedig kvázi-kétirányúak. Mindegyik portvonal egymástól függetlenül használható bemenetre vagy kimenetre.

Az RST jel alapján az egységek automatikusan beírásra kerülnek az összes port reteszelő regiszterébe, ezáltal bemeneti módba állítva őket.

Valamennyi port használható információbevitel/kimenet rendszerezésére kétirányú átviteli vonalakon keresztül. A P0 és P2 portok azonban nem használhatók erre a célra, ha a rendszer külső memóriával rendelkezik, amellyel a kommunikáció egy közös megosztott cím/adatbuszon keresztül szerveződik, időmultiplexelés üzemmódban.

Az I/O portokhoz való hozzáférés olyan parancsokkal lehetséges, amelyek egy bájton, egy egyedi biten vagy bitek tetszőleges kombinációján működnek. Sőt, azokban az esetekben, amikor a port egyszerre operandus és az eredmény célállomása, a vezérlőeszköz automatikusan megvalósít egy speciális módot, az úgynevezett „olvasás-módosítás-írás”. Ez a hozzáférési mód magában foglalja a jelek bevitelét nem a port külső érintkezőiből, hanem annak reteszelő regiszteréből, ami kiküszöböli a korábban kiadott információk helytelen olvasását. Ez a portok elérésének mechanizmusa a következő parancsokban valósul meg:




Top