Névjegyzék

MCS 51 SI programozás. MCS-51 mikrokontrollerek. Szerkezeti séma, Alu, adatmemória. Különleges funkciók regisztrálása

Az MCS-51 család építészetét nagyrészt előre meghatározott - épülete kompakt és olcsó Digitális eszközök. Minden microevm funkciót egyetlen chip segítségével hajtanak végre. Az MCS-51 család számos mikrocirkendőt tartalmaz a legegyszerűbb mikrokontrollerekből, hogy meglehetősen bonyolult. Az MCS-51 családi mikrokontrollerek lehetővé teszik a különböző eszközök ellenőrzési feladatait és az egyes analóg áramköri csomópontok végrehajtását. A család összes zsetonja ugyanolyan mCS-51 parancsrendszer , a legtöbbjük ugyanabban a testvérben történik egybeeső Cocolevka (Az eset számozási lábak). Ez lehetővé teszi, hogy a különböző cégek - maximum, atmel, nxp stb. (Katalógus..php? Page \u003d Components_list & ID \u003d 39 "S.M. Keresés paraméterek szerint) az eszköz és a program fogalmának átmosása nélkül.

1. ábra: Az i8751 vezérlő szerkezeti diagramja

A vezérlő blokkdiagramja az 1. ábrán látható, és a következő alapvető funkcionális csomópontokból áll: vezérlőegység, aritmetikai logikai eszköz, időzítő / számlálók blokkja, soros interfész blokk és programmérő, adatmemória és Programmemória. A kétoldalú cserét belső 8 bites adatvonal segítségével végzik.

Fontolja meg az egyes blokkok hozzárendelését. Egy ilyen rendszer szerint az MCS-51 család szinte minden képviselője épül. A család különböző chipjei csak speciális célú nyilvántartásokban különböznek (beleértve a portok számát is). Az összes MCS-51 családi vezérlők parancsnoki rendszere 111 alapvető parancsot tartalmaz egy 1, 2 vagy 3 bájt formátummal, és nem változik, ha egy chipről a másikra mozog. A programok kiváló hordozhatósága egy chipről a másikra.

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

A vezérlő- és szinkronizálási egység (időzítés és vezérlés) úgy van kialakítva, hogy szinkronizálási és vezérlési jeleket generáljon, amelyek biztosítják az OEEHM blokkok közös működésének összehangolását a működésének minden megengedett módjában. A vezérlőegység összetételében a következőket tartalmazza:

  • - eszköz az időintervallumok kialakításához,
  • - I / O logika,
  • - Parancsjegyzék,
  • - villamosenergia-fogyasztási nyilvántartás
  • - Csapat dekóder, számítógépkezelő logika.

Csapat-intervallum képző eszköz A fázisok, órák és ciklusok belső szinkronjelének kialakítására és kiadására szolgál. A gépi ciklusok száma meghatározza a parancsok végrehajtásának idejét. Szinte minden OEEHM parancsot egy vagy két gépi cikluson végeznek, kivéve a szorzást és a divíziós parancsokat, amelynek időtartama négy motor ciklus. Jelölje meg a generátor frekvenciáját az F G-n keresztül. Ezután a gép ciklusának időtartama 12 / F g, vagy 12 periódus a megadott generátor jele. Az I / O logika olyan jelek fogadására és kiadására szolgál, amelyek a külső eszközökkel történő információcserét a P0-P3 kimenet kimeneti portjain keresztül biztosítják.

A csapatok nyilvántartása A 8-bites kód végrehajtható kód rögzítésére és tárolására tervezték. A működési kódot a parancs dekódoló és a számítógép vezérlési logikájával a parancs végrehajtásának mikroprogramjává alakítják át.

Fogyasztásellenőrző regiszter (PCON) Lehetővé teszi, hogy leállítsa a mikrokontroller működését a villamosenergia-fogyasztás csökkentése és csökkentése a mikrokontroller interferenciájának szintjének csökkentése érdekében. A villamos energia fogyasztásának még nagyobb mértékű csökkenése és az interferencia csökkentése a mikrokontroller mesterfejlesztő megállításával érhető el. Ezt a PCON Fogyasztási vezérlőrendszer átkapcsolásával lehet elérni. Az opció alkalmazó gyártási N-MOP (Series 1816 vagy külföldi mikroáramkörök, a nevét, amely a középső nincs „C” betű) PCON fogyasztási vezérlő regiszter csak egyetlen bit, amely szabályozza a Smod soros port átviteli sebesség, és Nincsenek villamosenergia-fogyasztásszabályozó bitek.

Aritmetikai logikai eszköz (ALU) Ez egy párhuzamos nyolc bites eszköz, amely biztosítja az aritmetikai és logikai műveletek végrehajtását. Az Alu a következőkből áll:

  • - Akkumulátorok, TMP1 és TMP2 időbeli tároló regiszterek,
  • - ROM állandó,
  • - Adder,
  • - Kiegészítő nyilvántartás (Regisztráció C),
  • - Akkumulátor (ACC),
  • - Program Állami Regisztráció (PSW).

Regisztráció akkumulátor és ideiglenes tárolási nyilvántartások - Nyolc bites regiszterből szánt fogadására és tárolására operandusok idején műveletek rájuk. Ezek a nyilvántartások nem programozott hozzáférhetőek.

Állandó Javító kódot biztosít a bináris-decimális adatnézet létrehozásához, a bites műveletek maszkkódja és állandó kód.

Párhuzamos nyolc bites adder Ez egy kombinációs áramkör, amely szekvenciális átadással rendelkezik, amely az addíciós, a sokszorzás, az egyfejezet és az identitás iránti, kivonási és logikai műveletek aritmetikai műveleteinek elvégzésére szolgál.

Regisztráljon B. - a nyolc bites regiszter, amelyet a sokszorosítás és az osztály műveletei során használnak. További utasítások esetén további ultraoperatív nyilvántartásként tekinthető meg.

Akkumulátor - nyolc bites nyilvántartás, amely az aritmetikai és logikai műveletek vagy a váltás műveletek végrehajtása során kapott eredmény fogadására és tárolására szolgál

Egymást követő interfész blokk és megszakítások (PIP) Úgy tervezték, hogy I / O, szekvenciális információáramlást és szervezeti megszakítási rendszereket szervezzen. A blokk tartalmazza:

  1. - PIP puffer,
  2. - Ellenőrzési logika,
  3. - Ellenőrzési nyilvántartás,
  4. - adópuffer,
  5. - vevő puffer,
  6. - Soros kikötői adó-vevő,
  7. - megszakítja az elsőbbségi nyilvántartást,
  8. - Megszakítási felbontás nyilvántartás,
  9. - Megszakítja a zászlót feldolgozó logikai és vektorgenerációs rendszert.

Parancsirtó (programszámláló) Úgy tervezték, hogy a programok belső memóriájának aktuális 16-bites címét és a programok külső memóriájának 8/16-bites címét alkotják. A csapatmérő 16 bites PC puffert, PC-regiszteret és növekedési sémát tartalmaz (az 1-es tartalom növelése).

Adatmemória (RAM) A program végrehajtási folyamatában használt információk ideiglenes tárolására tervezték.

POORS P0, P1, P2, P3 Ezek egy kvázi-dokumentumfilm bemeneti portok, és biztosítják az OES külső eszközökkel történő információcseréjét, 32 bemeneti vonalat képezve.

Időzítő eszköz A család alapvető modelljeiben két programozható 16 bites időzítő / számláló (T / C0 és T / C1), amelyet mind időzítőként, mind külső események számlálóként használhatunk

Program Állami Regisztráció (PSW) Úgy tervezték, hogy információt tároljon az Alu állapotáról a program végrehajtásakor.

Szoftvermemória (EPROM) A programok tárolására szolgál, és állandó tárolóeszköz (ROM). Különböző mikrocirkinek alkalmazásában maszk ROM, mosott ultraibolya sugárzás vagy Vaku. ROM.

Adatmutató regiszter (DPTR) A külső adatmemória vagy programmemória 16 bites címének tárolására tervezték.

Stack pointer (SP) Ez egy nyolc bites nyilvántartás, amelyet speciális adatmemória (verem) szervezésére terveztek, amelyben ideiglenesen mentheti el a memóriaellenőrzést.



Az MSS-51 család mikrokontrollerjei a Harvard építészetre épülnek, amelyben a programok és memória emléke e szakaszok, saját célzott terek és hozzáférési módja van.

Memóriaprogram


A memória maximális mennyisége 64K bájt, amelyből a memóriabájt 4k, 8k, 16k vagy 32k (7.3.1. Táblázat) kristályon található, a maradék térfogat a kristályon kívül esik.
Feszültségen az EA \u003d V cc. mind a belső, mind a külső memóriát használja, az EA \u003d V CC \u003d 0 - csak külső PA-MIG.
A 7.3.1. Táblázat megadása a címek címe a programokhozmeghatározott esetekben.
A programok alsó memóriaterületét visszaküldi a mikrokont-tekercs motor elindításához (a kiindulási cím a kisülés után) és a megszakítások feldolgozása alatt (a megszakítási szabályozás 8 bájtos intervallum: 0003H, 000BH, 0013H, stb.).


A memória programok csak olvashatók, és kezeléskor:

● K. külső memóriaa programok generálódnak ¯sen, és mindig 16 bites címet alkotnak.
A fiatalabb címbájtot a P0 porton keresztül továbbítják a gépciklus első felében, és az Ale Gate szelet rögzítik a nyilvántartásban.
A ciklus második felében a P0 port az MK byte külső memóriájából származó adatok bevitelére szolgál.
A cím vezető bájtát a P2 porton keresztül továbbítják a memóriafogadások teljes idejére (7.1.11 ábra);

● K. belső memóriaaz olvasási jelet nem képezzük, és a mikrokontroller belső gumiabroncsában lévő csere ciklusait használják.

Adatmemória

Belső memóriaaz adatok három blokkra oszthatók (7.3.2. Táblázat).

A belső memóriát mindig a bájt jelöli, amely csak 256 memóriacellával foglalkozik.
Ezért a 7.3.2. Táblázatból látható, a belső RAM felső 8 bites sejtjeinek és az SFR speciális funkcióinak nyilvántartásainak címére, amelyek ugyanazt a címteret foglalják el, a csapatokban különböző megoldási módokat használnak: közvetett és egyenes.

A belső RAM alsó régiójának szervezésének jellemzőitükröződik a táblázatban. 7.3.3.

A belső RAM fiatalabb 32 bájtja a 00H címekkel.
Az 1fh csoportba kerül a bank csalásához nyolc regiszterre (R0.R7).
A következő 16 bájt RAM-ot 20 órával.
A 2FH egy 8 × 16 \u003d 128 bites memória terület, amely lehetővé teszi minden egyes különbséget a fellebbezéshez.
A bank regiszter címének kiválasztásához az R0 nevét használják.
R7, hogy válasszon egy bank-bits RS0, RS1 PSW állapotállapot-nyilvántartást.

Címek bitek

Címek biteklED a táblázatban. 7.3.3.

A címzés végrehajtása közvetlenút.

Az SFR speciális funkciók listája regisztrálja a 7.2.2. Táblázat címét.
A 7.3. Táblázatban.

4 adagolva van re-Histrow cím térképSFR.az MCS-51 család mikrocirkinek.
Az SFR címét az oszlopok és vonalak száma határozza meg egy hexadecimális számrendszerben.

Például a CMOD regiszternek a D9H címe van.

Az SFR regiszterek esetében a címek 0 óra vagy 8 óra véget érnek (boldolva vannak kiemelve) mellett baitovamegengedett megvertékcímzés.

Ugyanakkor, a nevét, a bit elfoglaló a regiszter n-edik kisülési definiáljuk XXh + \u200b\u200b0NH, ahol XXh a regiszter címe SFR, N \u003d 0,7.
A régióban lévő bitcímek 80 órától az FFH-ig terjednek.
Például az akkumulátort az E0H-E7H-n belüli szamár le-zate címe.

Külső memóriaaz adatokat (legfeljebb 64 kb) az MK-hoz csatlakoztatott további memóriaforgácsok hozzák létre.
A speciális parancsok a külső adatmemóriával való együttműködésre szolgálnak, ezért a külső és belső memória címei nem metszenek, és ezért mindkét típusú memória memória egyszerre használható.

A sejtek külső adatmemóriával történő eléréséhez (7.1.8. Ábra):
● közvetett címzéssel rendelkező parancsok;
● Olvassa el a jeleket ¯rd és rekord ¯wr;
● P0 port a fiatal bájt címének átvitelére és az adatbájt fogadására / továbbítására;
● P2 port egy régebbi címbájt küldéséhez.
Kezelési módszerek.
A parancsrendszer használata:
● Közvetlen, közvetett, nyilvántartási, közvetetten regisztrálja, közvetlen és indexcímzés (közvetett címzés az alap- és indexregiszterek összegéről) forrás operandusok;
● Közvetlen, regisztráljon és közvetetten regisztráljon kinevezési operandusok.
Ezeknek a módszereknek a kombinációja (címzés) 21 címzési módot biztosít.
Ebben és az alábbi táblázatokban a következő szimbólumokat használják:

Közvetlen címzés.

A címzési módszer esetében a bájt vagy az adatbit helyét a második (és harmadik) baja parancs 8 bites címe határozza meg.
A közvetlen címzés csak a belső adatmemória (alsó 128 bájtja) és a speciális funkciók regisztrálása érdekében használható.

Regisztráció címzés.


Ez a címzési módszer hozzáférést biztosít az R0 nyilvántartások egyikében tárolt adatokhoz.
R7 jelenlegi munkakörülmények.
Használható az A, B, AB (kettős regiszter) nyilvántartására, a regiszter-mutató DPTR és az átviteli zászlót.
A megadott regiszterek címét a működési kódba helyezik, amely csökkenti a parancs byte számát.

Közvetetten regisztráljon címzés.


Ebben az esetben az adatok címét az indexregiszterben tartják, amelynek helyét a működési kód határozza meg.
Ezt a címzési módszert a külső RAM és a belső RAM felső felére vonja be.
A 8 bites hirdetésre utaló nyilvántartások R0, R1 nyilvántartásaként szolgálhatnak a kiválasztott munkatársai vagy SR Stack Pointer, 16 bites címzéshez, csak a DPTR adat késleltetési nyilvántartását használják.

Közvetlen címzés.


Ezzel a címzési módszerrel az adatok közvetlenül a parancsban vannak feltüntetve, és a második (vagy a második és a harmadik) parancsbájtban vannak, azaz.
Nem kötelező a memóriára.
Például a Co-Manda MOV A, # 50 az akkumulátorban az A 50-es számot betölti.

Index címzés.


Ez a módszer közvetetten rezsim címzés, amelyben az adatbájt címét az alap (DPTR vagy PC) és az index (ek) nyilvántartások tartalmának összege határozza meg.
Módszer csak a programmemória eléréséhez és csak olvasási módhoz való hozzáféréshez használható;ez egyszerűsíti a megtekintési táblákat a memóriában.

Csapatszerkezet.

A parancs hossza egy (49 parancs), két (45 ko-mand) vagy három (17 parancs) bájt.
A parancs első bájtja mindig tartalmazza a működőképességi kódot (KO), egy második és harmadik bájtot - az operandusok vagy a közvetlen adatértékek címét.

Különálló bitek, tetrádok, bájtok és kétbájtos szavak használhatók operandusként.
Kiválaszthat 13 parancsot, amely a táblázatban látható. 7.3.5:

● A, PC, SP, DPTR, RN (N \u003d 0, 7) - Akkumulátor, parancsmérő, verem mutató, adatmutató regiszter és aktuális bankregiszter;
● RM (m \u003d 0, 1) - a közvetett adreláció által használt jelenlegi bank nyilvántartása;
● Közvetlen - 8 bites cím közvetlenül címzett operandus;
● Bitcím közvetlenül címzett bit;
● rel - az átmenet relatív címe;
● ADDR11, ADDR16 - 11- és 16 bites abszolút átmeneti cím;
● # DATA8, # adatok16 - közvetlen adatok (operandusok) 8- és 16 bites hosszúságúak;
● A10, A9, A0 - a 11 bites cím külön kisütése;
● (.) - A memóriakejt tartalma a zárójelben meghatározott címen;
● SAT, MB - a 16 bites operandus vezető és fiatalabb bájtja.

Általános információs rendszer.

A parancsrendszer nagy adatfeldolgozási lehetőségeket kínál bitek, tetrad, bájt, két bájtos szavak formájában, valamint a valós idejű vezérlés formájában.
A parancsok leírásához az ASM51 Macroassampler nyelvét használják. A legtöbb parancs szintaxisa az elvégzett művelet mnemonikus megnevezéséből (rövidítés), majd operandusok.
Az operandusok használatával a címzés és az adattípusok különböző módjai vannak feltüntetve.

Különösen a Abbrevi-ATURA MOV 18 különböző parancsokat feldolgozásra szánt három adat (bit, byte, címek) különböző címtérré.
A parancsok készlete 42 mnemonikus jelölést tartalmaz 111 parancsfajta parancsfajta az MK funkció 33-as beszerzéséhez.

111 parancsok 64 végzünk egy gépi ciklus, 45 - két cikluson, és csak két parancs (MUL - szorzás és osztás - osztás), akkor teljesülnek 4 ciklusban. A 12 MHz-es óra generátor frekvencián a gépciklus (12 óra) időtartama 1 μs. Által funkcionális jela parancsok öt csoportra oszthatók. Az alábbiakban leírja a táblázatok formájában képviselt csoportok parancsát. A táblázatok tömörségéhez válassza ki a csapatcsoportot (7.3.6. Táblázat), amelynek végrehajtása befolyásol(Megjelölt +) a zászlók állapotárólpSW State Status Regisztráció.

Adatátviteli parancsok

A parancsok küldése egyedi alcsoportokra osztható.
Szállítási parancsok és adatcsere a sejtek közötti sejtek között (7.3.7. Táblázat).

Az 1-16. Parancsok, amelyek Mnemonics MOD DEST, SRC-vel rendelkeznek szállítmányaz SRC forrásból származó adatokból származó bájtok vagy két bájt (16. parancsolat) a DEST vevőhöz:
● jelezze forrás(SRC) Négy címezési módszert használnak: Regist-RY (2-4, 6, 8), közvetlen (1, 7, 9, 11), közvetett (5, 10, 10) és közvetlen parancsok (parancsok 12-16) ;
● jelezze vevő(Dest) három módszert használnak: Regisztráció (1, 3 ... 5, 9, 12, 14, 16), egyenes (2., 7., 8, 10, 13), közvetett (6, 11, 15).

Csapatok 17-20 cserea belső adatmemória két sejtje (vagy kétoldalas szállítás) között.
Amikor végrehajtó KO-MAND CHCN cseréje bájtok zajlik, és a XCHD parancs a fiatalabb négyes byte operandusok.

Az egyik sejt mindig egy akkumulátor A. Mint egy másik cella, a bájtok cseréje során az aktuális bank RN regiszterje, és közvetlenül vagy közvetve foglalkozik a belső memóriacellával; A notebookok használatakor - a belső memória csak közvetetten címezhető cellája.

Mivel az összes MK veremben a belső RAM-ban van elhelyezve, ugyanabban az alcsoportban csapatok(20, 21) felkéri a veremrePush src, pop dest.
Ezek a parancsok csak a közvetlen kezelési módot használják, a bájtok rögzítési módját, vagy erősítsék a veremből.
Emlékeztetni kell arra, hogy az MK-ban, amelyek a RAM-ban nincs felső 128 bájt, a 128 bájton kívüli verem növekedése az adatvesztéshez vezet.

Adatátviteli parancsok a belső és külső palánk között (7.3.8. Táblázat).

Ezek a parancsok csak közvetett adrelációt használnak, míg egyetlen bájtos cím a Regisztrálók jelenlegi bankjának P0 vagy R1-ben található, a DRTR adatmutató regiszter dupla bájtos címe.
A külső memóriához való hozzáféréssel az akkumulátor az A. akkumulátor játszik le a vevőkészülék vagy operandusok forrása

Adatátviteli parancsok a programmemóriából (7.3.9. Táblázat).

Ezeket a parancsokat úgy tervezték, hogy a szoftvermemóriából származó táblákat olvassák.

A MOVC A, @ A + DPTR parancs a táblázathoz a 0-tól 255-ig terjedő bemenetek számával jár.

A szükséges bejelentkezés a táblázatban van betöltve az akkumulátorba, és a DPTR regiszter az asztali indítási ponton van felszerelve. Egy másik parancs megkülönböztető jellemzője, hogy alapjelzőként egy pro-gramm számláló PC-mérőt használnak és hozzáférnek az asztalhoz a szubrutinból. Kezdetben a szükséges belépési pont számát betölti az akkumulátorba, majd a MOVC A, @ A + PC parancs segítségével a szubrutin hívják. Az asztalnak 255 emps-je lehet, számokkal 1-től 255-ig, mivel 0-at használnak a subrutin ret parancsának kezelésére.

Aritmetikai adatfeldolgozó parancsok. Minden aritmetikai parancsot ki nem értékelhető egész számok végzik. Két operandus feletti műveletek (7.3.10. Táblázat). Hadműveletekben gazHozzáad a továbbítás tárgyát képező kiegészítésekAddc I. kivonás, figyelembe véve a kölcsöntSUBB:

● Az egyik 8 bites operandus és az eredményvevő forrása az AK-kumulátort szolgálja;
● Egy másik operandforrás az RN (n \u003d 0-7) banki nyilvántartások egyike, vagy közvetlenül közvetlen. vagy közvetve @rm (m \u003d 0, 1) a RAM memóriacellába, vagy a közvetlen adatokhoz #data.

Tevékenységek szorzásMul I. osztályA div-t a REG-felvevő A és V tartalmán végezzük. Ha sokszorosítást végeznek, akkor a régebbi 8 eredményt RE-GYSTR-ben, a legfiatalabb 8 kibocsátásban rögzítik - a regiszterben.
Ha a termék nagyobb, mint 255, az OV túlfolyó zászló be van állítva; Az átviteli zászló mindig visszaáll. A DIV parancs végrehajtja a 8 bites akkumulátor operandus megosztását a V. regiszter 8 bites operandusán.
Ha a magántulajdonban lévő (régebbi kisülések) elosztása egy RE-GYSTR-ben van rögzítve a, a maradék (fiatalabb kibocsátások) - B. zászlók a C és az OV túlcsordulások visszaállítása.
Ha megpróbálja megosztani a 0-ot, az ov túlfolyó zászló be van állítva. A megosztási műveletet gyakrabban használják a számok eltolódására és átalakítására.

Ha egy bináris számot 2 N-vel osztunk, akkor balra irányítja az n biteket.
Az extra biteket átviheti V. regiszterre.

Egyszeri operációs műveletek(7.3.11. Táblázat).

A DA parancsot a bináris-decimális műveletek végrehajtására használják. Az INC parancsok, december lehetővé teszik, hogy növelje vagy csökkentse a memóriakejt tartalmát.
Alkalmazhatók az AKKUMULÁTORSZÁG TARTALMAZÁSÁRA VONATKOZÓ TARTALMAZHATÓSÁGOK, AZ ALKALMAZOTT MŰKÖDÉSI REGISZTRÁCIÓK VAGY MEMÓRIADÓK KÉSZÜLÉKBEN.
Az egységenkénti növekedés egy 16 bites DPTR mutató regiszter tartalmára is vonatkozik.

Logikai műveletek parancsok.

Kettős műveletek

(7.3.12. Táblázat).

Parancsok AML, ORL, XRL Engedje meg, hogy három kétdimenziós logikai műveletet végezzen 8 bites operandusokon: ANL - logikai szorzás (és), Orl - lo-hajtóka (vagy), XRL - kizárva vagy (XOR).
A műveleteket az egyes operandusok felett végzik. Az egyik operandus forrása és egyidejűleg az eredményvevő egy akkumulátor (A), vagy közvetlenül a memóriacellát (közvetlen) kezeli.
Egy másik operandus forrásához egy regi-string, közvetlen, közvetett vagy közvetlen címzési módszert használnak.

Egyetlen művelet

(7.3.13. Táblázat).
A csoport tartalmazza a műveietek számának át a tartalmát az akkumulátor A: tisztítási műveletek (CLR), logikai kívül vagy inverziót (CPL), ciklusos és kiterjesztett ciklikus eltolások 1 bittel jobbra (RL, RLC) és a bal (RR , RRC), Tetrad vagy ciklusos bájt eltolódás 4 kibocsátással (swap) és üres művelet (NOP), amelynek eredményeképpen az összes MK regiszter állapota (a programszámláló kivételével) változatlan marad.

Vezetői parancsok

Feltétel nélküli átmeneti csapatok

(7.3.14. Táblázat).

A parancsok 1-3 csak a célcím formátumában különböznek.

Az LJMP együttmétert (L - hosszú) "hosszú" feltétel nélküli átmenetet hajt végre az ADDR16 meghatározott címére, feltöltve a PC-számlálót a második és a harmadik parancs bájtal.
A parancs átmenetet biztosít a 64k bájtos címterület bármely pontjára.

A Co-Manda AJMP (A - abszolút) "abszolút" átmenetet biztosít a 2K bájt oldalán belüli címre, amelynek kezdeti címét a PC programmérő öt régebbi kisülési-Ds határozza meg (először a PC-növekedés tartalma 2).

Az SJMP (S - RÖVID) parancs lehetővé teszi a "Rövid" feltétel nélküli átmenet megvalósítását a rel offset hozzáadásával kiszámított címre a második pate parancsok jelzésével, a PC-számláló tartalmával, korábban kibővült 2.

Az átmeneti cím az Adreth csapathoz viszonyítva -128 + 127 bájton belül van.
A 64 kilobyte cím Pro-Space bármely más pontjára való áttéréshez egy 4-es parancs is használható indirekt @ A + DPTR adrelációval is.
Ebben az esetben az A tartalmat egész jelként értelmezik.

Egy üres művelet (NOP), amelynek eredményeképpen a mikroprocesszor összes nyilvántartása (a programmérő kivételével) változatlan marad.

Feltételes átmeneti csapatok

(7.3.15. Táblázat).

A JZ és a JNZ parancsok használatával az átmenet akkor történik, ha az akkumulátor tartalma vagy nem nulla.
Az átmeneti címet az REL rel relatív ikonikus elmozdulásának hozzáadásával számoljuk ki a PC-parancs számláló tartalmával, miután hozzáadta a 2. számot (a bájtok parancshossza).

Az akkumulátor tartalma továbbra is nem módosított.
A zászlókkal kapcsolatos csapatok nem befolyásolják.

A CJNE (3-6) parancsok a két 8 bites operandus összehasonlításának eredménye alapján feltételes átmenetet hajtanak végre, amelynek helyét a parancs tartalmazza.
Ha értékeik nem egyenlőek, az átmenet elvégzése.

Az átmeneti címet a rel offset hozzáadásával számoljuk ki, a PC-számláló tartalmával, előre meghúzva 3.
Ellenkező esetben a következő parancs történik.

Az algoritmus grafikonja mutatja az összehasonlított 8 bites operandusok értékének hatását a C átviteli zászlóján.
DJNZ (7, a szoftveres ciklusok megszervezésére.

A RN nyilvántartás vagy közvetlenül (Direct) címezhető sejt egy második alkalommal ciklusszámláló, REL (a második és a harmadik parancs bájt) a relatív címét átmenet az elején a ciklus.
A parancsok végrehajtásakor a mérő tartalma egységenként csökken, és nulla értékre kerül.
Ha a tartalomszám nem nulla, akkor a ciklus elejére való áttérés történik.
Egy személyben a következő csapatot végzik.

Az átmeneti címet az ellenzék hozzáadásával kell kiszámítani, a számláló tartalmával, korábban növekedett a co-mandy hosszúsághoz (2 vagy 3).
A parancs zászlók nem befolyásolják.

Hívja a parancsokat a szubrutinokhoz és visszatér a programokból

(7.3.16. Táblázat).
LCALL parancsok "hosszú hívás" és az ACALL "Absolute Hívás" A megadott címen közzétett szubrutin feltétel nélküli hívását végezzen.

A fentiekben tárgyalt feltétel nélküli átmeneti parancsok közötti különbség az, hogy megtartják a visszatérési címet (számláló tartalmat) a fő programhoz.
A RET szubrutin visszatérési parancsát visszaállítja a Command Meter tartalmát a Stack-ről, és a karbantartási szint engedélyezése mellett a RETI parancsot.

A vezérlési parancsokat széles körben használják a relatív címek, amelyek támogatják a szoftver modulokat.
Relatív címként egy 8 bites rel elmozdulást biztosítanak egy jelzéssel, amely ± 127 bájtban a PC-számláló aktuális helyzetétől elágazást biztosít mindkét irányban.

A 64k-bájtcímterület bármely más pontjához az ADDR16 közvetlen címe, vagy indirekt @ A + DPTR cím.
Az utóbbi esetben a tartalmat egészen jel nélkül értelmezik.

Var-hangya az ADDR11 rövid közvetlen címzettje által a Wen-Den 2k-bájtos aktuális oldalán belül az MK48 architektúrával való kompatibilitás érdekében.

Mindezek a címzési típus csak az átmeneti műveletre alkalmazható, a hívás művelete csak a közvetlen addr16 és a belső ADDR11 címzési módszerek megengedett.
Minden feltételes műveletben csak relatív címzés használható.

Amikor MK51 azonosítja a megszakítás kérést, akkor az egyik, a LCALL AddR16 típusú parancsok, amely automatikusan biztosítja, hogy a címe a visszatérési címet a stack.
Az MK51-ben az MK48-ból eltérően azonban nincs automatikusan mentve az állapotban.

Ebben az esetben a megszakítások logikája megszűnik a karbantartásra elfogadott szintre vonatkozó kérelmekre.
A megszakítási szint csökkentése érdekében a RETI megszakításból származó visszatérési parancsot szolgálják fel, amely az Opera mellett, amely megfelel a RET-nek, ezen a szintű megszakítási engedélyezési engedélyt tartalmazza.
Az MK51 tipikus feltételes műveletei közé tartoznak a JZ, JNZ műveletek is.
Az On-Nao új műveletet jelent meg "Összehasonlítás és menni" Cjne.

Szerint ezt a parancsot, az operandus összehasonlította a szabályok kivonva egészek az állandó és összhangban az összehasonlítás eredménye, a CY flag Ezután megjelenik. Ezután esetén nem értés a folyamatos, elágazás végezzük. Összehasonlítva az akkumulátort, az újragasztron vagy a memóriacellát az állandó konzisztenciájával, kényelmes módja annak, hogy ellenőrizze az egybeeséseket, például a különleges alkalmak azonosítása érdekében.

Valójában a CJNE parancs a magas szintű típustípus üzemeltetője.

A további fejlesztés megkapta a DJNZ csapatot.
Most egy programozó nemcsak az RN munkacsoportok egyikét használhatja, hanem egy DSEG memóriacellát is.

Bit műveleti parancsok.

A csoportban 12 parancsok lehetővé teszik, hogy teljes műveletet egy vagy két bit (reset telepítés, kicsit inverzió, valamint a logikai és vagy vagy vagy), és az 5. parancsok végrehajtására tervezett feltételes átmenet (táblázat 7.3.17).

A parancsok közvetlen címezést adnak a belső RAM hatszulutáksejtjeiben található, a 20h
2fh (táblázat 7.3.3), és 128 bit található speciális célú regiszterek, a címeket, amelyek több (nyolc kiemelt táblázat 7.3.4 szervek által).

Ha két egyjegyű operandusú operátorokat logikai akkumulátorként végez, a C átviteli zászlót tároló PSW REGISZTRÁCIÓK (7.1.2. Táblázat).

MOV parancsok (1,2) kerülnek végrehajtásra szállítása belső RAM egyik közvetlenül címezhető bitsejtjéből vagy az ellenkező irányba.
CRL (3, 4), SETB (5, 6), SETB (5, 6), illetve visszaállításnulla vagy határvonala C átviteli zászló C vagy meghatározott bit.
A CPL, ANL, ORL (7-12) parancsok segítségével az inverzió, az adagolás és a szorzás logikai műveletei történnek.

A csoport magában foglalja a csapatok (13-17), hogy végre szokásos átmenetet műveletek relatív 8-bites REL elmozdulás.
Az átmenetek mind az átruházás, mind a transzfer (13, 16, 16. paranccsal) és a mentesítésen (14, 17. parancs) valósíthatók meg.

A JBC parancs mellett a kiszámítási címre való áttérés mellett a feltétel végrehajtása (bit) \u003d 1, állítsa vissza ezt a bitet a nulla állapotba.
A feltételes átmeneti parancsok végrehajtásakor a címátmenetet a 3. vagy 2. számú számláló tartalmának hozzáadása után számoljuk ki (a parancsban lévő bájtok számát tükrözi).

Az Omeim parancsrendszer nagy adatfeldolgozási képességeket biztosít, biztosítja a logikai, aritmetikai műveletek, valamint a valós idejű üzemmód végrehajtását. Ezt a megvert, repült (4 bit), fényes (8 bit) és 16 bites adatfeldolgozással hajtja végre. Az MCS-51 bisz családja 8 bites OmeVM: ROM, RAM, speciális célú regiszterek, az ALU és a külső gumiabroncsok bájtos szervezet. A kettős bájt adatokat csak regisztermutató (DPTR) és parancsmérővel (PC) használják. Meg kell jegyezni, hogy az adatregiszter dupla byte DPTR regiszterként vagy két egy eltolódott DPH és DPLS regiszterként használható. A parancsszámlálót mindig kétbájtos regiszterként használják. Az OMEEV parancsok készlete 42 mnemonikus szimbólummal rendelkezik a rendszer 33 funkciójának meghatározásához. A legtöbb szerelési nyelvi parancs szintaxisa a funkció mnemonikus megnevezéséből áll, amely operandus jön, jelezve címzési módszereket és adattípusokat. A különböző adattípusokat vagy címzési módokat a telepített operandusok határozzák meg, és nem változnak a mnemonikus megnevezésekben. A parancsrendszer hagyományos és öt csoportra osztható:
  • Aritmetikai csapatok;
  • Logikai parancsok;
  • Adatátviteli parancsok;
  • Harapás processzorparancsok;
  • Parancsok ág és menedzsment.
A következő típusú operandus forrásai vannak:
  • Regisztráció címzés
  • Közvetlen címzés
  • Közvetlenül regisztráljon
  • Közvetlen címzés
  • Közvetett nyilvántartás, amely az alap- és indexregiszterek összegére vonatkozik
A parancskészlet aritmetikai csapata a következő aritmetikai műveletek: kiegészítés, kiegészítés, figyelembe véve az átviteli zászlót, kivonás hitel, növekmény, csökkenés, összehasonlítás, decimális korrekció, szorzás és megosztás. Allu-ban az egész számok megjelölése nélkül történik. A kéthetes műveletek: összeadás (add), felül a transzfer (ADDC) és kivonás kölcsön (subb) akkumulátor az első operandust, és úgy a művelet eredményét. A második operandus lehet egy működő nyilvántartást a kiválasztott bank dolgozó regisztrátorok, a belső memória regiszter indirekt regisztrálni és közvetlen címzés vagy byte közvetlen adatokat. Ezek a műveletek befolyásolják a zászlókat: Peping, Átvitel, Közbenső átvitel és paritás zászló a Word Commercior állapotban (PSW). Az átutalási kisülés használata többször is lehetővé teszi a pontosság javítását a Műveletek (Addc) és a kivonás (SUBB). A jelzéssel ellátott kiegészítés és kivonási műveletek figyelembe vehetők az OVW Overflow Flag Software Control (OV) használatával. A közbülső átviteli zászló (AC) biztosítja az aritmetikai műveletek végrehajtását a bináris-decimális kódban. A lobogóok növekedési és csökkenése nem érinti. Az összehasonlítási műveletek nem befolyásolják a kinevezési operandust, sem a forrás operandust, de befolyásolják az átviteli zászlókat. Három aritmetikai művelet, amelyet csak az akkumulátoron végeznek: két parancs az akkumulátort (JZ, JNZ) tartalmának ellenőrzésére, valamint a decimális korrekciós csapat, amikor a bináris-decimális kódok kiegészítések. A szorzási műveletekkel az akkumulátor tartalma és a regiszter tartalmával szorozva, és az eredmény az alábbiak szerint helyezkedik el: a B-ben lévő fiatal bájt B, Senior - az A. Register A. részlege esetén Az egész divízió az akkumulátorba kerül, a Regisztrációs egyenlege - a Regisztráció V. Logikai parancsok Byte változókkal A parancsrendszer lehetővé teszi a logikai műveletek végrehajtását: "és", ", vagy", kivéve az akkumulátor regiszterét A) és egy pate-forrás. A második operandus (BYTE-SOURCE) a munkarenderek kiválasztott bankjában dolgozó regiszter lehet; A belső RAM nyilvántartása, amely közvetetten regisztrálással foglalkozik; A belső RAM és a speciális célú nyilvántartások átváltható sejtjei; Közvetlen érték. Ezek logikai műveleteket lehet végrehajtani bármilyen közvetlen nyilvántartás a belső RAM vagy speciális célú regiszter segítségével a tartalmát az akkumulátor egy vagy közvetlen adat, mint a második operandus. Vannak logikai műveletek, amelyeket csak az akkumulátoron végeznek: visszaállítani és invertálni mind a nyolc kiürítést a; ciklikus eltolódás balra és vvvo-ra; a bal és jobbra történő ciklusos váltás, figyelembe véve az átvitel lobogóját; Exchange a vezető és a junior tetrad (NIBLS) az akkumulátorokban. A ROM programhoz varrott Symbol Asztali adatátviteli parancsok (kódok) az adatátviteli parancsok segítségével választhatók ki közvetett címzéssel. Byte állandók átvihetők az akkumulátort a rekeszbe programok címzett összegének alap regiszter (PC vagy DPTR), és az index regiszter (tartalom A). Ez például az ASCII-kód konverziós algoritmusának hét szegmens kódjára való megfelelő eszközt biztosít. A külső adat RAM 256 bájtos blokkjának bármely celláját közvetetten Regisztrált regiszterrel lehet kiválasztani R0 vagy R1 mutatók (kiválasztott munkatársai bankja) segítségével. A külső RAM 64 kb-os címterületen belüli cella is kiválasztható a DPTR adatmutató regiszteren keresztül történő közvetett regiszter használatával. A forgó regiszterek közötti átviteli parancsok lehetővé teszik, hogy értéket adjon a portról a belső RAM sejtjébe, anélkül, hogy munkarendeket vagy elemeket használna. Logikai processzorban bármely ismételt bit az átviteli bitbe helyezhető, és fordítva. Az akkumulátor tartalma a munkarenderek (kiválasztott bank) tartalmával és a közvetett regiszter címzéssel foglalkozó belső RAM-sejtek tartalmával cserélhető, valamint a belső RAM közvetlen címzett sejtjeinek tartalma és a különleges célú nyilvántartások tartalmával. Az akkumulátor tartalmának fiatalabb NIBT-jét (3-0-os kisütés) a belső RAM sejtjeinek tartalmának tartalmával kicserélhetjük a közvetetten regisztráló címzéssel. Bit Processor parancsok A bit processzor része az MK51 család MK architektúrájának, és független gyöngyöző processzornak tekinthető. A bit processzor parancsokat hajt végre, bináris címezhető RAM-jét és bemeneti teljesítményét. A bitekkel működő parancsok közvetlen címzést biztosítanak 128 bit (0-127) a belső RAM (20H-2FH-című sejtek), és közvetlenül a speciális célkitűjtők közvetlen kezelése, amelyek címei több nyolc. A külön címzett bitek mindegyike "1" értékre állítható, visszaállítva a "0" -t, fordított, ellenőrzött. Az átmenetek megvalósíthatók: ha a bit telepítve van; Ha a bit nincs telepítve; átmenet, ha a bit telepítve van, ennek a bit kiürülésével; A bit újraírható (a) az átvitel kiürülése. Bármely következménye és az átviteli jelzés, a logikai műveletek "és", "vagy" vagy "előállíthatók, ahol az eredmény az átviteli zászló kibocsátásába kerül. A keserű feldolgozási parancsok biztosítják a komplex kombinatorikus logikai funkciók és a felhasználói optimalizálás megvalósítását. A címcímek paranccsal rendelkező elágazási és átviteli parancsok nem rendelkeznek oldalszervezéssel, amely lehetővé teszi, hogy szabadon mozgassa a program töredékeit a címterületen belül, nem igényel recesszív (változtatás) oldalszámot. A program egyéni töredékeinek mozgatása lehetővé teszi a változatos szoftvermodulok különböző programokkal történő használatának lehetőségét. A parancsok 16 bites átmenetek és hívásokat szubrutinok lehetővé teszi, hogy átmenet bármely pontján a címtartomány a memória 64 KB programokat. A 11 bites átmenetek parancsok és a szubprutinok hívásai átmeneteket biztosítanak a 2 KB-os kapacitáson belüli modulon belül. A parancsrendszer feltételes és feltétel nélküli átmenetek a következő program kezdeti címéhez képest (RS) -128 - (Zs) +127. Az egyéni kibocsátások ellenőrzésére szolgáló parancsok lehetővé teszik a "0" vagy "1" és a következményes bitek feltételes átmenetét. Az akkumulátor tartalmának ellenőrzése (nulla / nem nullához) lehetővé teszi a feltételes átmeneteket az A.isztregisztrátori átmenetek szerint. A címzési nyilvántartás címzését a munkarenderek kiválasztott bankjának nyolc munkarendjeinek felkérésére használják (ugyanazokat a regisztereket lehet kiválasztani a közvetlen címzéssel és közvetetten regisztrálással a belső adat RAM hagyományos sejtjeivel. A REGISZTRÁCIÓ A címzést az A, B, AB (DED REGISZTRÁCIÓ), DPTR és a C átültetési lobogójához vonja be. Közvetlen címzés A közvetlen BYTE Contact címzés az adatok belső memóriatársainak (RAM) elérésére szolgál (0-127) és speciális célú regiszterekhez. A közvetlen keserű címzési használják fellebbezést külön címezhető 128 bit található sejtek 20H-2FH címek és külön címezhető biteket a speciális célú regiszterek. Senior Bit Byte Direct Adrem Code Kiválasztja a külön címzett bitek egyik csoportját, amely RAM-ban vagy speciális célú regiszterekben található. A 0-127 (00H-7FH) címmel közvetlenül címzett bitek a belső RAM 16 cellájának blokkjában helyezkednek el, amelynek címe: 20H-2FH. Ezeket a sejteket következetesen számozzák a fiatalabb bájt fiatalabb bitjéből a régebbi bájt idősebb bitjéhez. Külön címzett bitek speciális célú nyilvántartások számozottak a következők: Öt vezető címkibocsátás egybeesik a nyilvántartás öt idősebb kibocsátásával, és három fiatalabb - meghatározza a különálló IBTA helyét a nyilvántartásban. A közvetett regiszter címzésének közvetett nyilvántartása a belső adat RAS fellebbezésére szolgál. Regisztrációs mutatókként az R10, R1 regisztereket használják a kiválasztott nyilvántartási bank. A Push and Pop parancsok a Stack Pointer (SP) tartalmát használják. A közvetett regiszter címzés a külső adatmemória eléréséhez is használható. Ebben az esetben az R0 és R1 mutató regiszterek (a munkakörülők kiválasztott bankja) segítségével egy cellát a külső adatmemória 256 bájában lévő blokkból választunk ki. A blokkszám előre beállítja a P2 port tartalmát. A 16 bites adatmutató (DPTR) felhasználható az adatok külső memóriájának címtartományának bármely cellájához 64 KB-ig. Közvetlen függőség Közvetlen címzés Lehetővé teszi a konstans program kiválasztását a parancsban kifejezetten megadott memóriahely címétől. Közvetetten regisztráljon az alap- és indexregiszterek összegére vonatkozóan. A közvetett regiszter címzése az összegben: az alapregiszter és az index regiszter (az akkumulátor tartalma) leegyszerűsíti a program memóriájában varrott táblák megtekintését. A táblázat bármely bájtát a DPTR vagy PC tartalmának összegét meghatározó címmel lehet kiválasztani, amely meghatározza a DPTR vagy a PC tartalmát. A parancsrendszerben használt kijelölési táblázat és szimbólumok
Kijelölés, szimbólum Célja
DE Akkumulátor
Rn. A jelenlegi kiválasztott regiszter bank nyilvántartása
R. A csapatban megadott letöltött nyilvántartás száma
Közvetlen. Közvetlenül címezhető 8 bites belső címe egy adatsejt, amely lehet a sejt a belső adat RAM (0-127) vagy SFR (128-255)
@Rr. Közvetlenül címezhető 8 bites sejt a belső adat RAM
Adatok8. 8-bites, sétáljon egy zsaru
Datah. Senior bitek (15-8) azonnali 16 bites adatok
Datals Younger bitek (7-0) azonnali 16 bites adatok
Addr11 11 bites célcím
Addrl Junior célcímek
Disp8. 8 bites offset byte m jelzéssel
Bit. A közvetlen címzéssel, amelynek címe tartalmaz egy zsaru, amely a belső adat RAM-ban vagy SFR-ben van
A15, A14 ... A0 A célcímek bitek
(X) Az x elem tartalma.
((X)) Tartalom az X elemben tárolt címen
(X) [m] Az x elemet x
+ - * / és XOR / X Műveletek: A logikai hozzáadás (működés és) divíziójának (működés vagy) divíziójának (működés vagy) divíziójának kivonása (működtetése vagy) 2-es modul hozzáadása (kivéve az x elem inverzióját)

A funkciók mnemonikus megnevezései egyedileg kapcsolódnak a címzési módszerek és az adattípusok specifikus kombinációihoz. Összesen 111 ilyen kombináció lehetséges a parancsrendszerben. A táblázat az ábécé által megrendelt parancsok listáját mutatja.

Mnemonika Funkció Zászlók
Acall parancs A szubrutin abszolút hívása
A csapat hozzáadja a,<байт-источник> Kiegészítés AC, C, OV
Addc egy csapat<байт-источник> Átadással AC, C, OV
AJMP parancs Abszolút átmenet
Anl csapat<байт-назначения>, <байт-источникa> Logikus "és"
Anl C parancs,<байт-источникa> Logikus "és" a változókhoz
Cjne parancs<байт-назначения>, <байт-источник>, <смещение> Összehasonlítás és átmenet, ha nem egyenlő C.
CLR A. csapat. Akkumulátor visszaállítása
Clr csapat Bites visszaállítás C, bit.
CPL A. Team Inverzió ak uma ura
Cpl parancs Bit inverzió C, bit.
Csapat Da A. Decimális akkumulátor korrekció hamis AC, C.
Csapat dec<байт> Csökkenés
Divab csapat Osztály C, ov.
Csapat djnz.<байт>, <смещение> Csökkenés és átmenet, ha nem nulla
Inc. parancs<байт> Növekedés
Team Inc DPTR Adatmutató növelése
JB csapat , Átmenet, ha a bit telepítve van
Csapat JBC. , Átmenet Ha a bit telepítve van és visszaállítja ezt a bitet
JC csapat Átmenet, ha az átvitel be van állítva
JMP @ A + DPTR csapat Közvetett átmenet
Csapat jnb. , Átmenet Ha a bit nincs telepítve
JNC csapat Átmenet Ha az átvitel nincs telepítve
Csapat jnz. Átmenet Ha az akkumulátor tartalma nem nulla
Csapat JZ. Átmenet Ha az akkumulátor tartalma 0
Lcall parancs Hosszú kihívás
Csapat ljmp Hosszú átmenet
Team Mov.<байт-назначения>, <байт-источника> Változó byte küldése
Team Mov.<бит-назначения>, <бит-источника> Adatbitek küldése C.
Csapat MOV DPTR, # DATA16 Adatmutató feltöltése 16-bites állandó
MOVC A, @ A + ( ) Bytes küldése a programmemóriából
Movx parancs<байт приемника>, <байт источника> Küldés külső memóriába (külső memóriából) adatok
Csapat mul ab. Szorzás C, ov.
Parancs NOP. Hadművelet PC.
Orl csapat<байт-назначения>, <байт-источникa> Logikus "vagy" változó byte
Orl c parancs<бит источникa> Logikus "vagy" a változókhoz C.
Pop csapat Olvasás a veremből
Push csapat Rekord a veremben
Ret. Visszatérés a szubrutinból
Reti csapat Visszatérés a megszakításból
RL A. csapat Akkumulátor tartalomváltás balra
RLC parancs Akkumulátor tartalomváltás a transzpirációs zászlóval
Rr A parancs Akkumulátor eltolódás jobbra
RRC parancs Az akkumulátor tartalma az átszállási zászlóval jobbra vált C.
Setb parancs Állítsa be a biteket C.
Csapat sjmp.<метка> Rövid átmenet
A,<байт источника> Kivonás hitelfelvételrel AC, C, OV
Csere A. Notebookok cseréje az akkumulátor belsejében
Xch egy csapat<байт> Az akkumulátor töltöttségi tartalma megosztása
Csapat xchd A, @ R1 Tetraja Exchange
XRL csapat<байт-назначения>, <байт-источникa> Logikus "kizárva vagy" változó byte

Terv előadások

1. Bemutatkozás

2. Aritmetikai és logikai utasítások

3. Adatátviteli parancsok

4. Boolean Műveletek

5. Fordítási utasítások

1. Bemutatkozás

Csapatrendszer MCS-51. Támogatja az utasítások egy csoportját, amelyet 8 bites végrehajtó eszközkezelési algoritmusok végrehajtására terveztek. Lehetőség van arra, hogy gyors címzési módszereket alkalmazzunk a belső RAM-hoz, a kis adatszerkezeteknél a bit műveletek végrehajtása. Részletes rendszer van az egybites változók kezelésére olyan független adattípusként, amely lehetővé teszi az egyéni bitek használatát a logikai algebra logikai és vezérlési parancsában.

Címezési módok : Parancsok készlete MCS-51. Támogatja a következő címezési módokat. Közvetlen címzés: Az operandot egy 8 bites cím határozza meg az utasításokban. A közvetlen címzést csak az adatok és nyilvántartások belső memóriájának fiatalabb felére használják. SFR.. Közvetett címzés: Az utasítás az operand címet tartalmazó nyilvántartással foglalkozik. Ez a típusú címzés külső és belső RAM-ra használható. A regiszterek 8 bites címek megadására használhatók R0. és R1 Kiválasztott regiszter bank vagy verem mutató Sp.. A 16 bites címzéshez csak az adatmutató-nyilvántartást használják. Dptr.

Regisztráljon utasításokat : Regiszterek R0-R7 Az aktuális nyilvántartási bank a 3 bites mezőt tartalmazó konkrét utasításokon keresztül címezhető, amely jelzi a nyilvántartási számot az utasításokban. Ebben az esetben hiányzik a megfelelő cím mező. Különleges regiszterek használata: Egyes utasítások egyedi regisztereket használnak (például az akkumulátor műveletek, Dptrstb.). Ebben az esetben az operand-cím általában nincs megadva a parancsban. A működési kód előre meghatározott.

Közvetlen konstansok : Az állandó lehet közvetlenül a parancsban, amikor a műveleti kód.

Index címzés : Az index címzése csak a programmemória eléréséhez és csak olvasási módban való eléréséhez használható. Ebben a módban a táblázatokat a program memóriájában látják. 16 bites regiszter ( Dptr Vagy a programszámláló) jelzi a kívánt táblázat alapcímét, és az akkumulátor jelzi a belépési pontot.

Parancsok készlete 42 mnemonikus szimbólummal rendelkezik a rendszer 33 funkciójának meghatározásához. A legtöbb szerelési nyelvi parancs szintaxisa a funkció mnemonikus megnevezéséből áll, majd a címzési módszereket és az adattípusokat jelző operandusokat. A különböző adattípusokat vagy címzési módokat a telepített operandusok határozzák meg, és nem változnak a mnemonikus megnevezésekben.

A parancsrendszer szokásos módon öt csoportra helyezhető: aritmetikai parancsok; logikai parancsok; adatátviteli parancsok; harapás processzorparancsok; Parancsok ág és menedzsment. A parancsrendszerben használt jelölések és szimbólumok az alábbiakban vannak megadva.

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

Kijelölés, szimbólum

Célja

Akkumulátor

A jelenlegi kiválasztott regiszter bank nyilvántartása

A parancsban megadott betöltött nyilvántartás száma

közvetlen.

Közvetlenül címezhető 8 bites belső címe az adatcella, amely lehet a belső adat RAM (0-127) vagy az SFR speciális funkciók regiszterje (128-255)

Közvetlenül címezhető 8 bites sejt a belső adat RAM

8 bites közvetlen Ez, amely a működési kódban (CPA) szerepel

datah.

Senior bitek (15-8) azonnali 16 bites adatok

datals

Younger bitek (7-0) azonnali 16 bites adatok

11 bites célcím

addrl

Junior célcímek

8 bites váltás bájt jelzéssel

Bit közvetlen címzéssel, amelynek címe tartalmazza a zsaru a belső adat RAM-ban vagy az SFR speciális funkciók regiszterjében

a15, A14 ... A0

A célcímek bitek

Az x elem tartalma.

Tartalom az X elemben tárolt címen

Az x elemet x


+

*
És.
Vagy.
Xor.
/ X.

Tevékenységek:
Kiegészítések
Kivon
Szorzás
osztály
Logikai szorzás (művelet és)
Logikai kiegészítés (művelet vagy)
addíciós modulo 2 (kivéve vagy)
Az X elem inverziója.

A funkciók mnemonikus megnevezései egyedileg kapcsolódnak a címzési módszerek és az adattípusok specifikus kombinációihoz. Összesen 111 ilyen kombináció lehetséges a parancsrendszerben.

2. Aritmetikai és logikai utasítások

Mint P. riemer aritmetikai csapatAz adagolási művelet végrehajtható az alábbi parancsok valamelyikével.

Add.A.,7 F. 16 - Add hozzá a regiszterek tartalmához és a 7. számotF 16. és az eredményt a nyilvántartásban tartják;

Add.A.,@ R.0 - Add hozzá a nyilvántartás tartalmához és a számot, amelynek címét (@ – kereskedelmi nÁL NÉL. ) A nyilvántartásban tároltR. 0 (közvetett címzés), és az eredményt a nyilvántartásban tartják fenn;

Add a, r7 - Hozzáadás a nyilvántartás tartalmához és a nyilvántartás tartalmáhozR. 7 és az eredményt a regiszterben tartják fenn;

Add a, # 127 - Adja hozzá a nyilvántartás tartalmához és a számot, amelynek címét, amelynek címét 127 ( # - szám szimbólum), és az eredmény a regis mentésre kerül t.- Re A.

Minden aritmetikai utasítás egy gépciklusban történik, kivéve a parancsot. INC DPTR. (Adatmutató eltolódás Dptr A két gépi ciklust igénylő következő bájt, valamint a 4 gépi ciklushoz végzett szorzási és osztási műveletek. A belső adatmemóriában lévő bármely bájt növelhető és csökkenthető az akkumulátor használata nélkül.

Utasítás Mul ab Az akkumulátorban lévő adatok szorzása (szorzása - szorzás) A B nyilvántartásban szereplő adatokon, egy terméket a (fiatalabb félig) és a b (idősebb fél) nyilvántartásba foglalja.

Utasítás Divál Divízió (Division - Division) Az akkumulátor tartalma a B nyilvántartásba tartozó értékre, amely elhagyja a maradékot, és a privát az akkumulátorban van.

Utasítás Da A. Ajánlott: bináris-decimális aritmetikai műveletekhez (a bináris-decimális kódban bemutatott számok aritmetikai műveletei). Nem alakítja át a bináris számokat bináris-decimálisDe csak a helyes eredményt nyújtja, ha két bináris-decimális számot ad.

Példa logikai csapat: Logikai működés, és az alábbi parancsok valamelyikével hajtható végre:

AnlA.,7 F. 16 - A nyilvántartás tartalmának logikai szorzása és a 7. számF 16. és az eredményt a regiszterben megőrzik;

AnlA.,@ R.1 - a nyilvántartás tartalmának logikai szorzása és a szám, amelynek címe a nyilvántartásban tárolódikR. 1 (közvetett címzés), és az eredményt a nyilvántartásban tartják fenn;

Anl A, R6 - logikai szorzás a nyilvántartás tartalmának tartalmáról a nyilvántartás tartalmárólR. 6, és az eredményt a regiszterben tartják fenn;

ANL A, # 53 - A nyilvántartás tartalmának logikai szorzása és a szám, amelynek címe, amelynek címe, amelynek címe 53 16 és az eredmény a regiszterben marad.

Az akkumulátor tartalmának összes logikai művelete egy gépciklusban, a többi - két. A logikai műveletek a belső adatmemória alacsonyabb 128 bájtájának bármelyikét vagy bármely regiszter felett lehetnek. SFR. (Speciális funkciók regisztrálása) közvetlen címzési módban akkumulátor használata nélkül.

A Cyclic Shift RL A, RLC A, stb. Működése az akkumulátor tartalmát egy kicsit jobbra vagy balra mozgassa. A bal oldali ciklusos eltolás esetén a fiatalabb bit a régebbi helyzetbe lép. A jobb ciklusos eltolás esetén az ellenkezője bekövetkezik.

Művelet Csere A. Gyakorolja a fiatalabb és a Senior Tetrad cseréjét az akkumulátorban.

3. Adatátviteli parancsok

Csapat Mov dest, src Lehetővé teszi, hogy adatokat küldjön a belső RAM sejtjei vagy a speciális funkciók nyilvántartási területe között SFR. Akkumulátor használata nélkül. Ugyanakkor a belső RAM felső felével való munkavégzés csak a közvetett címzés módjában végezhető el, és a nyilvántartásba vétel iránti fellebbezést SFR. - Csak közvetlen címzési módban.

Minden mikrokirkóban MCS-51. A köteg közvetlenül az adatszolgáltatásban található, és felfelé növekszik. Utasítás Nyom. Kezdetben növeli az értéket a verem mutató nyilvántartásában Sp.majd írja az adatbájt veremre. Csapatok Nyom. és Pop Csak közvetlen címzési módban (rögzítési vagy helyreállítási bájtok) használják, de a köteg mindig elérhető a nyilvántartás közvetett címével Sp.. Így a verem az adatok felső 128 adatbájtját is használhatja. Ezek a megfontolások kiküszöbölik a Stall parancsok használatának lehetőségét a regiszterek címre SFR..

Az adatmutatások közé tartozik egy 16 bites szállítási művelet. MOV DPTR, # DATA16az adatmutató regiszter inicializálása Dptr Ha a szoftvermemóriában vagy a külső adatmemóriához való hozzáférés táblázatokat néz.

Művelet Xch A, byte Az adatok cseréjére szolgál az akkumulátor és a címezhető bájt között. Csapat Xchd a, @ ri Az előzőhöz hasonló, de csak az operandus cseréjében szereplő Junior Tetrad esetében történik.

A külső adatmemória eléréséhez csak közvetett címeket használnak. Egybájtos címek esetén a regisztereket használják R0. vagy R1 Jelenlegi regiszter bank, és 16 bites adatmutató regiszter Dptr. A külső adatmemóriához való hozzáféréssel az akkumulátor szerepet játszik a forrás vagy a vevő információi.

A szoftvermemóriában kiküldött táblázatok eléréséhez parancsok használatát használják:

MOVC A, @ A + Dptr ;

MOVC A, @ A + PC. .

Mivel a táblázat alapcíme az adatmutató nyilvántartásának tartalmát használja Dptr vagy PC. (Programmérő), és az eltolás történik A.. Ezeket a parancsokat kizárólag a program memóriájából származó adatok olvasására használják, de nem írják rá.

4. Boolean Műveletek

Mikrokrokiák MCS-51. Tartalmazza a "Boolean" processzor összetételét. A belső RAM 128 közvetlenül címzett bitekkel rendelkezik. Tér regiszter nyilvántartása SFR. 128 harapási mezőt is támogat. A bit utasítások feltételes átmeneteket, szállítmányokat, visszaállítást, inverziókat, műveleteket "és" vagy "vagy". Minden megadott bit közvetlen címzési módban érhető el.

Átviteli bit Vö. A speciális funkciók nyilvántartásában a program szóállapotát PSW."A logikai processzor egyetlen akkumulátora.

5. Fordítási utasítások

Az átmeneti műveletek címét az összeszerelő nyelven jelölik, címkével vagy valós értékkel a program memóriájában. A feltételes átmeneti címeket egy relatív elmozdulásba kell állítani - a programmérőhöz hozzáadott jelbájt PC. Az átmeneti állapot esetén. Az ilyen átmenetek határai az utasításokat követő első bájthoz képest az első bájthoz képest a A speciális funkciók nyilvántartásában a program szóállapotát PSW.»Nincs nulla zászló, így utasítások JZ. és Jnz. Ellenőrizze az "nulla állapot" állapotát az akkumulátorban lévő adatok tesztelésével.

A feltétel nélküli átmenet három fajtája van: Sjmp., Ljmp és AJMP - Megkülönböztetett célcím formátum. Utasítás Sjmp. Kódolja a címet relatív elmozdulásként, és két bájtot vesz igénybe. Az átmenet tartományát a mínusz 128 és 127 bájt közötti tartomány korlátozza az alábbi utasításhoz képest Sjmp..

Az utasításokban Ljmp Használja a célcímet 16 bites konstans formájában. A parancs hossza három bájt. A célcím bárhol a program memóriájában található.

Csapat AJMP 11 bites címállást használ. A parancs két bájtból áll. Ha ez a kézi lefut, a fiatalabb 11 bit a címet számláló helyébe egy 11 bites címet a parancsot. Öt vezető program számláló bit PC. változatlanok maradnak. Így az átmenet a 2K-bájt blokk belsejében történhet, amelyben az utasítás a parancs után található AJMP.

A szubrutin kétféle parancsfájlja van: Lcall és Hívás. Utasítás Lcall Az úgynevezett szubrutin 16-bites címét használja. Ebben az esetben a szubrutin bárhol elhelyezhető a programok memóriájában. Utasítás Hívás A szubrutin 11 bites címét használja. Ebben az esetben az úgynevezett alprogramnak egy 2k-bájt blokkban kell lennie az alábbi utasításokkal Hívás. A parancs mindkét változata a következő parancscímet és letöltést fekteti be a szoftver számlálóra. PC. megfelelő új jelentés.

Az alprogramot az utasítás végzi Ret.Lehetővé teszi, hogy visszatérjen az utasítás következő parancsához Hívás. Ez az utasítás eltávolítja a visszatérési címet a veremből, és betölti azt a programszámlálóba. PC. . Utasítás Reti. A megszakítási feldolgozó 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ás feldolgozása befejeződött. Ha a végrehajtás idején Reti. Nincs más megszakítás, akkor azonos Ret..

Utasítás DJNZ. Célja a ciklusok kezelésére. Ciklusok végrehajtásához N. Miután szükséges a BYTE számlálóban letölteni az értékkel N. és zárja be a testciklus csapatot DJNZ.a ciklus kezdetére mutat.

Csapat Cjne. Összehasonlítja a két operandust, mint aláírás nélküli egész számát, és átmeneti az abban meghatározott címre, ha a komponálható operandusok nem egyenlőek. Ha az első operand kisebb, mint a második, akkor az átviteli bit Vö. "1" -ben telepítve.

Minden parancs az összeszerelt formában foglal el 1, 2 vagy 3 bájtot.

Építészeti mikrokontrollerek

A mikrokontroller architektúra megértése kulcsfontosságú az összeszerelő típusú programozási nyelvek megtanulásakor. Összeszerelő szerkezet, parancsok formátuma, operandusok kezelése stb. Teljesen meghatározva az építészet. Az architektúra tanulmányozása:

· A programozási nyilvántartásokra, funkcionális célokra és struktúrára rendelkezésre álló készletek kimutatása;

· A RAM szervezetének megértése és az alkalmazásának eljárása;

· Ismerettel az adattípusokkal;

· A gépparancsok formátumának tanulmányozása;

· Megbízás a megszakítások feldolgozásának megszervezése.

Az MCS-51 család építészetét nagyrészt előre meghatározott, kompakt és olcsó digitális eszközök célja. Minden MK funkció egyetlen chip segítségével valósul meg. Az MCS-51 család számos mikrocirkendőt tartalmaz a legegyszerűbb mikrokontrollerekből, hogy meglehetősen bonyolult. Az MCS-51 családi mikrokontrollerek lehetővé teszik a különböző eszközök ellenőrzési feladatait és az egyes analóg áramköri csomópontok végrehajtását. A család összes zsetonja ugyanazzal a parancsrendszerrel működik, legtöbbjük ugyanabban a házakban történik, amelyek az egybeeső alagsorban vannak (az ügy termináljának száma). Ez lehetővé teszi, hogy a különböző gyártók (ilyen asintel, dallas, atmel, philips stb.) A készülék és a program fogalmának megváltoztatása nélkül használható.

Az MCS-51-et a Harvard Architecture gyártja, ahol a memória és az adatok címterei elkülönülnek.

A szabályozó blokkdiagramja a 2.3. Ábrán látható, és a következő fő funkcionális csomópontokból áll: vezérlőegység, aritmetikai logikai eszköz, időzítő / számláló blokk, soros interfész és megszakítások, szoftvermérő (parancsmérő) Memória és programmemória.

A kétoldalú cserét belső 8 bites adatvonal segítségével végzik. Fontolja meg az egyes blokkok hozzárendelését. Az ilyen rendszer szerint az MCS-51 család szinte minden képviselője épül. A család különböző chipjei csak speciális célú nyilvántartásokban különböznek (beleértve a portok számát is). Az MCS-51 család összes vezérlőjének parancsnoki rendszere 111 alapvető parancsot tartalmaz egy 1, 2 vagy 3 bájt formátumú, és nem változik az átmenet során az egyik chipről a másikra. A programok kiváló hordozhatósága egy chipről a másikra.

Vezérlő és szinkronizálási egység (Timing and Control) van kialakítva, hogy a szinkronizációs és vezérlőjelek, amelyek biztosítják a koordinációt a közös munka a OEEHM blokkok minden megengedett módok működését. A vezérlőegység tartalmazza:


  • ideiglenes intervallum képződési eszköz,
  • i / O kombinációs áramkör
  • csapatjegyzék,
  • decifranger csapatok.

Bejárat és hétvége a vezérlő és a szinkronizálási blokk jelzései:

1 Psenes. - szoftvermemória felbontása;

2 Ale. - a cím rögzítése engedélyének kimeneti jele;

3 Prog - Programozási jel;

4 Ea. - Belső memóriával való blokkolása;

5 VPP. - Programozási feszültség;

6 Rst - Közös visszaállítási jel.

Az időintervallum generációs készülék szinkronizálni kell a sorrend az államok a CPU alkotó gépi ciklus, valamint a helyes működését, amelyek a belső érzékelők és kimeneti pufferek kikötők. A gép ciklus hat szekvenciák (Államok) az S1-S6, amelyek mindegyike, viszont van két szakaszra oszlik:

az 1. fázis (1. fázis - P1) és 2. fázis (2. fázis - P2). Így a gépciklus az S1P1, S1P2, S2P1, ..., S6P2 időintervallumok sorozataként definiálható. A fázis időtartama megegyezik az óraimpulzus időtartamával, így a gépi ciklus 12 órás időszakot vesz igénybe.

A gépi ciklusok száma meghatározza a parancsok végrehajtásának idejét. Szinte minden parancsot egy vagy két gépi ciklusra végeznek, kivéve a szorzást és a divíziós parancsokat, amelynek időtartama négy motor ciklus. Az I / O logika olyan jelek fogadására és kiadására szolgál, amelyek a külső eszközökkel történő információcserét a P0-P3 kimenet kimeneti portjain keresztül biztosítják.

A csapatok nyilvántartása A 8-bites kód végrehajtható kód rögzítésére és tárolására tervezték. A működési kódot a parancs dekódoló és a számítógép vezérlési logikájával a parancs végrehajtásának mikroprogramjává alakítják át.

2.3. Ábra. Intel 8051 mikrokontroller szerkezeti diagramja

(MCS-51 család)

Aritmetikai logikai eszköz (ALU) egy párhuzamos nyolc bites eszköz, amely biztosítja az aritmetikai és logikai műveletek végrehajtását. Az Alu a következőkből áll:

  • ideiglenes tárolási nyilvántartások -tmp1 és tmp2,
  • Rom állandó,
  • vipera
  • kiegészítő nyilvántartás - Regisztráljon,
  • akkumulátor - ACC,
  • regisztrációs állapotregiszter (zászlóregiszter) - PSW.

Ideiglenes tárolási nyilvántartások TMP1, TMP2 - nyolc bites nyilvántartások, amelyek a műveletek idején az operáció idején az operálások fogadására és tárolására szolgálnak. Ezek a nyilvántartások nem programozott hozzáférhetőek.

Állandó Javító kódot biztosít a bináris-decimális adatnézet létrehozásához, a bites műveletek maszkkódja és állandó kód.

Párhuzamos nyolc bites adder Ez egy rendszer kombinációjának típusú szekvenciális átviteli szánt aritmetikai műveletek: összeadás, kivonás és logikai műveletek összeadás, szorzás, unequivocalities és identitás.

Regisztráljon B. - A nyolc bites regiszter során szorzás és osztás műveleteket. További utasítások esetén további ultraoperatív nyilvántartásként tekinthető meg.

Akkumulátor- Nyolc-bites regiszter kialakítva, hogy fogadni és tárolására az eredmény érhető el, ha az aritmetikai és logikai műveletek vagy shift működése.

PSW programállapot-regiszter (program állapota)az elvégzett parancsok állapotának tárolására. Az ALU-ban számos csapatot végeznek, számos funkciót (zászlókat) alakítanak ki, amelyeket a programállapot-nyilvántartásban (PSW) rögzítenek. A lapon. Az 1. ábra a PSW-zászlók listáját mutatja, szimbolikus nevüket adják meg, és a képződés feltételeit ismertetjük.

Megszakítási és soros interfészblokk - UART (Univerzális aszinkron vevő / adó) Úgy tervezték, hogy szervezzen input - a következetes információáramlások visszavonását és a program megszakítási rendszerének megszervezését.

Definíció szerint a megszakítás a számítástechnika főbb folyamatának ideiglenes megszüntetését jelenti, hogy a berendezések vagy programok munkája által okozott tervezett vagy nem tervezett műveleteket végezzen.

Ezek a műveletek szolgáltatási karaktert viselhetnek, kérjük a felhasználói programot, hogy elvégezze a szolgáltatást, vagy reagáljon az abnormális helyzetekre.



Tetszett a cikket? Oszd meg