Mikrokontrollerek MCS-51. Blokkdiagram, ALU, adatmemória

Mikrokontrollerek MCS-51.  Blokkdiagram, ALU, adatmemória
Mikrokontrollerek MCS-51. Blokkdiagram, ALU, adatmemória

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 minden 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ésének és az analóg áramkör egyes csomópontjainak megvalósítását. Ennek a családnak az összes mikroáramköre ugyanazzal működik parancsrendszer MCS-51, legtöbbjüket ugyanazokban az esetekben hajtják végre hozzáillő pinout(lábak számozása az esethez). Ez lehetővé teszi, hogy különböző cégek chipjeit használja a kifejlesztett eszközhöz - Maxim, Atmel, NXP stb. (catalog..php?page=components_list&id=39"> s.m. Keresés paraméterek szerint) változtatás nélkül kördiagramm eszközök és programok.

1. kép Szerkezeti séma vezérlő I8751

A vezérlő blokkvázlata az 1. ábrán látható, és a következő fő részekből áll funkcionális csomópontok: 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étoldalú adatcsere belső 8 bites adatátviteli útvonalon történik.

Nézzük meg közelebbről az egyes blokkok célját. Az MCS-51 család szinte minden képviselője ennek a 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. Az MCS-51 család összes vezérlőjének parancsrendszere 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 programok kiváló hordozhatóságát egyik chipről a másikra.

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

Az Időzítés és vezérlés blokkot úgy tervezték, hogy koordinációt biztosító időzítési és vezérlőjeleket generáljon közös munka OEVM egységek minden megengedett üzemmódjában. A vezérlőegység a következőket tartalmazza:

  • - eszköz az időintervallumok kialakítására,
  • - I/O logika,
  • - utasítás nyilvántartás,
  • - villamosenergia-fogyasztás-gazdálkodási nyilvántartás,
  • - parancsdekóder, számítógépes vezérlési logika.

Időbeosztási eszköz fázisok, ciklusok és ciklusok belső szinkronjeleinek generálására és kiadására szolgál. A gépi ciklusok száma határozza meg az utasítás végrehajtásának időtartamát. Szinte minden OEVM parancs egy vagy két gépi ciklusban kerül végrehajtásra, kivéve a szorzási és osztási utasításokat, amelyek időtartama négy gépi ciklus. Jelöljük a fő oszcillátor frekvenciáját F g-n keresztül, ekkor a gépciklus időtartama 12/F g, vagyis a mester oszcillátor jelének 12 periódusa. A bemeneti-kimeneti logika olyan jelek fogadására és kiadására szolgál, amelyek a P0-P3 bemeneti/kimeneti portokon keresztül biztosítják az információcserét a külső eszközökkel.

ParancsregiszterÚgy tervezték, hogy rögzítse és tárolja a végrehajtott parancs 8 bites műveleti kódját. A műveleti kódot egy parancsdekóder és számítógépes vezérlőlogika segítségével a parancs végrehajtására szolgáló mikroprogrammá alakítják.

Demand Control Register (PCON) lehetővé teszi a mikrokontroller működésének leállítását az energiafogyasztás csökkentése és a mikrokontroller okozta interferencia szintjének csökkentése érdekében. A mikrokontroller master oszcillátorának leállításával még nagyobb teljesítmény- és zajcsökkentés érhető el. Ez a PCON igényvezérlő regiszter bitjeinek váltogatásával érhető el. Az nMOS gyártási opciónál (1816-os sorozatú vagy idegen chipek, amelyeknél nincs "c" betű a név közepén) a PCON teljesítményvezérlő regiszter csak egy bitet tartalmaz, amely a SMOD soros port adatátviteli sebességét szabályozza, és ott nincsenek energiafogyasztást vezérlő bitek.

Aritmetikai logikai egység (ALU) egy párhuzamos nyolcbites eszköz, amely aritmetikai és logikai műveletek. Az ALU a következőkből áll:

  • - akkumulátorregiszterek, ideiglenes tárolóregiszterek TMP1 és TMP2,
  • - ROM állandók,
  • - összeadó,
  • - kiegészítő nyilvántartás (B regiszter),
  • - akkumulátor (ACC),
  • - programállapot-regiszter (PSW).

Regisztráció akkumulátorÉs nyilvántartásokat tart- nyolc bites regiszterek, amelyek az operandusok fogadására és tárolására szolgálnak a rajtuk végzett műveletek időtartama alatt. Ezek a regiszterek programozottan nem érhetők el.

ROM állandók biztosítja a bináris-decimális adatábrázolás korrekciós kódjának, a bitműveletek maszkkódjának és a konstans kódnak a kidolgozását.

Párhuzamos 8 bites összeadó egy szekvenciális átviteli kombinációs áramkör, amelyet végrehajtásra terveztek aritmetikai műveletekösszeadás, kivonás és összeadás, szorzás, nem egyenértékűség és azonosság logikai műveletei.

Regisztráció B- szorzási és osztási műveletek során használt nyolc bites regiszter. Egyéb utasítások esetén ez egy kiegészítő scratchpad-regiszternek tekinthető.

Akkumulátor- egy nyolc bites regiszter, amely az aritmetikai-logikai vagy eltolási műveletek végrehajtása során kapott eredmény fogadására és tárolására szolgál

Soros interfész és megszakítási blokk (SIP) A szekvenciális információáramlások be- és kimenetének megszervezésére és a programmegszakítási rendszer megszervezésére szolgál. A blokk a következőket tartalmazza:

  1. - PIP puffer,
  2. - vezérlési logika,
  3. - ellenőrző nyilvántartás,
  4. - adó puffer,
  5. - vevő puffer,
  6. - soros portos adó-vevő,
  7. - prioritási regiszter megszakítása,
  8. - megszakítás engedélyező regiszter,
  9. - logika a megszakításjelzők feldolgozásához és egy vektorgenerálási séma.

Program számlálóúgy van kialakítva, hogy a belső programmemória aktuális 16 bites címét és a külső programmemória 8/16 bites címét képezze. A programszámláló egy 16 bites PC-pufferből, egy PC-regiszterből és egy növekmény-áramkörből áll (a tartalmat 1-gyel növeli).

Adatmemória (RAM) a program végrehajtása során használt információk ideiglenes tárolására szolgál.

P0, P1, P2, P3 portok kvázi kétirányú bemeneti-kimeneti portok, és az OEVM és a külső eszközök közötti információcserét biztosítják, 32 bemeneti-kimeneti vonalat alkotva.

Időzítő eszköz BAN BEN alapmodellek A család két programozható 16 bites időzítővel/számlálóval rendelkezik (T/C0 és T/C1), melyek időzítőként és külső eseményszámlálóként is használhatók.

Programállapot-regiszter (PSW) célja, hogy információkat tároljon az ALU állapotáról a program végrehajtása során.

Program memória (EPROM) programok tárolására tervezték, és csak olvasható memória (ROM). A különféle mikroáramkörök maszkolt ROM-okat használnak, amelyeket ultraibolya sugárzás törl, ill VAKU ROM.

Data Pointer Register (DPTR) külső adatmemória vagy programmemória 16 bites címének tárolására szolgál.

Veremmutató (SP) egy nyolc bites regiszter, amely egy speciális adatmemória terület (stack) megszervezésére szolgál, amelyben bármely memóriacella ideiglenesen tárolható.



A mikrokontroller alapja (lásd 1. ábra) egy 8 bites aritmetikai logikai egység (ALU). Az MK emlékének harvardi architektúrája van, i.e. logikailag felosztva: programmemóriára - PP (belső vagy külső), 16 bites parancsszámlálóval (SC) címezve és adatmemóriára - belső (rezidens adatmemória - RPD) 128 (vagy 256) bájt, valamint külső (külső) adatmemória – VPD) 64 KB-ig. Fizikailag a programmemória a ROM-on (csak olvasható), az adatmemória pedig a RAM-on van megvalósítva (az adatok írhatók és olvashatók).

A külső jelek vétele és továbbítása 4 db nyolcbites Р0..Р3 porton keresztül történik. Külső programmemória (EPM) vagy adatmemória (VPD) elérésekor a P0 és P2 portok multiplexelt külső cím/adatbuszként használatosak. A P3 portvonalak alternatív funkciókat is elláthatnak (lásd 1. táblázat).

A 16 bites DPTR regiszter képezi a VPD címet vagy a Program memória alapcímét az Akkumulátor konverziós utasításban. A DPTR regiszter két független 8 bites regiszterként (DPL és DPH) is használható operandusok tárolására.

8 bites belső parancsregiszter (RK) fogadja a végrehajtott parancs kódját; ezt a kódot a vezérlő áramkör dekódolja, amely vezérlőjeleket generál (lásd 1. ábra).

Hozzáférés a speciális funkcióregiszterekhez - RSF (SFR - az 1. ábrán bekarikázva vannak). szaggatott vonal) csak közvetlen bájtcímzéssel lehetséges a 128 (80 órás) vagy annál nagyobb címtartományban.


A rezidens adatmemória (RDD) az MCS-51 család mikrovezérlőinek első modelljeiben 128 bájt kapacitású volt. Az RPD alsó 32 bájtja szintén általános célú regiszterek - RON (4 bank, egyenként 8 RON-os). A program az aktív bank 8 RON valamelyikére vonatkozhat. Az aktív RON-bank kiválasztása a processzorállapot-regiszterben - PSW - két bit programozásával történik.


1. táblázat - MCS-51 érintkezők hozzárendelése

Pin sz. Kijelölés Célja
1..8 P1 8 bites kvázi kétirányú I/O port
9 RST

Reset jel (aktív szint - magas);

Az RST jel alaphelyzetbe áll: a PC és a legtöbb speciális funkcióregiszter (SFR), letiltva az összes megszakítást és időzítőt; kiválasztja a RON Bank 0-t; a P0_P3 portokra "mindegyeseket" ír, előkészítve őket a bemenetre; 07H kódot ír a veremmutatóba (SP);

10..17

8 bites kvázi kétirányú I/O port; a megfelelő "1" bitre írás után - további (alternatív) funkciókat hajt végre:

Soros port bemenet - RxD;

Soros port kimenet - TxD;

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

1. külső megszakítás bemenet - ~INT1;

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

Időzítő/számláló bemenet 1 - T1;

Strobe kimenet. jel a VPD-be írva - ~ WR;

Strobe kimenet. jel a VPD-ből történő olvasáskor - ~ RD;

18, 19 X1, X2 Következtetések kvarc rezonátor vagy LC áramkör csatlakoztatásához;
20 GND Általános következtetés;
21..28 P2 8 bites kvázi kétirányú I/O port; vagy A kimeneti cím külső memória módban (VPP vagy VPD);
29 PME Külső programmemória olvasási villogása, csak külső ROM elérésekor jelenik meg;
30 ALE Külső memória cím villogó (VPP vagy VPD);
31 EA Az RPP letiltása esetén a "0" szint ennél a bemenetnél az MK-t egy kiválasztott parancsra váltja csak a kifutóról ;
39..32 P0 8 bites kétirányú I/O port; a külső memória elérésekor kiadja az A címeket (amelyeket az ALE jel egy külső regiszterbe ír), majd szinkronban cserél egy bájtot a ~PME (parancsokhoz) vagy a ~WR,~RD (VPD-ben lévő adatokhoz) jellel. , a külső memória elérésekor minden egység a P0 portregiszterbe kerül, megsemmisítve az ott tárolt információkat;
40 Ucc Tápfeszültség kimenet

A RON bankok váltása leegyszerűsíti az alprogramok végrehajtását és a megszakítások kezelését, mert. az alprogram hívásakor nem szükséges a főprogram RON-jainak tartalmát átvinni a verembe (elég egy másik aktív RON-bankra menni az alprogramban).

Az RPD-hez való hozzáférés közvetett vagy közvetlen bájtcímzéssel lehetséges (a közvetlen bájtcímzés csak az RPD első 128 bájtjának elérését teszi lehetővé).

A kiterjesztett RPD terület (az MCS-52 család mikrokontrollerei és az azt követő családok számára) 128 (80h) címről 255 (FFh) címre csak indirekt címzési módszerrel címezhető meg.

2. táblázat – Speciális funkciók blokkregiszterei (s f r)

Mnemo kód Név
0E0h *ACC Akkumulátor
0F0h *B Regisztrálja az akkumulátor bővítőt
0D0h *PSW Processzor állapotszó
0B0h * P3 3. port
0A0h *P2 2. port
90 óra *P1 1. port
80 óra *P0 0 port
0B8h * IP A prioritási nyilvántartás megszakítása
0A8h *AZAZ A maszkregiszter megszakítása
99h SBUF Soros adó-vevő puffer
98 óra * SCON Soros port vezérlés/Állapotregiszter
89 óra TMOD Időzítő/számláló mód regisztrálása
88 óra * TCON Timer/Counter Control/Status Register
8Dh TH1 1. időzítő (nagy bájt)
8bh TL1 1. időzítő (alacsony bájt)
8ch TH0 Időzítő 0 (magas bájt)
8ah TL0 Időzítő 0 (alacsony bájt)
83 óra DPH Adatmutató-regiszter (DPTR) (magas bájt)
82 óra DPL Data Pointer Register (DPTR) (alacsony bájt)
81 óra SP Stack pointer regiszter
87 óra PCON Igényteljesítmény-szabályozási regiszter

2. MCS–51 SZOFTVER MODELL


PARANCSTÍPUSOK MCS–51

A parancsok csaknem fele 1 gépi ciklusban (MC) fut le. 12 MHz-es kristályoszcillátor-frekvenciánál egy ilyen parancs végrehajtási ideje 1 μs. A fennmaradó parancsok végrehajtása 2 gépi ciklusban történik, azaz. 2 ms-ig. Csak a szorzási (MUL) és az osztási (DIV) utasítások hajtódnak végre 4 gépi ciklusban.

Egy gépi ciklus alatt két hozzáférés van a programmemóriához (belső vagy külső) az utasítás két bájtjának olvasásához, vagy egy hozzáférés a külső adatmemóriához (EDM).

3. AZ MCS CÍMEZÉS MÓDSZEREI (MÓDSZEREI)–51

1. REGISZTRÁCIÓS CÍMZÉS - A 8 bites operandus a kiválasztott (aktív) regiszterbank RON-jában található;

2 KÖZVETLEN CÍMZÉS (a - # jellel jelezve) - az operandus a parancs második (és 16 bites operandus esetén a harmadik) bájtjában található;

3 KÖZVETETT CÍMZÉS (a - @ jellel jelölve) - az operandus az adatmemóriában (RPD vagy VPD) található, és a memóriacella címét az indirekt címzés egyik RON-ja (R0 vagy R1) tartalmazza; a PUSH és POP parancsokban a címet az SP veremmutató tartalmazza; a DPTR regiszter 64K-ig tartalmazhat VPD-címet;

4 DIRECT BYTE ADDRESSING – (dir) – RPD cellák (00h…7Fh címek) és speciális SFR funkcióregiszterek (80h…0FFh címek) elérésére szolgál;

5 KÖZVETLEN BIT CÍMZÉS - (bit) - a 20H ... 2FH RPD cellákban található, külön címezhető 128 bit eléréséhez és a speciális funkcióregiszterek külön címezhető bitjeinek eléréséhez (lásd 3. táblázat és programmodell);

6 KÖZVETETT INDEX CÍMZÉS (@ jellel jelölve) - leegyszerűsíti a táblázatok megtekintését a Programmemóriában, a PP címet az alapregiszter (PC vagy DPTR) és az indexregiszter (Battery) összege határozza meg;

7 IMPLICIT (BEÉPÍTETT) CÍMZÉS - az utasításkód implicit (alapértelmezett) hivatkozást tartalmaz valamelyik operandusra (leggyakrabban az Akkumulátorra).

4. PROCESSOR ÁLLAPOTSZÓ (PSW) FORMÁTUM

C - Carry (CARY) vagy kölcsön jelző, "boolean akkumulátorként" is működik a bitekkel működtetett utasításokban;

AC – auxiliary (additional) carry flag – „1”-re állítva, ha az összeadás parancsnak (ADD, ADDC) volt egy átvitele az alacsony rendű tetradról a magasabb rendűre (azaz a 3. bitről a 4. bitre);

F0 - felhasználói jelző - beállítása, visszaállítása és szoftver általi ellenőrzése;

RS1 RS0 Bank Cím (rendező)
0 0 0 00..07 óra
0 1 1 08h..0fh
1 0 2 10h...17h
1 1 3 18h..1fh

RS1,RS0 – Regisztrációs bank kiválasztása:

OV - Aritmetikai túlcsordulás jelző; értékét az ALU legjelentősebb bitjének bemeneti és kimeneti hordozó jeleinek XOR művelete határozza meg; ennek a zászlónak egyetlen értéke azt jelzi, hogy egy aritmetikai művelet eredménye in kiegészítő kód tartományon kívül: –128…+127; az osztási művelet végrehajtása során az OV jelző nullázódik, nullával való osztás esetén pedig beáll; szorzáskor az OV jelző be van állítva, ha az eredmény nagyobb, mint 255 (0FFH);

Bit PSW - Fenntartva, triggert tartalmaz, íráshoz vagy olvasáshoz elérhető;

P - paritásjelző - az akkumulátorban lévő egyes bitek számának páros számhoz való hozzáadása; kombinációs áramkör alkotja (programozottan csak olvasásra áll rendelkezésre).

Az MCS-51 mikrokontrollerek nem rendelkeznek "Z" jelzővel. De a feltételes ugrási utasításokban (JZ, JNZ) a kombinációs áramkör ellenőrzi az Akkumulátor aktuális (nulla vagy nem nulla) tartalmát.

Minden átviteli és operanduscsere parancs végrehajtható az Akkumulátoron keresztül (lásd 3. ábra). Ezenkívül a külső memóriából (program- vagy adatmemóriába) történő átvitel csak az akkumulátoron keresztül hajtható végre.

A legtöbb átvitel egy előremenő bájton (dir) keresztül is végrehajtható. Vannak még dir-dir átvitelek is (lásd a 3. ábrát).

A hiányzó átvitelek RON-ról RON-ra átvitelként valósíthatók meg a RON-ról a forward byte dir-be (tekintettel arra, hogy a RON-ok a Rezidens Adatmemória kezdeti területén találhatók, amelynek celláit dir-nek lehet címezni).

Az XCH Exchange parancsok lehetővé teszik bájtok küldését mindkét operandus tönkretétele nélkül.

Az aritmetikai parancsok csak az Akkumulátorban hajtódnak végre. Ezért az első operandust először az Akkumulátorba kell helyezni, majd össze kell adni vagy ki kell vonni a második operandust. Az eredmény az Akkumulátorba kerül.


A SUBB kivonási parancs csak kölcsönkéréssel kerül végrehajtásra (azaz a Cary jelző is levonásra kerül az eredményből). Ezért egy kivonási utasítás kölcsönzés nélküli végrehajtásához először végre kell hajtani a Clear Flag C (CLRC) utasítást.

Az egybájtos operandusok szorzására vonatkozó utasítás - MULAB - két bájtos (16 bites) eredményt ad: az alacsony bájt az Akkumulátorban, a magas bájt a B regiszterben van.

Az egybájtos operandusok felosztására vonatkozó utasítás végrehajtásának eredménye - DIVAB - kerül: a hányados - a Akkumulátor, a maradék - a B regiszterbe.

Az INC aritmetikai utasítás hozzáad egyet a kiválasztott operandushoz. A DEC aritmetikai utasítás kivon egyet a kiválasztott operandusból. Az Accumulator Decimal Correction (DAA) utasítás segít binárisan kódolt decimális (BCD) számok hozzáadásához anélkül, hogy azokat hexadecimális (hexa) formátumba konvertálná. A forrás operandusoknak BCD formátumban kell lenniük, pl. minden egy bájt tetradjában csak 0 és 9 közötti számok vannak (nem lehet hexadecimális számok: A, B, C, D, E, F). Ezért egy bájt tartalmazhat 00-tól 99-ig terjedő számokat a csomagolt BCD-számok esetében, vagy 0-tól 9-ig terjedő számokat a kicsomagolt BCD-számok esetében.

A DA A - decimális korrekciós parancs a BCD-számok processzorban való hozzáadása után hajt végre műveleteket az Akkumulátor tartalmán (a számok a hexadecimális aritmetika törvényei szerint kerültek összeadásra) az alábbiak szerint (lásd a példát):

· ha az Akkumulátor alacsonyrendű tetradjának tartalma nagyobb, mint 9, vagy a segédátviteli jelző be van állítva (AC = 1), akkor az Akkumulátor tartalmához 6-ot adunk (vagyis a hiányzó hat számjegyet hexadecimálisan formátum);

· ha ezt követően az Akkumulátor magasabb rendjének tartalma 9-nél nagyobb, vagy a C jelző be van állítva, akkor a 6-os szám hozzáadódik az Akkumulátor magas sorrendjéhez.

A DA A decimális korrekciós utasítás nem használatos a növelési utasítás (INC) után, mert a növelési utasítás nem befolyásolja (változtatja) a C és AC jelzőket.

Logikai parancsok:

Logikai "ÉS" - ANL,

Logikai "VAGY" - ORL,

Az XOR logikai parancs - XRL - az Akkumulátorban (valamint az aritmetikában) kerül végrehajtásra, de lehetőség van logikai parancsok végrehajtására a közvetlen címbyte-ban (dir) is. Ebben az esetben a második operandus lehet:

az akkumulátorban ill

Azonnali operandus egy utasításban.

A forgatási utasítások (RR A, RL A) és a CARY jelzőn keresztüli forgatási utasítások (RRC A, RLC A) 1 bittel elforgatják az Akkumulátor tartalmát, a bites operandusok csak a C jelzőn keresztül kerülnek elküldésre.

Az Intel az MCS-51 család architektúrájának ötletgazdája, amely nevét a család első képviselőjéről kapta - az 1980-ban kiadott n-MOS technológián alapuló 8051 mikrokontrollerről. szerencsés készlet perifériák, a külső vagy belső rugalmas választás lehetősége programmemóriaés az elfogadható ár biztosította ennek a mikrokontrollernek a piaci sikerét. Technológiai szempontból a 8051-es mikrokontroller a maga idejében nagyon összetett termék volt - 128 ezer tranzisztort használtak a kristályban, ami 4-szerese a 16 bites 8086-os mikroprocesszor tranzisztorainak, ez a mikrokontroller marad a mag az MCS-51 család a mai napig.

A család alapvető architektúrájának (8051 mikrokontroller architektúra) fő elemei a következők:

8 bites ALU;

4 regiszter bank, mindegyikben 8;

Belső (rezidens) programmemória 4 KB, ROM vagy EPROM (8751) típusú;

Belső (rezidens) adatmemória 128 bájt;

21 speciális funkcióregiszter;

logikai processzor;

Két 16 bites időzítő/számláló;

Soros port vezérlő (UART);

Megszakításvezérlő két prioritási szinttel;

Négy 8 bites I/O port, amelyek közül kettő cím/adatbuszként szolgál a külső program- és adatmemória elérésére;

Beépített óra generátor.

Ezután megjelent a 8052-es mikrokontroller, amely megnövelt számú rezidens programot és adatmemóriát tartalmazott, amelyet egy harmadik időzítő és egy megfelelően bővített megszakításvezérlő vezet be.

Az MCS-51 fejlesztésének következő alapvető lépése a gyártástechnológia CMOS-ra való átadása volt (8xC51-es módosítás). Ez lehetővé tette az Idl (üresjárat) és a Power Down (alacsony fogyasztás) üzemmódok megvalósítását, amelyek jelentősen csökkentik a kristály energiafogyasztását, és megnyitották az utat a mikrokontroller használatához illékony alkalmazásokban, például autonóm akkumulátorral működő eszközök.

Az MK 8051 Intel fejlesztésének utolsó fontos szakasza a 8xC51FA / FB / FC és a 8xC51RA / RB / RC mikrokontrollerek kiadása volt, amelyeket a rövidség kedvéért gyakran 8xC51Fx és 8xC51Rx néven emlegetnek. Ennek a kristálycsoportnak a fő megkülönböztető jellemzője egy speciális időzítő / számláló (PCA) jelenléte. Ezenkívül a 8xC51Rx mikrokontrollerek egy watchdog időzítőt (WDT) is tartalmaznak. Fontolja meg részletesebben a PCA architektúráját és funkcionalitását.

Az RSA a következőket tartalmazza:

16 bites időzítő/számláló;

Öt 16 bites minta- és összehasonlító modul, mindegyik más-más mikrokontroller I/O portvonalhoz csatlakozik.

Az időzítő/számláló mind az öt minta- és összehasonlító modult kiszolgálja, amelyek a következő funkciók valamelyikére programozhatók:

Az időzítő értékének 16 bites mintavételezése a külső jel pozitív élén;

Az időzítő értékének 16 bites mintavételezése a külső jel negatív élén;

az időzítő értékének 16 bites mintavételezése a külső jel bármely szélén;

16 bites programozható időzítő;

16 bites nagy sebességű kimeneti eszköz;

8 bites PWM.

Az összes felsorolt ​​funkció megvalósítása a PCA-ban hardver szinten történik, és nem terheli a központi processzort. Ez lehetővé teszi az általános átviteli sebesség növelését, a mérések és a jelfeldolgozás pontosságának javítását, valamint a mikrokontroller külső eseményekre adott válaszidejének csökkentését, ami különösen fontos a valós idejű rendszerek esetében. A 8xC51Fx-ben (8xC51Rx) megvalósított PCA olyannak bizonyult

Kijelölés

Max. frekvencia (MHz)

ROM/EPROM (byte)

számlálók

Szerencsére ezeknek a mikrokontrollereknek az architektúrája iparági szabvány lett, és magát a PCA-t is többször reprodukálták az MK 8051 különféle módosításaiban.

Az Intel által gyártott MCS-51 mikrokontrollerek néhány jellemzőjét az 1.1. táblázat tartalmazza.

Kezdetben az MCS-51 architektúra szűk keresztmetszete a 8 bites akkumulátor alapú ALU és a viszonylag lassú utasítás-végrehajtás volt (12 hurok szükséges a leggyorsabb utasítások végrehajtásához).

1.1. táblázat

I/O

ADC bemenet x számjegy

periféria,

sajátosságait

U pet. (BAN BEN)

Alacsony feszültségű opció

4 szintes IRQ, clock out

4 szintes IRQ, clock out

Alacsony feszültségű változat 8xC51Fx

4 szintes IRQ, clock out

4 szintes IRQ, clock out

4 szintes IRQ, clock out

órajel frekvencia riodok (MC szinkronizálási frekvencia)). Ez korlátozta a családi mikrokontrollerek használatát a nagyobb teljesítményt és összetett számításokat igénylő alkalmazásokban (16 és 32 bites). Az MCS-51 architektúra alapvető modernizálásának kérdése sürgetővé vált. A modernizáció problémáját nehezítette, hogy a 90-es évek elejére már rengeteg fejlesztés született a szoftverek, ill. hardver az MCS-51 családból, melyhez kapcsolódóan az új architektúra tervezésének egyik fő feladata az MCS-51 alapú fejlesztésekkel való hardver és szoftver kompatibilitás megvalósítása volt.

A probléma megoldására egy közös szakértői csoportot hoztak létre Intel cégekés a Philips, de a két cég útjai később elváltak. Ennek eredményeként 1995-ben két jelentősen eltérő család jelent meg: az Intel MCS-251/151 és a Philips MCS-51XA (lásd az 1.2 alfejezetet).

Az MCS-251 architektúra főbb jellemzői:

24 bites lineáris címtér, legfeljebb 16 MB memória címzésére;

Regiszter-architektúra, amely lehetővé teszi, hogy a regiszterekre bájtokként, szavakként és kettős szavakként hivatkozzanak;

Oldalcímzési mód a parancsok gyorsabb lekéréséhez a külső programmemóriából;

Utasítási sor;

Kibővített utasításkészlet, beleértve a 16 bites aritmetikai és logikai műveleteket;

Bővített veremcímterület (akár 64 KB);

A leggyorsabb parancs végrehajtása 2 ciklusban.

Az MCS-251 utasításkészlet két utasításkészletet tartalmaz – az első készlet az MCS-51 utasításkészlet másolata, a második pedig kiterjesztett utasításokból áll, amelyek kihasználják az MCS-251 architektúrát. A mikrokontroller használata előtt konfigurálni kell, pl. a programozó segítségével "égesse" azokat a konfigurációs biteket, amelyek meghatározzák, hogy az utasításkészletek közül melyik válik aktívvá a tápfeszültség bekapcsolása után. Ha telepíti az első utasításkészletet, akkor ebben az esetben az MCS-251 család MK-ja bináris kód szinten kompatibilis lesz az MCS-51-el. Ezt a módot bináris módnak nevezik. Ha kezdetben bővített utasításkészletet telepít (Forrás mód), akkor az MCS-51-hez írt programok újrafordítást igényelnek az MCS-251 kereszteszközökön. A Forrás mód lehetővé teszi az MCS-251 architektúra maximális hatékonyságú használatát és a legmagasabb teljesítmény elérését.

Azon felhasználók számára, akik az MCS-251 mikrokontrollereket használják az MCS-51 mechanikus helyettesítésére, az Intel kiadja a már bináris módban programozott MCS-151 mikrokontrollereket.

Számos MCS-251/151 mikrokontroller néhány jellemzőjét az 1.1. táblázat tartalmazza.

Jelenleg Intel idő, amely a Pentium processzorok piacát célozza, korlátozza az MCS-51 kristályok gyártását. Általában egy adott fejlesztő számára ez észrevétlen marad, hacsak nem 8xC51GB és 80C152Jx mikrokontrollereket használ, amelyeknek nincs pontos analógja más cégek termékei között. Mint az MCS-51 család többi mikrokontrollerét, ezeket is sokszor replikálják más cégek.

Az OMEVM parancsrendszer nagyszerű adatfeldolgozási képességeket biztosít, biztosítja a logikai, aritmetikai műveletek megvalósítását, valamint a valós idejű vezérlést. Bitenkénti, tetrad (4 bit), bájt (8 bit) és 16 bites adatfeldolgozás megvalósítva.

LSI család MCS-51 - 8 bites OMEVM: ROM, RAM, speciális célú regiszterek, ALU és külső buszok bájtszervezéssel rendelkeznek. A kétbájtos adatokat csak a pointer regiszter (DPTR) és a programszámláló (PC) használja. Megjegyzendő, hogy az adatmutató regiszter használható kétbájtos DPTR regiszterként vagy két egybájtos speciális célú DPH és DPL regiszterként. A programszámlálót mindig kétbájtos regiszterként használjuk.

Az OMEVM parancskészlet 42 parancsmnemonikát tartalmaz 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 meghatározó operandusokból áll. Különféle típusok Az adatokat vagy a címzési módokat a beállított operandusok határozzák meg, nem a mnemonikus jelölés változásai.

A parancsrendszer feltételesen öt csoportra osztható:

A következő típusú forrás-operandus címzések léteznek:

  • Közvetett regisztercímzés alap- és indexregiszterek összegével

A parancsrendszerben használt jelölések és szimbólumok táblázata

Megnevezés, szimbólum Célja
A Akkumulátor
Rn Az aktuálisan kiválasztott regisztrációs bank nyilvántartásai
r A betöltött regiszter parancsban megadott száma
közvetlen Közvetlenül címezhető 8 bites belső adathely cím, amely lehet belső adat RAM hely (0-127) vagy SFR (128-255)
@rr Közvetetten címezhető 8 bites belső adat RAM hely
adatok8 8 bites azonnali adatok a CPC-ben
adatokH Azonnali 16 bites adatok MSB-jei (15-8).
adatokL Alacsony bitek (7-0) az azonnali 16 bites adatokból
addr11 11 bites célcím
addrL A célcím legkevésbé jelentős bitjei
disp8 8 bites előjeles offset byte
bit Közvetlenül címezhető bit, amelynek címe tartalmazza a belső adat RAM-ban vagy SFR-ben található CPC-t
a15, a14...a0 Célcím bitjei
(X) Az X elem tartalma
((X)) Tartalom az X elemben tárolt címen
(X)[M] Kisütés M elem X

+
-
*
ÉS
VAGY
XOR
/X
Tevékenységek:
kiegészítéseket
kivonás
szorzás
osztály
logikai szorzás (ÉS művelet)
logikai összeadás (VAGY művelet)
kiegészítés modulo 2 (XOR)
elem X inverziója

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. A táblázat a parancsok listáját mutatja ábécé sorrendben.

Mnemonika Funkció Zászlók
ACALL Csapat Abszolút szubrutinhívás
Kiegészítés AC, C, OV
Kiegészítés hordással AC, C, OV
AJMP csapat Abszolút átmenet
Logika "ÉS"
Logikai "ÉS" változó bitekhez C
Hasonlítsa össze és ugorjon, ha nem egyenlő C
A CLR csapat Akkumulátor visszaállítása
CLR csapat Reset bit C, bit
CPL A csapat Az akkumulátor inverziója
CPL csapat Bit inverzió C, bit
DA A csapat Akkumulátoros decimális korrekció az összeadáshoz AC, C
DEC csapat<байт> Csökkenés
DIV AB csapat Osztály C, OV
DJNZ csapat<байт>, <смещение> Ha nem nulla, csökkentse és ugorjon
Team I.N.C.<байт> Növekedés
Team INC DPTR Adatmutató növekménye
Team J.B. , Ugrás, ha bit be van állítva
JBC csapat , Elágazás, ha a bit be van állítva, és állítsa vissza ezt a bitet
Team J.C. Ugrás, ha a hordozás be van állítva
JMP @A+DPTR parancs Közvetett átmenet
JNB csapata , Ugrás, ha a bit nincs beállítva
Team JNC Ugrás, ha nincs átvitel beállítva
JNZ csapat Ugrás, ha az akkumulátortartalom nem nulla
JZ csapat Ugrás, ha az akkumulátortartalom 0
LCALL csapat hosszú hívás
LJMP csapat hosszú átmenet
Továbbítás változó-byte
Adatbit küldése C
Parancs MOV DPTR,#data16 Adatmutató betöltése 16 bites konstanssal
MOVC utasítás A,@A+( ) Bájt mozgatása a programmemóriából
Külső memóriába (külső memóriából) adatok küldése

MCS-51 alapverzió Rövid információ. A modern 8 bites mikrokontrollerek (MC) 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, fizikai és logikai felosztásával program- és adatmemóriára (Harvard architektúra), valamint vezérlő algoritmusok végrehajtására orientált parancsrendszerrel rendelkezik;

● tartalmazza az összes eszközt (processzor, ROM, RAM, I/O portok, megszakítási rendszer, bitinformáció feldolgozó eszközök stb.) mikroprocesszoros rendszer minimális konfigurációs vezérlők. Az 1970-es években a cég Intel kifejlesztette és elsajátította egy 8 bites MCS-48 mikrokontroller család kereskedelmi gyártását, amelyet számos közös jellemző (számjegykapacitás, parancsrendszer, alapvető funkcionális blokkok halmaza stb.) egyesít. 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 MCS-51 mikrokontroller családot, amely kompatibilis az MCS-48 család architektúrájával, de szélesebb képességekkel rendelkezik.

Az MCS-51 család architektúrája olyan sikeresnek bizonyult, hogy a mai napig a 8 bites MK-k egyik szabványa. Ezért ebbe a családba tartozó, viszonylag egyszerű vezérlőrendszerekben széles körben használt MC-ket választottuk a vizsgálat tárgyául.

Az MCS-51 családhoz különféle program-előkészítő eszközöket (fordítókat, hardver-szoftver emulátorokat stb.) fejlesztettek ki, és számos szabványos alprogram-könyvtár létezik. A család a mikrovezérlők mikroáramkörök (chip változatai) különféle módosításait tartalmazza. Ennek a szakasznak a cikkei kellő részletességgel foglalkoznak az MCS-51 család mikrovezérlőinek alapváltozatával (a 8051 mikroáramkör megfelel a hazai KP1816BE51 analógnak), amely szerkezeti és funkcionális szempontból, valamint megértés szempontjából a legegyszerűbb.

Későbbi sorozat chipek, miközben a kompatibilitás alap verzió javított gyártástechnológiával különböznek tőle, elektromos paraméterek, további hardver és funkcionalitás. A következő cikkek az MCS-51 család 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 a 2. ábrán látható. 7.1.1, tartalmazza:

● 8 bites központi processzor CPU, amely a következőkből áll ALU, vezérlő eszközök u ués címgenerátor F;

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

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

● négy programozható port Р0–Р3 információbevitelhez-kimenethez;

● BPI soros interfész blokk 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ás 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 MC nagyszámú regisztert tartalmaz, amelyek külön funkcionális blokkhoz vannak hozzárendelve, és nem szerepelnek az ábrán.

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

Belső 16 bitessel címbusz SHA-16, a CPU-ban kialakított cím megjelenik a ROM-ban (a cím 12 bitje) és a RAM-ban (8 alacsony bit).

Külső memória használata esetén a cím 8 alacsonyabb rendű bitje a P0 portra, és 3 vagy 8 magasabb rendű bitje a P2 portra kerül.

Az interfész logikai kiterjesztéséhez a portvonalak funkcióinak kombinációját alkalmazzuk. Példaként az ábrán látható. A 7.1.1 pontozott vonal a P3 port vonalait mutatja, teljesítő alternatív vezérlőjel átviteli funkciók, amelyek célját az alábbiakban tárgyaljuk. A belső órajelgenerátor létrehozásához az MK mikroáramkör kimeneteire egy kvarc rezonátort és két kondenzátort csatlakoztatunk (7.1.1. ábra). A belső órajelgenerátor helyett külső oszcillátor is használható a szinkronizáláshoz. Az MK mikroáramkör hagyományos grafikus jelölése a 2. ábrán látható. 7.1.2, a következtetések megnevezése és célja - táblázatban. 7.1.1. Fontolgat funkcióblokkok MK és munkájuk elve. Aritmetikai-logikai eszköz. Az aritmetikai-logikai egység aritmetikai (beleértve a szorzást és osztást is) és logikai műveletek végrehajtására szolgál nyolcbites operandusokon, valamint logikai eltolási, nullázási, beállítási stb. műveletek végrehajtására. Az ALU blokkvázlata a 1. ábrán látható. 7.1.3.

Az ALU tartalmazza

● párhuzamos nyolcbites vipera SM kombináció típus szekvenciális átvitellel, aritmetikai (összeadás és kivonás) és logikai (összeadás, szorzás, diszparitás és azonosság) műveletek végrehajtása;

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

Regisztráció B, a szorzás és osztás műveleteinek megvalósítására, vagy kiegészítő szuperoperatív regiszterként, melynek funkcióit a felhasználó határozza meg;

regisztereket(programozottan 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 egy korrekciós kódot tárol a bináris-decimális adatábrázoláshoz, egy maszkkódot a bitműveletekhez és egy konstans kódot;

program állapot szóregiszter PSW, az ALU állapotának rögzítése a művelet végrehajtása után. táblázatban. A 7.1.2 a PSW regiszter egyes számjegyeihez való bitek hozzárendeléséről ad tájékoztatást. Vezérlő eszköz. CPU vezérlőegység (CU) szándékolt az összes MK csomópont közös munkájának összehangolására a generált óra- és vezérlőjelek felhasználásával. Tartalmazza (7.1.4. ábra):

szinkronizálás és vezérlő egység Az USU, amely a gépi ciklusokat és azok egyedi állapotait (S) és fázisait (P) állítja elő, és az MK működési módjától függően generálja a szükséges vezérlőjel-készletet. Egy, két vagy négy gépi ciklus van kijelölve az utasítás végrehajtására.

Minden gépi ciklusnak 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.

Az órajel impulzusokon kívül minden gépi ciklusban két (néha egy) villogó jelet generál az ALE cím alacsony bájtjából pozitív impulzus formájában az S1P2-S2P1 és S4P2-S5P1 fázisokban. ábra időzítési diagramjai. 7.1.5 szemléltesse a gépi ciklusok szervezését;

● RK parancsregiszter, parancs dekóder DC és PLA, lehetővé téve minden egyes gépi ciklusban mikroműveletek halmazát a végrehajtandó parancs mikroprogramjának megfelelően;

● LVV bemeneti-kimeneti logikája olyan jelek fogadására és kiadására, amelyek információcserét biztosítanak az MC és a külső eszközök között az Р0–Р3 portokon keresztül;

● A PCON regiszter, amelynek egyetlen engedélyezett SMOD bitje van 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ímformáló (FA) vagy PC parancsszámláló, szándékolt az aktuális 16 bites programmemória cím és a 8/16 bites külső adatmemória cím kialakításához. Tartalmazza (7.1.6. ábra):

● 16 bites puffer B, amely az SD 8 bites adatbusza és a címgenerátor 16 bites belső busza (IS) között kommunikál;

● SI inkrementális séma az aktuális programmemória cím értékének eggyel növelésére;

● 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ó;

● RFA címgenerátor regiszter a végrehajtó 16 bites program memóriacím vagy 8/16 bites külső adatmemória cím tárolására. Ez a regiszter arra is szolgál, hogy a MOVX @Rm, A és MOVX @DPRT, A utasítások végrehajtásakor a P0 porton keresztül adatokat továbbítsanak külső eszközökhöz.

Adatmemória. Adatmemória szándékolt a program végrehajtása során használt információk fogadására, tárolására és kiadására. Az adatok belső (rezidens) memóriája (7.1.7. ábra) 128 bájt kapacitású RAM-ból áll, veremmutató SP, címjegyzék RAM RA és dekóder Dsh. Az SP veremmutató egy 8 bites regiszter, amely fogadja és tárolja a legutóbb elért verem helyének címét. Az alaphelyzetbe állítás után a veremmutató a 07H címre áll, ami megfelel a 08H címû verem elejének. Az RA címregiszter és a Dsh dekódoló lehetővé teszi a hozzáférést a szükséges memóriacellához, amely egy bájtot vagy egy bitnyi információt tartalmaz.

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

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

● DPL, DPH - a DPTR adatmutató regiszter alsó és felső bájtjai, amely indirekt címzési regiszterként használatos a MOVX @DPTR,A és MOVX A,@DPTR utasításokban;

● P2 SFR - P2 portreteszek;

● Rm (m = 0, 1) - 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ímzése 16 bites PC-számláló segítségével történik, így maximális kapacitása 64K bájt. A belső programmemória egy 4K bájt kapacitású ROM-ból és egy 12 bites dekóderbő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 kapcsolunk az MCU ¯EA érintkezőjére (ahogy az a 7.1.11. ábrán látható), a belső programmemória le van tiltva. Minden memória-hozzáférés a 0000h címen kezdődik. Ha az ¯EA érintkezőt a tápegységhez csatlakoztatják, 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 külső programmemóriájának olvasásához a ¯PSEN jel generálódik. Amikor dolgozik belső memória az olvasási jelet nem használják. 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, a ciklus második felében pedig a P0 porton lehet adatbájtot bevinni külső memóriából az MCU-ba.

A cím magas bájtja a P2 porton keresztül kerül továbbításra a memória elérésének teljes ideje alatt.

Az MK külső RAM-mal történő működése során az olvasási és írási ciklusok időzítési diagramja a 2. ábrán látható. 7.1.12.
A diagramok a következőket mutatják:

● PCL OUT - a PC parancsszámláló alacsony bájtos kimenete;

● PCN OUT - a PC parancsszámláló magas bájtjának kiadása;

● A DPH a DPTR adatmutató regiszter magas bájtja, amelyet közvetett címzésregiszterként használnak a MOVX @DPTR,A és MOVX A,@DPTR utasításokban;

● P2 SFR - P2 portreteszek;

● INS IN - az utasítás (parancs) bájt 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 (alsó regiszter DPTR). 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ére, valamint a következő funkciók végrehajtására:

● az А7…A0 cím alacsony bájtja az Р0 porton keresztül kerül kiadásra; a külső programmemóriával és a külső adatmemóriával (időosztással) végzett munka során egy bájt adat kerül kimenőbe az MK-ból, és bekerül az MK-ba;

● Az A15…A8 cím magas bájtja a P2 porton keresztül 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 vonalak alternatív funkciók végrehajtására használhatók, ha ennek a sornak a reteszelő-reteszébe 1 van beírva, ellenkező esetben a vonalkimeneten 0. A P3 port kimenetek alternatív funkcióit a táblázat tartalmazza. 7.1.3.

A portok sematikus 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;

● kimenet 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, amelynek órajelét a belső „Write to latch” jel jelzi. A D-flip-flop közvetlen kimenetéből származó adatok egy része a B1 pufferen keresztül a „Read latch” jellel kiolvasható az MK belső adatbuszának (SD) vonalára.

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 átvitelekor 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ő ellenállásokat kell csatlakoztatni a kimeneteire. Amikor 1-et ír a portreteszre, a VT1 invertertranzisztor kikapcsol, és a P0.X port külső érintkezője nagy ellenállású állapotba kerül. Ebben az üzemmódban a P0.X port tűje bemenetként szolgálhat. 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) belső terhelési ellenállású inverterek áramkörei szerint készült, amelyet VT2 tranzisztorként használnak.

A kapcsolási idő csökkentése érdekében a portkimenetek 0 állapotból 1 állapotba való átmenete során egy további VT3 tranzisztor kerül bevezetésre a VT2 terheléstranzisztorral párhuzamosan. A VT3 tranzisztort a kapuáramkör elemei segítségével a mester kristályoszcillátor két rezgési periódusának megfelelő időre feloldják (a gépi ciklus S1P1, S2P2 fázisai alatt). Kimeneti szakaszok A P0, P2 portok (7.1.13. ábra, A, c) az MX multiplexer segítségével akár reteszekhez, akár a belső "Cím / adatok" és "Cím" buszokhoz 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 egy kimenet és reteszelője 1-et tartalmaz, akkor a kimeneti fokozatát a hardveres-belső „Alternatív kimeneti funkció” jel vezérli, amely biztosítja a megfelelő alternatív funkciót, pl. a ¯WR, ¯RD vagy RxD jelek egyike a külső érintkezőn keletkezik. Ha a port pin-t használjuk bemenetként, akkor a hozzá érkező alternatív jel (TxD, ¯INT0, ¯INT1, T0, T1) az „Alternatív bemeneti funkció” belső vonalára kerül.

Port írási mód.

A portra írás parancs kiadásakor az új érték az S6P2 fázisban lévő reteszre í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 porttüskék külső érintkezőiről vagy a reteszelő kimenetekről olvasnak információkat. Az első esetben a portkimenet adatbitjét programozottan olvassa be a B2 pufferen keresztül a „Read outputs” jel az MK belső adatbuszának (SD) vonalára. Ne feledje, hogy a „Reteszelés írása”, „Reteszelés olvasása”, „Olvasási tűk” jeleket a hardver generálja 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ása esetén valósul meg: ANL, ORL, XRL, JBC; CPL; I.N.C.; DECEMBER; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

A reteszelő kimenetek információinak beolvasása kiküszöböli a hibákat a porttű logikai szintjének értelmezésekor. Olvassa el a cikk folytatását.