Kontakty

MCS 51 Si programovanie. MCS-51 mikrokontroléry. Štrukturálna schéma, ALU, Dátová pamäť. Registre špeciálnych funkcií

Architektúra rodiny MCS-51 je do značnej miery vopred určená svojím vymenovaním hmoty a lacný Digitálne zariadenia. Všetky microevm funkcie sú implementované pomocou jedného čipu. Rodina MCS-51 obsahuje množstvo mikroobvodov z najjednoduchších mikrokontrolérov až po celkom komplikované. MCS-51 Rodinné mikrokontroléry vám umožňujú vykonávať riadiace úlohy rôznych zariadení a implementovať jednotlivé analógové uzly. Všetky čipy tejto rodinnej práce s tým istým príkazový systém MCS-51 , väčšina z nich sa vykonáva v tom istom zborov zhoda COCOOLVKA (Číslovanie nôh pre prípad). To vám umožní používať pre vyvinuté zariadenia mikroobvody z rôznych firiem - Maxim, ATMEL, NXP atď. (Katalóg ..php? Stránky \u003d komponenty_list & id \u003d 39 "\u003e S.M. Vyhľadávanie podľa parametrov) bez prepracovania koncepcie zariadenia a programu.

Obrázok 1. Konštrukčný diagram regulátora I8751

Bloková schéma regulátora je prezentovaná na obrázku 1. a pozostáva z nasledujúcich základných funkčných uzlov: riadiaca jednotka, aritmetické logické zariadenie, blok časovača / počítadiel, blok sériového rozhrania a programového merača, dátovej pamäte a Programová pamäť. Bilaterálna výmena sa vykonáva pomocou interného 8-bitového dátového riadku.

Zvážte čítanie viac priradenia každého bloku. Podľa takejto schémy sú postavené takmer všetci zástupcovia rodiny MCS-51. Rôzne čipy tejto rodiny sa líšia len na registroch špeciálnych účelov (vrátane počtu portov). Systém príkazov všetkých Rodinných radov MCS-51 Obsahuje 111 základných príkazov s formátom 1, 2 alebo 3 bajtov a nemení sa pri pohybe z jedného čipu do druhého. Poskytuje vynikajúcu prenosnosť programov z jedného čipu do druhého.

Kontrolná a synchronizačná jednotka

Kontrolná a synchronizačná jednotka (načasovanie a ovládanie) je navrhnuté tak, aby generovali synchronizačné a riadiace signály, ktoré zabezpečujú koordináciu spoločnej prevádzky OEEHM blokov vo všetkých prípustných režimoch jeho prevádzky. V zložení riadiacej jednotky obsahuje:

  • - zariadenie na vytváranie časových intervalov, \\ t
  • - I / O Logika,
  • - príkazový register,
  • - Register spotreby elektriny
  • - Tímový dekodér, logika manažmentu počítača.

Zariadenie Team Interval Je určený na vytvorenie a vydávanie interných synchronizačných signálov fáz, hodín a cyklov. Počet strojových cyklov určuje čas vykonania príkazov. Takmer všetky príkazy OEEHM sa vykonávajú pre jeden alebo dva stroje cykly, okrem príkazov multiplikácie a rozdelenia, ktorých trvanie je štyri cykly motora. Označte frekvenciu špecifikovaného generátora cez F G. Potom trvanie stroja cyklus je 12 / f G alebo je 12 periód signálu špecifikovaného generátora. I / O Logika je určená na prijímanie a vydávanie signálov, ktoré poskytujú výmenu informácií s externými zariadeniami prostredníctvom výstupných portov výstupu P0-P3.

Register tímov Navrhnuté na nahrávanie a ukladanie 8-bitového kódu spustiteľného kódu. Operačný kód, pomocou príkazového dekodéra a logiky ovládania počítača, sa prevedie na mikroprogram vykonania príkazu.

Register kontrolného spotreby (PCON) Umožňuje zastaviť prevádzku mikrokontroléra, aby ste znížili spotrebu elektriny a znížili úroveň interferencie z mikrokontroléra. Ešte väčšie zníženie spotreby elektrickej energie a zníženie rušenia možno dosiahnuť zastavením master generátora mikrokontroléra. To možno dosiahnuť prepnutím systému riadenia spotreby pcon. Pre možnosť výroby pomocou N-MOP (série 1816 alebo cudzích mikrobustí, v názve, ktorého v strede nie je žiadne písmeno "C") Riadiaci register spotreby pcon obsahuje len jeden bit, ktorý riadi rýchlosť prenosu sériového portu SMOD a Neexistujú žiadne bity riadenia spotreby elektriny.

Aritmetické logické zariadenie (ALU) Je to paralelné osem-bitové zariadenie, ktoré zabezpečuje vykonanie aritmetických a logických operácií. ALU pozostáva z:

  • - registre batérie, TMP1 a TMP2 časové úložné registre,
  • - rom konštanta,
  • - adder,
  • - dodatočný register (register c), \\ t
  • - batéria (ACC),
  • - Štátny register programu (PSW).

Registrovať batéria a registre dočasných úložísk - osem-bitové registre určené na prijímanie a ukladanie operandov v čase operácií na nich. Tieto registre nie sú programovo prístupné.

Konštantný Poskytuje nápravný kód na generovanie binárneho desatinného zobrazenia dát, kód masky pre bitové operácie a konštantný kód.

Paralelný osem-bitový adder Je to kombinovaný okruh so sekvenčným prenosom, určený na vykonávanie aritmetických operácií pridávania, odčítania a logických operácií pridávania, násobenia, nerovnosti a identity.

Zaregistrujte sa B. - osembitový register používaný pri operáciách množenia a rozdelenia. Ďalšie pokyny je možné zobraziť ako dodatočný ultraoperačný register.

Batéria - osem-bitový register určený na prijímanie a ukladanie výsledku získaného pri vykonávaní aritmetických a logických operácií alebo operácií shift

Po sebe idúci blok rozhrania a prerušuje (PIP) Navrhnuté na organizovanie I / O, sekvenčných informačných tokov a systémov prerušenia organizácie. Blok obsahuje:

  1. - PIP Buffer,
  2. - logika riadenia,
  3. - riadiaci register,
  4. - vyrovnávacia pamäť vysielača, \\ t
  5. - nárazník prijímača,
  6. - vysielač sériového prístavu, \\ t
  7. - register priority prerušenia,
  8. - register rozlíšenia prerušenia, \\ t
  9. - Interrupt Flag Spracovanie logiky a systému generácie vektorov.

Command Counter (programový pult) Navrhnuté tak, aby vytvorili aktuálnu 16-bitovú adresu vnútornej pamäte programov a 8/16-bitovú adresu externej pamäte programov. Tímový meter obsahuje 16-bitový PC pufr, PC Register a prírastok (Zvýšenie obsahu o 1).

Dátová pamäť (RAM) Navrhnuté na dočasné uskladnenie informácií používaných v procese realizácie programu.

Porty P0, P1, P2, P3 Sú to kvázi-dokumentárne vstupné prístavy a sú určené na zabezpečenie výmeny informácií OES s externými zariadeniami, ktoré tvoria 32 vstupných liniek.

Časovač V základných modeloch rodiny sú dva programovateľné 16-bitové časovače / počítadlo (t / c0 a t / c1), ktoré môžu byť použité ako časovače a ako externé udalosti počítadlá

Štátny register programu (PSW) Navrhnuté na ukladanie informácií o stave ALU pri realizácii programu.

Softvérová pamäť (EPROM) Je určený na ukladanie programov a je konštantným úložným zariadením (ROM). V rôznych mikroobvodoch aplikujú masku ROM, premyje sa ultrafialovým žiarením alebo Blesk. ROM.

Register dátového ukazovateľa (DPTR) Navrhnuté na uloženie 16-bitovej adresy externej dátovej pamäte alebo programovej pamäte.

Ukazovateľ zásobníka (SP) Je to osem-bitový register určený na usporiadanie špeciálnej dátovej pamäte (zásobníka), v ktorom môžete dočasne uložiť akúkoľvek kontrolu pamäte.



Mikrokontroléry Rodiny MSS-51 sú postavené na architektúre Harvard, v ktorej pamäť programov a pamäte týchto sekcií majú svoje vlastné cielené medzery a spôsoby prístupu k nim.

Pamäťový program


Maximálne množstvo pamäte je 64k bajt, z ktorých 4K, 8K, 16K alebo 32K pamäťového bajtu (tabuľka 7.3.1) sa nachádza na krištáľu, zostávajúci objem je mimo kryštálu.
Pri napätí na produkte EA \u003d V cc. používa sa interná aj externá pamäť, pri EA \u003d V CC \u003d 0 - len externý Pa-MIG.
Tabuľka 7.3.1 adresuje prístup k programompre špecifikované prípady.
Spodná oblasť pamäte programov sa vráti na spustenie motora MicroCont-Roll (štartovacia adresa 0000H po vypustení) a pri spracovaní prerušení (kontrolka prerušenia je umiestnená s 8 bajtom intervalu: 0003H, 000BH, 0013H, atď.).


Iba pamäťové programy a pri manipulácii:

● K. externá pamäťprogramy sú generované ¯ a vždy tvoria 16-bitovú adresu.
Mladší bajt adries sa prenáša cez port P0 v prvej polovici stroja cyklus a je upevnená plátkom ALE GATE v registri.
V druhej polovici cyklu sa port P0 používa na zadanie údajov z externej pamäte v MK Byte.
Senior bajt adresy sa prenáša cez prístav P2 po celú dobu príťažlivosti pamäte (obr. 7.1.11);

● K. vnútorná pamäťČítať signál nie je vytvorený a používajú sa cykly výmeny vo vnútornej pneumatike mikrokontroléru.

Dátová pamäť

Vnútorná pamäťÚdaje môžu byť rozdelené do troch blokov (tabuľka 7.3.2).

Vnútorná pamäť sa vždy rieši bajtom, ktorý poskytuje adresy len 256 pamäťových buniek.
Preto, ako je možné zrejmé z tabuľky 7.3.2, pre adresy do horných 8-bitových buniek vnútorných RAM a registrov špeciálnych funkcií SFR, ktoré zaberá rovnaký adresný priestor, v tímoch sa používajú rôzne spôsoby riešenia: nepriamo a rovno.

Funkcie organizácie dolného regiónu vnútorného RAModráža v tabuľke. 7.3.3.

Mladší 32 bajtov vnútornej RAM s adresy 00h.
1fh je zoskupený do podvádzania banky pre osem registrov (R0.R7).
Nasledujúce 16 bajtov RAM s adresy 20h.
2FH je 8 × 16 \u003d 128 bitová pamäťová oblasť, ktorá umožňuje každému oddelenému bitovi na odvolanie.
Ak chcete vybrať adresu registra banky, používa sa jeho názov R0.
R7, výber banky - bity RS0, RS1 PSW Status Status Status Register.

Adresy bity

Adresy bityv tabuľke. 7.3.3.

Riešenie sa vykonáva priamyspôsobom.

Zoznam všetkých špeciálnych funkcií SFR zaregistrujte ich adresy v tabuľke 7.2.2.
Pre jasnosť v tabuľke 7.3.

4 re-Histrow Address MapaSFR.mikropruhy rodiny MCS-51.
Adresa SFR je určená množstvom počtu stĺpcov a riadkov v hexadecimálnom číselnom systéme.

Register CMOD má napríklad adresu D9H.

Pre registre SFR sa adresy, ktoré skončia 0H alebo 8H (sú zvýraznené tučným písmom), baitovapovolený porazenýadresovanie.

Zároveň je názov bitového obsadenia v registri n-th vybitie definovaný ako XXH + 0NH, kde XXH je adresa registra SFR, n \u003d 0,7.
Bitové adresy v tomto regióne majú hodnoty od 80h do FFH.
Napríklad adresy batérie bity zadok le -tate v rámci E0H-E7H.

Externá pamäťÚdaje (až 64 kB) je vytvorené dodatočnými pamäťovými čipmi pripojenými k MK.
Špeciálne príkazy sa používajú na prácu s externou dátovou pamäťou, preto adresované medzery externej a vnútornej pamäte nepretiahnutím, a preto môžu byť súčasne používané obidva typy pamäte Mone.

Prístup k bunkám externou dátovou pamäťou (obr. 7.1.8):
● príkazy s nepriamym adresovaním;
● Prečítajte si signály ¯RD a nahrávajte ¯WR;
● P0 port pre prenos mladšej bajtovej adresy a prijímania / prenosu dátových bajtov;
● P2 port na odoslanie staršieho bajtu adries.
Metódy adresovania.
Príkazový systém používa:
● Priamy, nepriamy, register, nepriamo zaregistrovať, priame a indexové adresovanie (nepriame adresovanie v množstve základných a indexových registrov) zdrojové operandy;
● DIRECT, Registrácia a nepriamo zaregistrovať adresovanie operands.
Kombinácia týchto metód (adresa) poskytuje 21 režimu adresovania.
V tomto a v tabuľkách nižšie sa používajú tieto symboly:

Priame adresovanie.

V tomto prípade metódy adresovania je umiestnenie bajtového alebo dátového bitov určená 8-bitovou adresou druhého (a tretí) BAJA.
Priame adresovanie sa používa len na prístup k internej dátovej pamäti (nižšie 128 bajtov RAM) a špeciálnych funkcií.

Zaregistrujte sa adresovanie.


Táto metóda adresovania poskytuje prístup k údajom, ktoré sú uložené v jednej z ôsmich registrov R0.
R7 aktuálna banka pracovných registrov.
Môže sa použiť aj na odvolanie na registráciu A, B, AB (Dual Register), registráciu-ukazovateľ DPTR a Transfer Flag.
Adresa zadaných registrov je položená do operačného kódu, ktorý znižuje počet príkazových bajtov.

Nepriamo registrovať adresovanie.


V tomto prípade sa adresa údajov uchováva v indexovom registri, ktorej umiestnenie je určená operačným kódom.
Táto metóda adresovania sa používa na odvolanie na externú RAM a hornú polovicu vnútorného RAM.
Registre 8-bitové reklamné referencie môžu slúžiť ako registre R0, R1 vybranej banky pracovných registrov alebo ukazovateľ zásobníka SR, pre 16-bitové riešenie, používa sa len register DPTR dát.

Priame adresovanie.


S touto metódou adresovania sú údaje priamo uvedené v príkaze a sú v druhom (alebo v druhom a treťom) príkazových bajtoch, t.j.
Nevyžaduje sa adresovanie pamäte.
Napríklad spoločnosťou CO-MANDA MOV A, # 50 v batérii A je načítaný číslo 50.

Adresovanie indexu.


Táto metóda je nepriamo režimové riešenie, v ktorom je adresa Byte data definovaná ako súčet obsahu základného (DPTR alebo PC) a indexu (y) registrov.
Metóda používajte len pre prístup k programovej pamäti a len v režime čítania;zjednodušuje zobrazenie tabuliek šité v pamäti.

Štruktúra tímov.

Dĺžka príkazu je jedna (49 príkazov), dva (45 KO-mand) alebo tri (17 príkazov) bajt.
Prvý bajt príkazu vždy obsahuje operačný kód (KO), druhý a tretí bytes - adresy operandov alebo priame hodnoty údajov.

Samostatné bity, tetrads, bajty a dvojbajtové slová môžu byť použité ako operandy.
Môžete vybrať 13 typov príkazov, ktoré sú uvedené v tabuľke. 7.3.5:

● A, PC, SP, DPTR, RN (n \u003d 0, 7) - batéria, meter príkazov, ukazovateľ zásobníka, register dátových ukazovateľov a súčasný bankový register;
● RM (M \u003d 0, 1) - register súčasnej banky používanej nepriamym adrelom;
● Direct - 8-bitová adresa priamo oslovila operandu;
● bitová adresa priamo oslovená bit;
● rel - relatívna adresa prechodu;
● addr11, addr16 - 11- a 16-bitový absolútny prechodový adresu;
● # DATA8, # DATA16 - DIRECTAČNÉ ÚDAJE (OPRÁNY) 8- A 16-bitovej dĺžky;
● A10, A9, A0 - oddelené vypúšťanie 11-bitovej adresy;
● (.) - Obsah pamäťovej bunky na adrese uvedenej v zátvorkách;
● SAT, MB - Senior a mladšie bajty 16-bitového operandu.

Všeobecný informačný systém.

Príkazový systém poskytuje veľké možnosti spracovania údajov vo forme bitov, tetrarad, bajtov, dvojbajtových slov a tiež kontrolu v reálnom čase.
Ak chcete opísať príkazy, používa sa jazyk ASM51 macroassampler. Syntax väčšiny príkazov sa skladá z menemonického označenia (skratka) vykonávanej operácie, po ktorej nasledovali operandy.
Pomocou operandov sú uvedené rôzne spôsoby adresovania a typov údajov.

Najmä abbrevi-atura MOV má 18 rôznych príkazov určených na spracovanie troch typov údajov (bity, bajty, adresy) v rôznych adresných medzier.
Sada príkazov má 42 mnemonic notácie 111 typov typov príkazov na obstarávanie 33 funkcií MK.

Od 111 príkazov 64 sa vykonávajú v jednom strojovom cykle, 45 - pre dva cykly a iba dva príkazy (Mul - Multiplication a Div - divízia) Ste splnený v 4 cykloch. Na frekvencii hodín generátora 12 MHz je trvanie stroja cyklus (12 hodín) 1 μs. Za funkčné znameniepríkazy môžu byť rozdelené do piatich skupín. Nižšie je popis príkazov každej skupiny reprezentovanej vo forme tabuliek. Pre kompaktnosť tabuliek vyberte skupinu tímovej skupiny (tabuľka 7.3.6), ktorej vykonanie vplyvy(označené +) o stave vlajokregister stavu PSW.

Príkazy prenosu dát

Odosielanie príkazov možno rozdeliť do jednotlivých podskupín.
Prepravné príkazy a výmena dát medzi bunkami v pamäťových bunkách (Tabuľka 7.3.7).

Príkazy 1-16, majú Mnemonics MOV Dest, SRC, sú určené nákladbajt alebo dve bajty (príkaz 16) údajov zo zdroja SRC do nástroja prijímača, zatiaľ čo:
● Uveďte zdroj(SRC) Štyri metódy adresovania sa používajú: Regist-RY (príkazy 2-4, 6, 8), priame (príkazy 1, 7, 9, 11), nepriame (príkazy 5, 10) a priame (príkazy 12-16) ; \\ T
● Uveďte prijímač(Dest) používajú sa tri metódy: Registrácia (tímy 1, 3 ... 5, 9, 12, 14, 16), rovné (tímy 2, 7, 8, 10, 13), nepriame (príkazy 6, 11, 15).

Tímy 17-20 poskytujú výmenainformácie medzi dvoma článkami vnútornej dátovej pamäte (alebo obojstrannou zásielkou).
Pri vykonávaní Ko-Mand CHCN sa uskutočňuje výmena Bajtov a príkaz XCHD je mladší tetrad bajt operands.

Jedným z buniek je vždy batéria A. Ako ďalšia bunka, pri výmene bajtov sa používa jeden z registrov RN aktuálnej banky a tiež priamo alebo nepriamo rieši vnútornú pamäťovú bunku; Pri používaní notebookov - iba nepriamo adresovateľná bunka vnútornej pamäte.

Vzhľadom k tomu, že vo všetkých MK zásobníku je umiestnený vo vnútornej RAM, v tej istej podskupine tím(20, 21) apeluje na zásobníkPush SRC, pop.
Tieto príkazy používajú iba priamy spôsob riešenia, záznam bajtov na stohu alebo ho vystužením zo zásobníka.
Treba mať na pamäti, že v tých MK, ktoré v RAM nie sú žiadne horné 128 bajtov, zvýšenie zásobníka mimo 128 bajtov vedie k strate dát.

Príkazy prenosu dát medzi vnútornými a vonkajšími palácami (Tabuľka 7.3.8).

Tieto príkazy používajú iba nepriame adrelačné, zatiaľ čo jednobajba adresa môže byť umiestnená v P0 alebo R1 aktuálnej banky registrov, dvojbajtová adresa v registri indexu DRTR.
S ľubovoľným prístupom k externej pamäti, úloha prijímača alebo zdroja operandov vo vnútornej pamäti prehrá batériu A.

Príkazy prenosu dát z pamäte programu (Tabuľka 7.3.9).

Tieto príkazy sú navrhnuté tak, aby čítali tabuľky zo softvérovej pamäte.

Príkaz MOVC A, @ A + DPTR sa používa na odvolanie na tabuľku s počtom vstupov od 0 do 255.

Počet požadovaného prihlásenia v tabuľke je načítaný do batérie a register DPTR je nainštalovaný na začiatku tabuľky. Charakteristickým znakom iného príkazu je, že ako základný ukazovateľ sa používa pro-gram počítadlo PC meter a prístup k tabuľke je vyrobený z podprogramu. Spočiatku je do batérie vložený počet požadovaných vstupných bodov, potom sa nazýva podprogram s príkazom MOVC A, @ A + PC. Tabuľka môže mať 255 EMP s číslami od 1 do 255, ako 0 sa používa na riešenie príkazu Ret z podprogramu.

Aritmetické spracovanie údajov. Všetky aritmetické príkazy sa vykonávajú za nerieplné celé čísla. Operácie cez dve operandy (Tabuľka 7.3.10). V operáciách spústaPridať dodatky podliehajú prevoduADDC I. odčítanie berúc do úvahy úverSubb:

● Zdroj jedného 8-bitového operandu a výsledného prijímača slúži AK-Cumulátor;
● Zdroj iného operandu je buď jeden z bankových registrov RN (n \u003d 0-7), alebo priamo priamy. alebo nepriamo @rm (m \u003d 0, 1) adresované pamäťovému bunke RAM alebo priame údaje #data.

Operácie násobenieMul I. divíziaDIV sa vykonáva na obsahu regulácie REG A a V. Pri násobení, staršie 8 Výsledky sú zaznamenané v Re-Gystr v najmladších 8 výbojoch - v registri A.
Ak je výrobok väčší ako 255, je nastavená vlajka overflow OV; Vlajka prenosu sa vždy resetuje. Príkaz DIV vykonáva rozdelenie 8-bitovej batérie operandu A na 8-bitovom operande registra V.
Pri rozdeľovaní súkromných (starších výbojov) sa zaznamenáva v re-gystr v A, zvyšok (mladšie výboje) - v B. Vlajky prenosu C a overflows sa resetujú.
Keď sa pokúsite rozdeliť 0, príznak overflow OV je nastavený. Prevádzka divízie sa častejšie používa na zmeny a transformácie čísel.

Pri rozdelení binárneho čísla o 2 n, posúva sa na n bitov doľava.
Extra Bity sa prenášajú do registra V.

Operácie jednotlivých operandov(Tabuľka. 7.3.11).

Príkaz DA sa používa na vykonávanie binárnych-desatinných operácií. Inc príkazy, DEC vám umožní zvýšiť alebo znížiť obsah pamäťovej bunky na jednom.
Uplatňujú sa na obsah batérie a, jeden z pracovných registrov RN alebo pamäťových buniek adresovateľných priamo aj nepriamo.
Zvýšenie prevádzky na jednotku sa vzťahuje aj na obsah 16-bitového registra ukazovateľa DPTR.

Príkazov logických operácií.

Duálne operácie

(Tabuľka 7.3.12).

Príkazy AML, ORL, XRL vám umožní vykonávať tri dvojrozmerné logické operácie cez 8-bitové operandy: anl - logické multiplikácie (a), orl - lo-hyphenácia (alebo), XRL - s výnimkou alebo (xor).
Operácie sa vykonávajú nad jednotlivými bitmi operandov. Zdroj jedného z operandov a súčasne je prijímačom výsledkov buď batéria (A), alebo priamo zaoberajúca pamäťovú bunku (Direct).
Pre zdroj iného operandu sa používa REGI-String, priama, nepriama alebo priama metóda adresovania.

Operácie

(Tabuľka 7.3.13).
Skupina obsahuje niekoľko jednotlivých operácií na obsah batérie A: Čistiace operácie (CLR), logické pridanie alebo inverzia (CPL), cyklické a predĺžené cyklické posuny na 1 bit doprava (RL, RLC) a vľavo (RR , RRC), výmena tetrarad alebo cyklického bajtového posunu o 4 vypúšťanie (swap) a prázdna prevádzka (NOP), v dôsledku čoho je stav všetkých registrov MK (s výnimkou počítadla programu) zostáva nezmenený.

Správa príkazov

Bezpodmienečné prechodné tímy

(Tabuľka 7.3.14).

Príkazy 1-3 sa líšia len na formáte cieľovej adresy.

Spolupráca LJMP (L-LECT) vykonáva "dlhý" bezpodmienečný prechod na zadanú adresu addr16, nahrávanie počítadla počítača s druhým a tretím veliteľským bajtom.
Príkaz poskytuje prechod do akéhokoľvek bodu 64K bajtového adresára.

Co-Manda AJMP (A - Absolútna) poskytuje "absolútny" prechod na adresu vo vnútri 2K bajtovej stránky, ktorej počiatočná adresa je špecifikovaná piatimi staršími vypracovaním programu PC programov (najprv obsah zvýšenia počítača 2).

Príkaz SJMP (S - krátky) vám umožňuje implementovať "krátky" bezpodmienečný prechod na adresu, ktorá je vypočítaná pridaním rel posunutím znakom v druhom paneli príkazov s obsahom počítadla počítadla, predtým zväčšené 2.

Prechodová adresa je v -128 + 127 bajtov v porovnaní s tímom ADRETH.
Ak chcete presunúť do akéhokoľvek iného bodu 64-kilobytového adresára pro-space, môže byť príkaz 4 tiež použitý s adrelom nepriamym @ A + DPTR.
V tomto prípade sa obsah a je interpretovaný ako celok znamenie.

Prázdna prevádzka (NOP), v dôsledku čoho je stav všetkých registrov mikroprocesora (s výnimkou programu merač) zostáva nezmenený.

Podmienené prechodné tímy

(Tabuľka 7.3.15).

Pomocou príkazov JZ a JNZ sa prechod vykonáva, ak je obsah batérie, alebo nie nula.
Prechodová adresa sa vypočíta pridaním relatívneho ikonického posunu rel s obsahom počítadla príkazu PC po pridaní čísla 2 (dĺžka príkazu v bajtoch).

Obsah batérie zostáva nezmenený.
Tímy na vlajkoch nemajú vplyv.

CJNE (3-6) Príkazy sa používajú na implementáciu podmieneného prechodu na základe výsledku porovnania dvoch 8-bitových operandov, ktorých umiestnenie je uvedené v príkaze.
Ak ich hodnoty nie sú rovnaké, vykonáva sa prechod.

Adresa prechodu sa vypočíta pridaním posunu rel s obsahom počítadla počítača, predbežená 3.
V opačnom prípade sa vykoná nasledujúci príkaz.

Graf algoritmu ukazuje účinok hodnôt porovnaných 8-bitových operandov na prenosovej vlajke C.
DJNZ (7, navrhnutý tak, aby organizoval softvérové \u200b\u200bcykly.

Register RN alebo priamo (Direct) adresovateľná bunka je druhý časový cyklus cyklus, rel (v druhom a treťom veliteľskom bajtov) je relatívna adresa prechodu na začiatok cyklu.
Pri vykonávaní príkazov sa obsah metra znižuje na jednotku a skontroluje sa na nulu.
Ak počet obsahu nie je nula, prechod na začiatok cyklu sa vykonáva.
V osobe sa vykonáva ďalší tím.

Adresa prechodu sa vypočíta pridaním posunu s obsahom pultu, predtým sa zvýšil na dĺžku ko-Mandy (o 2 alebo 3).
Príkazy príkazov neovplyvňujú.

Zavolajte príkazy na podprogramov a návratu z programov

(Tabuľka 7.3.16).
Lcall príkazy "Long Call" a ACALL "Absolútny hovor" vykonajte bezpodmienečný hovor podprogramu uverejnenej na zadanej adrese.

Rozdiel medzi týmito príkazmi z vyššie uvedených príkazov bezpodmienečného prechodu je, že si ponechávajú spiatočnú adresu (počítadlo) do hlavného programu.
Príkaz návratu z podprogramu RET obnoví obsah príkazového merača z zásobníka a príkaz Reti okrem týchto povolení úrovne údržby.

Riadiace príkazy sú široko používané relatívnymi adresami, ktoré podporujú pohyblivé softvérové \u200b\u200bmoduly.
Ako relatívna adresa je poskytnutá 8-bitová posunutie REL so znakom, ktorá poskytuje rozvetve z aktuálnej polohy počítadla počítača v oboch smeroch o ± 127 bajtov.

Ak chcete prejsť do akéhokoľvek iného bodu 64k-bajtového priestoru, buď priama adresa addr16 môže byť použitá, alebo nepriama @ A + DPTR adresu.
V druhom prípade sa obsah interpretuje ako celok bez označenia.

Var-mravca pri krátkom priamom adresovaní addr11 vo vnútri 2k-bajtovej aktuálnej stránky WEN-DEN pre kompatibilitu s architektúrou MK48.

Všetky tieto typy adresovania sa môžu aplikovať len na operáciu prechodu, a pre prevádzku hovoru je prípustné iba priame addr16 a interné addr11 metódy adresovania.
Vo všetkých podmienených operáciách je možné použiť iba relatívne adresovanie.

Keď MK51 identifikuje požiadavku na prerušenie, vytvára jeden z príkazov typu LCALL AddR16, ktorý automaticky zaisťuje, že adresa návratnej adresy v zásobníku.
Na rozdiel od MK48 v MK51 však nie je automaticky uložená na stav.

V tomto prípade logika prerušenia prestane pracovať na požiadaniech úrovne, ktorá bola prijatá na údržbu.
Aby sa znížila úroveň prerušenia, príkaz na návrat zo prerušenia ReTI sa podáva, ktorý okrem opery, ekvivalentný ret, obsahuje prevádzku prerušenia tejto úrovne.
Typické podmienečné operácie MK51 tiež zahŕňajú operácie JZ, JNZ.
On-Nao sa objavil novú operáciu "Porovnať a choď" CJNE.

Podľa tohto príkazu sa operand najprv v porovnaní s pravidlami pre odpočítanie celé čísla s konštantnou a v súlade s výsledkom porovnania sa potom zobrazí flag CY. Potom sa uskutočňuje vetvenie. Porovnanie batérie, re-gastro alebo pamäťovej bunky s konzistenciou konštanty, získavame pohodlný spôsob, ako skontrolovať zhody, napríklad s cieľom identifikovať zvláštne príležitosti.

V skutočnosti je príkaz CJNE prvok prevádzkovateľa typu vysokej úrovne.

Ďalší rozvoj získal tím DJNZ.
Teraz môže programátor používať nielen jeden z registre RN RN, ale aj pamäťovú bunku DSEG.

Bitové operácie príkazy.

Skupina sa skladá z 12 príkazov, ktoré vám umožňujú dokončiť operácie na jednej alebo dvoch bitoch (reset, inštalácia, bitová inverzia a logické a alebo alebo) a 5 príkazov určených na implementáciu podmienených prechodov (tabuľka 7.3.17).

Príkazy poskytujú priame adresovanie 128 bitov umiestnených v šiestich-tkalishových bunkách vnútornej RAM s adresy 20h.
2FH (tabuľka 7.3.3) a 128 bitov umiestnených v registroch špeciálnych účelov, ktorých adresy sú viacnásobné osem (zvýraznené v tabuľke 7.3.4 podľa orgánov).

Pri vykonávaní operátora cez dve jednociferné operandy ako logický akumulátor, použije sa register PSW, ktorý sa skladuje na prenosovú vlajku C (tabuľka 7.1.2).

Príkazy MOV (1,2) sa vykonávajú dopravabit z jednej priamo adresovateľnej bitovej bunky vnútorného RAM na spúšť C alebo v opačnom smere.
CRL (3, 4), SETB (5, 6), SETB (5, 6), resp resetovaťna nulu alebo set-vitjednotka prenosovej vlajky c alebo zadaná bit.
Pomocou príkazov CPL, ANL, ORL (7-12) sa vykonávajú logické operácie inverzie, pridávania a násobenia.

Skupina zahŕňa aj tímy (13-17) na implementáciu konvenčných prechodných operácií s relatívnym 8-bitovým posunom REL.
Prechody môžu byť implementované tak s montovaným bitom alebo príznakom prenosu (príkazov 13, 16) a pri vypúšťaní (príkaz 14, 17).

Príkaz JBC navyše k prechodu na výpočtovú adresu pri vykonávaní stavu (bit) \u003d 1, resetujte tento bit do nulového stavu.
Pri vykonávaní príkazov podmienených prechodov sa prechodný prechod vypočíta po pridaní obsahu počítadla číslo 3 alebo 2 (odrážajúci počet bajtov v príkazi).

Príkazový systém OMEIM poskytuje skvelé možnosti spracovania údajov, zaisťuje implementáciu logických, aritmetických operácií, ako aj riadenia v reálnom čase. Je implementovaný porazeným, leteným (4 bitmi), svetlými (8 bitmi) a 16-bitovým spracovaním údajov. BIS Rodina MCS-51 je 8-bitová omeVM: ROM, RAM, Registre na špeciálne účely, ALU a externé pneumatiky majú bajtovú organizáciu. Dávkové dáta používajú len register ukazovateľ (dptr) a meračom príkazu (PC). Treba poznamenať, že dátový register môže byť použitý ako register dvojbajtového dptr alebo ako dva jednorazové registra DPH a DPLS. Počítadlo príkazov sa vždy používa ako dvojbajtový register. Sada príkazov OMEEV má 42 mnemonických symbolov pre špecifikáciu 33 funkcií tohto systému. Syntax väčšiny príkazov montážneho jazyka sa skladá z mnemonického označenia funkcie, ktoré prichádzajú operandmi, čo indikuje metódy adresovania a typy údajov. Rôzne typy údajov alebo režimy adresovania sú určené inštalovanými operandmi, a nie zmeny v memicových označení. Príkazový systém môže konvenčný a môže byť rozdelený do piatich skupín:
  • Aritmetické tímy;
  • Logické príkazy;
  • Príkazy prenosu dát;
  • Príkazy za škodu;
  • Príkazy pobočky a manažmentu.
Existujú tieto typy oslovujúcich zdroje operandu:
  • Zaregistrujte sa adresovanie
  • Priame adresovanie
  • Nepriamo registrovať adresovanie
  • Priame adresovanie
  • Riešenie nepriameho registra o množstve základných a indexových registrov
Aritmetické tímy v príkazovom súbore sú nasledujúce aritmetické operácie: pridanie, pridanie, pričom zohľadní príznak prenosu, odčítanie úverom, prírastkom, znížením, porovnaním, desatinným korekciou, násobkom a rozdelením. Vo Allu sa činnosti vykonávajú na celom čísle bez znamenia. V dvojtýždňových operáciách: pridanie (pridajte), pridanie s prenosom (addc) a odčítaním úverovým (subbou) batériou je prvý operand a má výsledok operácie. Druhým operandom môže byť pracovným registrom vybranej banky pracovných registrátorov, zaregistrovať vnútornú pamäť s nepriamo registráciou a priamym riešením alebo bajtom priamych údajov. Tieto operácie ovplyvňujú vlajky: podpriečinovanie, prenos, medziproduktový prenos a príznak parity v stave procesorového procesora (PSW). Pomocou prenosového výtoku umožňuje viackrát, aby sa zlepšila presnosť navyše (addc) a odčítanie (Subb). Vykonávanie prídavných a odčítaných operácií so znakom sa môže uskutočniť pomocou ovládania softvéru OVW Overflow Flag Software (OV). Medziľahlý prenosový príznak (AC) zabezpečuje vykonanie aritmetických operácií v binárnom desatinnom kóde. Operácie prírastku a znižovania vlajok neovplyvňujú. Porovnávacie operácie neovplyvňujú opracovanie menovania, ani na zdrojovej operanme, ale ovplyvňujú príznaky prevodu. Existujú tri aritmetické operácie, ktoré sa vykonávajú len na batérii: dva príkazy na kontrolu obsahu batérie (JZ, JNZ) a desatinného korekčného tímu, keď sú binárne-desatinné kódy pridané. S multiplikačnou prevádzkou, obsah batérie a vynásobený na obsahu registra a výsledok sa nachádza nasledovne: mladší bajt v registri B, senior - v registri A. V prípade operácie rozdelenia, Celá divízia je umiestnená v batérii A, zostatok divízie - v registri V. Logické príkazy s bajtovými premennými, príkazový systém umožňuje implementovať logické operácie: "A", "alebo", "okrem registra batérie A) a pate-zdroj. Druhý operand (Byte-Source) môže byť pracovný register vo vybranej banke pracovných registrov; Register vnútorného RAM, ktorý je určený na pomoc nepriamo registráciu adresovania; Kabrioletové bunky vnútorných RAM a registrov na špeciálne účely; Priama hodnota. Tieto logické operácie môžu byť implementované v akomkoľvek priamom registri vnútorného RAM alebo registra špeciálneho účelu pomocou obsahu batérie A alebo priamymi údajmi ako druhý operand. Existujú logické operácie, ktoré sa vykonávajú len na batérii: resetovanie a prevrátenie všetkých osem vypúšťaní A; Cyklický posun doľava a VVVO; cyklický posun doľava a doprava, s prihliadnutím na vlajku prevodu; Výmena v Senior a Junior TETRAD (NIBLS) v batériách. Príkazy prenosu dát symbolu (kódy) Šité na program ROM je možné zvoliť pomocou príkazov prenosu dát pomocou nepriameho adresovania. Bajtové konštanty môžu byť prenesené do batérie z pamäťovej bunky programov adresovaných do výšky základného registra (PC alebo DPTR) a indexový register (obsah A). To poskytuje napríklad pohodlné prostriedky na implementáciu algoritmu konverzie ASCII na sedem-segmentný kód. Akákoľvek bunka 256-byte bloku externej dátovej pamäte RAM môže byť vybraná pomocou nepriamo registrovať adresovanie prostredníctvom registrov R0 alebo R1 ukazovateľov (vybraná banka pracovných registrov). Bunka vo vnútri adresného priestoru 64 KB externého RAM môže byť tiež zvolená pomocou nepriamo registrovať adresovanie prostredníctvom registra dátového ukazovateľa DPTR. Prevodové príkazy medzi revolvingovými registrami umožňujú vykonať hodnotu z portu do bunky vnútornej pamäte RAM bez použitia pracovných registrov alebo batérií. V logickom procesore môže byť každý opakovaný bit umiestnený v prenosovom bitovi a naopak. Obsah batérie je možné vymeniť s obsahom pracovných registrov (vybraná banka) a s obsahom vnútorných buniek RAM adresovaných prostredníctvom nepriamo registrovaného adresovania, ako aj obsah priamym riešeným bunkám vnútornej RAM a \\ t s obsahom registrov špeciálnych účelov. Mladší NIBT (vypúšťanie 3-0) obsahu batérie môže byť vymenený s mladším Niblom obsahu buniek vnútornej RAM zvolenej pomocou nepriamo registráciu adresovania. Bitový procesor príkazy Bitový procesor je súčasťou Architektúry MK Rodiny MKS51 a môže byť zobrazený ako nezávislý procesor korálky. Bitový procesor vykonáva sadu príkazov, má svoje binárne adresovateľné RAM a jeho vstupný výstup. Príkazy pracujúce s bitmi poskytujú priame adresovanie 128 bitov (0-127) v šestnástich bunkách vnútorného RAM (bunky s adresami 20H-2FH) a priamo bitové riešenie registrov na špeciálne účely, ktoré sú adresy, ktoré sú viacnásobné osem. Každá zo samostatných oslovených bitov je možné nastaviť na "1", resetovať v "0", obrátenej, overenej. Prechody možno implementovať: ak je bit nainštalovaný; Ak nie je bit nainštalovaný; prechod, ak je bit nainštalovaný, s vypúšťaním tohto bitov; Bit môže byť prepracovaný do (z) vypúšťania prenosu. Medzi akýmkoľvek spôsobom a príznakom prenosu, logické operácie "a", "alebo" môžu byť vyrobené, ak je výsledok zadaný do vypúšťania príznaku prevodu. Príkazy Bitter Spracovanie zabezpečujú implementáciu komplexných kombinatorických logických funkcií a optimalizácie používateľa. Príkazy rozvetvenia a prenosu adresy adresy adresy programov nemajú žiadnu organizáciu stránok, ktorá vám umožňuje voľne presunúť fragmenty programu v adresnom priestore, nevyžaduje recesívnu (zmenu) číslo stránky. Sťahovacie jednotlivé fragmenty programu poskytuje možnosť použitia rôznych softvérových modulov rôznymi programami. Príkazy 16-bitových prechodov a hovorov na podprogramov vám umožňujú prechod na akýkoľvek bod adresného priestoru pamäte 64 kb programov. Príkazy 11-bitových prechodov a hovorov na podprogramy poskytujú prechody vo vnútri 2 kB kapacitnej softvérového modulu. Príkazový systém má podmienené a bezpodmienečné prechody vzhľadom na počiatočnú adresu nasledujúceho programu od (Rs) -128 až (Zs) +127. Príkazy na kontrolu jednotlivých výtokov umožňujú podmienené prechody ako "0" alebo "1" a consequeous bity. Kontroly obsahu batérie (pre nulu / nie nulové) umožňujú podmienečným prechodom podľa obsahu A. Indire-Registration Prechody v systéme príkazového systému poskytujú rozvetvenie vzhľadom na základňu (DPTR alebo PC obsah) s posunom v batérii A. Adresné registra sa používa na odvolanie na osem pracovných registrov vybranej banky pracovných registrov (tie isté registre možno zvoliť pomocou priameho adresovania a nepriamo zaregistrovať adresovanie ako konvenčné bunky internej dátovej RAM). Registerové adresovanie sa používa na odvolanie registrov A, B, B, B, B, AB (REGISTRÁCIA DED), DPTR a na transpozíciu vlajku C. Použitie registra adresovania vám umožní získať dvojbajtový ekvivalent troch-bicyctových príkazov. Priame adresovanie Direct Byte Contact Addressing sa používa na prístup k interným pamäťovým bunkám (RAM) údajov (0-127) a na registre špeciálnych účelov. Riešenie priameho horšieho adresovania sa používa na odvolanie na samostatne adresovateľné 128 bitov umiestnených v bunkách s adresami 20H-2FH a samostatne adresovateľných bitov registrov na špeciálne účely. Senior Byte Byte Direct ADREM kód Vyberie jednu z dvoch skupín samostatne oslovených bitov umiestnených v RAM alebo špeciálnych registroch. Priamo adresované bity s adresy 0-127 (00H-7FH) sa nachádzajú v bloku 16 buniek vnútorného RAM, ktoré majú adresy 20H-2FH. Tieto bunky sú konzistentne očíslované z mladších bitov mladšieho bajtu na staršie bity staršieho bajtu. Samostatne adresované bity na špeciálnych registroch sú číslované nasledovne: Päť starších osôb vypúšťa sa zhoduje s piatimi staršími vypúšťania samotného registra a tri mladšie - určiť umiestnenie samostatnej IBTA v registri. Riešenie nepriameho registra Riešenie nepriameho registra sa používa na odvolanie na interné údaje RAS. Ako register-ukazovatele, R10, R1 registre vybraného registra Bank sa používajú. Príkazy stlačenia a pop používajú obsah ukazovateľa zásobníka (SP). Riešenie nepriameho registra sa používa aj na prístup k externej dátovej pamäti. V tomto prípade, pomocou registrov ukazovateľov R0 a R1 (vybraná banka pracovných registrov), bunka je vybraná z bloku v 256 bajtoch externej dátovej pamäte. Číslo bloku je prednastavené obsah portu P2. 16-bitové dátové ukazovatele (DPTR) je možné použiť na prístup k akejkoľvek bunke adresného priestoru externej pamäte údajov na 64 kB. Priama závislosť Direct Addressing vám umožňuje vybrať konštantný program z adresného priestoru pamäťového priestoru explicitne uvedeného v príkaze. Nepriamo zaregistrovať adresovanie množstva základných a indexových registrov. Nepriame register adresovanie vo výške: Základný register plus indexový register (obsah batérie A) zjednodušuje prezeranie tabuliek šité v programovej pamäti. Akýkoľvek bajt z tabuľky je možné zvoliť adresu, ktorá určila súčet obsahu DPTR alebo PC a obsah A. Označenie tabuľky a symboly používané v príkazovom systéme
Označenie, symbol Účel
ALE Batéria
Rn. Registre aktuálneho vybraného registra Bank
R. Počet stiahnutého registra, špecifikovaný v tíme
Priamy. Priamo adresovateľná 8-bitová interná adresa dátovej bunky, ktorá môže byť bunka vnútornej dátovej RAM (0-127) alebo SFR (128-255)
@ Rr. Nepriamo adresovateľná 8-bitová bunka vnútornej dát RAM
Údajov8. 8-bit mi, prechádzka v policajte
Datah. Senior Bity (15-8) bezprostredných 16-bitových dát
Dátový Mladšie bity (7-0) bezprostredných 16-bitových dát
Addr11 11-bitová cieľová adresa
Addrl Adresy na destináciu juniorov
DISP8. 8-bitový offset bajt s označením m
Trocha. Bit s priamym adresou, ktorej adresa obsahuje policajt v internej dátovej RAM alebo SFR
A15, A14 ... A0 Cieľové adresy Bity
(X) Obsah prvku x.
((X)) Obsah na adrese uloženej v prvku X
(X) [m] Vypúšťací prvok x
+ - * / a alebo xor / x Operácie: pridanie k odpočítaniu násobenia rozdelenia logického množenia (prevádzky a) logického pridávania (operácie alebo) pridanie modulu 2 (s výnimkou alebo) inverzie prvku X

Mnemonické označenia funkcií sú jednoznačne spojené so špecifickými kombináciami metód riešenia a typov údajov. Celkovo je v systéme príkazového systému možné 111 Takéto kombinácie. Tabuľka zobrazuje zoznam príkazov objednaných abecedne.

Mnemonika Funkcia Vlajky
Príkaz ACALL Absolútne volanie podprogramu
Tím pridať a<байт-источник> Pridávanie AC, C, OV
Addc tím<байт-источник> S prenosom AC, C, OV
Príkaz AJMP Absolútny prechod
ANL TEAM<байт-назначения>, <байт-источникa> Logické "a"
Príkaz ANL C,<байт-источникa> Logické "a" pre premenné-bity
Cjne príkaz<байт-назначения>, <байт-источник>, <смещение> Porovnanie a prechod, ak nie sú rovnaké C.
TEAM CLR A. Resetovanie batérie
CLR TEAM Bitka C, bit.
CPL A. TEAM Inverzia AK UMA URA
Príkaz CPL Bitová inverzia C, bit.
TEAM DA A. Desatinná korekcia batérie pre FALSE AC, C.
Tímový dec<байт> Výskyt
Div AB tím Divízia C, OV.
TEAM DJNZ.<байт>, <смещение> Pokles a prechod, ak nie nulový
Inc<байт> Prírastok
Team Inc DPTR. Zvýšenie ukazovateľa dát
Tím JB , Prechod, ak je bit nainštalovaný
TEAM JBC. , Prechod, ak je bit nainštalovaný a resetovaný tento bit
JC TEAM Prechod, ak je prenos nastavený
JMP @ A + DPTR TEAM Nepriamy prechod
TEAM JNB. , Prechod, ak nie je bit nainštalovaný
Tím JNC Prechod Ak nie je nainštalovaný prenos
TEAM JNZ. Prechod, ak obsah batérie nie je nula
TEAM JZ. Prechod, ak je obsah batérie 0
Lcall príkaz Dlhá výzva
TEAM LJMP Dlhý prechod
Team MOV.<байт-назначения>, <байт-источника> Pošlite variabilný bajt
Team MOV.<бит-назначения>, <бит-источника> Odoslať dátové bity C.
Team MOV DPTR, # Data16 Odovzdajte dátový ukazovateľ 16-bit konštantný
MOVC A, @ A + ( ) Odosielanie Bytes z programu Program
Príkaz MOVX<байт приемника>, <байт источника> Odoslanie údajov externej pamäte (z externej pamäte)
Team Mul AB. Násobenie C, OV.
Príkaz nop. Žiadna prevádzka PC.
Orl tím<байт-назначения>, <байт-источникa> Logické "alebo" pre variabilné bajty
Príkaz orl c<бит источникa> Logické "alebo" pre premenné-bity C.
Tím Čítanie zo zásobníka
Tím Záznam v zásobníku
Ret. Návrat z podprogramu
Tím Reti Návrat z prerušenia
RL A. TEAM ZAHRNITEĽKOSŤ BATÉRIU
RLC príkaz Zmena obsahu batérie doľava cez Transpiračnú vlajku
Rr príkaz Posun akumulátora doprava
Rrc príkaz Obsah batérie sa posúva doprava cez príznak prenosu C.
Príkaz SETB Nastavené bity C.
Team SJMP.<метка> Krátky prechod
Subb A,<байт источника> Odčítanie požičiavaním AC, C, OV
SWAP A. Výmena notebookov vo vnútri batérie
Xch tím<байт> Zdieľanie obsahu batérie batérie
TEAM XCHD A, @ R1 Tetraja Exchange
Tím XRL<байт-назначения>, <байт-источникa> Logické "s výnimkou alebo" pre variabilné bajty

Naplánovať prednášky

1. Úvod

2. Aritmetické a logické pokyny

3. Príkazy prenosu údajov

4. BOOLEANOVÉ OPRAVY

5. Pokyny pre preklady

1. Úvod

Tímový systém MCS-51. Podporuje jeden súbor inštrukcií, ktorý je navrhnutý tak, aby vykonal 8-bitové algoritmy riadenia výkonného zariadenia. Existuje možnosť použitia rýchlych metód adresovania pre vnútornú RAM, implementáciu bitových operácií cez malé dátové štruktúry. Existuje podrobný systém na riešenie jednorazových premenných ako nezávislý typ údajov, ktorý vám umožní používať jednotlivé bity v logických a riadiacich príkazoch boolean algebry.

Riešenie režimov : Sada príkazov MCS-51. Podporuje nasledujúce režimy adresovania. Priame adresovanie: Operand je definovaný 8-bitovou adresou v pokynoch. Priame adresovanie sa používa len pre mladšiu polovicu vnútornej pamäte údajov a registrov. SFR.. Nepriame adresovanie: Pokyny sa zaoberá register obsahujúcim adresu operandu. Tento typ adresovania sa používa na vonkajšie a vnútorné RAM. Registre môžu byť použité na určenie 8-bitových adries R0 a R1 Vybraný register Bank alebo Ukazovateľ zásobníka Sp.. Pre 16-bitové adresovanie sa používa iba register dátového ukazovateľa. Dpt.

Inštrukcie zaregistrovať : Registre R0-R7 Súčasný register Bank môže byť adresovaný prostredníctvom konkrétnych pokynov obsahujúcich 3-bitové pole označujúce číslo registra v samotnom pokynoch. V tomto prípade chýba zodpovedajúce pole adries. Operácie pomocou špeciálnych registrov: Niektoré pokyny používajú individuálne registre (napríklad operácie batérie, Dpt, atď.). V tomto prípade je adresa operandu vo všeobecnosti uvedená v príkaze. Vopred určí operačný kód.

Priame konštanty : Konštanta môže byť priamo v príkazii, keď je kód operácie.

Adresovanie indexu : Adresovanie indexu je možné použiť len na prístup k programovej pamäti a len v režime čítania. V tomto režime sa tabuľky zobrazia v pamäti programu. 16-bitový register ( Dpt Alebo počítadlo programov) označuje základnú adresu požadovanej tabuľky a batéria v ňom označuje vstupný bod.

Súprava príkazov Má 42 mnemonických symbolov na určenie 33 funkcií tohto systému. Syntax väčšiny príkazov montážneho jazyka pozostáva z mnemonického označenia funkcie, po ktorej nasledujú operandy, ktoré označujú metódy adresovania a typov údajov. Rôzne typy údajov alebo režimy adresovania sú určené inštalovanými operandmi, a nie zmeny v memicových označení.

Príkazový systém môže byť konvenčne umiestnený pre päť skupín: aritmetické príkazy; logické príkazy; Príkazy prenosu dát; príkazy za škodu; Príkazy pobočky a manažmentu. Označenia a symboly používané v systéme príkazu sú uvedené nižšie.

Tabuľka. Označenia a symboly používané v príkazovom systéme

Označenie, symbol

Účel

Batéria

Registre aktuálneho vybraného registra Bank

Počet zaťaženého registra zadaného v príkazi

priamy.

Priamo adresovateľná 8-bitová interná adresa dátovej bunky, ktorá môže byť bunka vnútornej dátovej RAM (0-127) alebo SFR špeciálne funkcie (128-255)

Nepriamo adresovateľná 8-bitová bunka vnútornej dát RAM

8-bitový priamy To, ktoré je zahrnuté v operačnom kódexe (CPA)

dátový

Senior Bity (15-8) bezprostredných 16-bitových dát

dátový

Mladšie bity (7-0) bezprostredných 16-bitových dát

11-bitová cieľová adresa

addrl

Adresy na destináciu juniorov

8-bitový posun bajtu so znakom

Bit s priamou adresou, ktorej adresa obsahuje policajt v internej pamäte RAM alebo SFR ŠPECIÁLNYCH FUNKCIE

a15, A14 ... A0

Cieľové adresy Bity

Obsah prvku x.

Obsah na adrese uloženej v prvku X

Vypúšťací prvok x


+

*
A.
Alebo.
Xor.
/ X.

Operácie:
Prílohy
Odpočítať
Násobenie
divízia
logické množenie (prevádzka a)
logické pridávanie (prevádzka alebo)
Prídavok MODULO 2 (s výnimkou alebo)
Inverzia prvku x.

Mnemonické označenia funkcií sú jednoznačne spojené so špecifickými kombináciami metód riešenia a typov údajov. Celkovo je v systéme príkazového systému možné 111 Takéto kombinácie.

2. Aritmetické a logické pokyny

Rovnako ako P. riemer aritmetický tímOperácia pridávania môže byť vykonaná jedným z nasledujúcich príkazov.

Pridať.A.,7 F. 16 - Pridajte k obsahu registrov a číslo 7F 16. a výsledok sa udržiava v registri A;

Pridať.A.,@ R.0 - Pridajte k obsahu registra a číslo, ktorého adresa (@ – obchodný na. ) Uložené v registriR. 0 (Nepriame adresovanie) a výsledok sa udržiava v registri A;

Pridajte A, R7 - Pridajte obsah registra a obsah registraR. 7 a výsledok sa udržiava v registri A;

Pridajte A, # 127 - Pridať k obsahu registra a čísla, adresu skladovacej bunky, z ktorej 127 ( # - Číslo symbolu) a výsledok sa uloží do regisu t.- RE A.

Všetky aritmetické pokyny sa vykonávajú v jednom strojovom cykle okrem príkazu. Inc DPTR. (Posun ukazovateľa dát Dpt Ďalší bajt), ktorý si vyžaduje dva stroje cykly, ako aj operácie množenia a rozdelenia vykonávané pre 4 cykly stroja. Akákoľvek bajt v pamäti internej dát môže byť zvýšená a znižovaná bez použitia batérie.

Výučba Mul ab Násobenie (multiplikácie - množenie) údajov v batérii na údajoch v registri B, umiestnenie výrobku do registrov A (mladšia polovica) a B (staršia polovica).

Výučba Div Ab Divízia (divízia - Divízia) Obsah batérie na hodnotu v registri B opúšťajúcom zvyšku v B a súkromné \u200b\u200bje v batérii.

Výučba DA A. Navrhnuté pre binárne-desatinné aritmetické operácie (aritmetické operácie na číslach uvedených v binárnom desatinnom kóde). Nepremieňa binárne čísla v binárny desatinnýPri pridávaní dvoch binárnych-desatinných čísel však poskytuje správny výsledok.

Príklad logický tím: Prevádzka logických a môže byť vykonaná jedným z nasledujúcich príkazov:

AnlA.,7 F. 16 - logické množenie obsahu registra a číslo 7F 16. a výsledok sa zachová v registri A;

AnlA.,@ R.1 - Logické množenie obsahu registra a čísla, ktorej adresa je uložená v registriR. 1 (Nepriame adresovanie) a výsledok sa udržiava v registri A;

ANL A, R6 - Logické násobenie obsahu registra A na obsah registraR. 6 a výsledok sa udržiava v registri A;

ANL A, # 53 - Logické množenie obsahu registra a číslo, adresa skladovacieho článku, z ktorého 53 16, a výsledok sa udržiava v registri A.

Všetky logické operácie na obsahu batérie sa vykonávajú v jednom strojovom cykle, zvyšok - pre dvoch. Logické operácie môžu byť vykonané nad ktorýmkoľvek z nižších 128 bajtov vnútornej dátovej pamäte alebo v ktoromkoľvek registri. SFR. (Špeciálne funkcie registre) v režime priameho adresovania bez použitia batérie.

Operácie cyklického posunu RL A, RLC A atď. Presuňte obsah batérie do jedného miesta doprava alebo doľava. V prípade ľavého cyklického posunu sa mladší bit pohybuje do staršej polohy. V prípade správneho cyklického posunu dochádza k opačnému.

Operácia SWAP A. Vykonajte výmenu mladších a senior tetrarad v batérii.

3. Príkazy prenosu údajov

Tím MOV Dest, SRC Umožňuje odosielať údaje medzi bunkami vnútornej pamäte RAM alebo oblasti registra špeciálnych funkcií SFR. Bez použitia batérie. V rovnakej dobe, práca s hornou polovicou vnútornej RAM sa môže vykonávať len v spôsobe nepriameho adresovania a odvolania na registráciu SFR. - Len v režime priameho adresovania.

Vo všetkých mikrobustiach MCS-51. Stoh sa nachádza priamo v rezidencii dát a zvyšuje sa smerom nahor. Výučba Tam. Spočiatku zvyšuje hodnotu v registri ukazovateľa zásobníka Sp.A potom píše na stack Byte Byte. Tím Tam. a Poprieť Používa sa len v režime priame adresovania (nahrávanie alebo obnovenie bajtov), \u200b\u200bale zásobník je vždy k dispozícii na nepriamej adresovaní prostredníctvom registra Sp.. Takto môže stoh tiež použiť horný 128 dátový bajt dát. Tieto úvahy eliminujú možnosť použitia príkazov STALL na adresu registrov SFR..

Inštrukcie údajov zahŕňajú 16-bitovú operáciu zásielky. MOV DPTR, # DATA16Používa sa na inicializáciu registra dátového ukazovateľa Dpt Pri prezeraní tabuľkových tabuliek v pamäti softvéru alebo prístupu k externej dátovej pamäti.

Operácia Xch a, bajt Používa sa na výmenu údajov medzi batériou a adresovateľným bajtom. Tím XCHD A, @ RI Podobne ako predchádzajúci, ale vykonáva sa len pre junior tetrad zapojený do výmeny operandov.

Pre prístup k externej dátovej pamäti sa používa iba nepriame adresovanie. V prípade jednoobových adries sa používajú registre R0 alebo R1 Aktuálny register Bank a pre 16-bitový - dátový ukazovateľ Dpt. S ľubovoľným prístupom k externej dátovej pamäti hrá batéria úlohu zdrojov alebo informácií prijímača.

Pre prístup k tabuľkám uverejneným v softvérovej pamäti sa používajú príkazy:

MOVC A, @ A + Dptr. ;

MOVC A, @ A + PC. .

Keďže základná adresa tabuľky používa obsah registra indikátora údajov Dpt alebo PC. (programový merač) a posun je prevzatý A.. Tieto príkazy sa používajú výlučne na čítanie údajov z pamäte programu, ale nie ich písať.

4. BOOLEANOVÉ OPRAVY

Mikroobvody MCS-51. Obsahujú vo svojom zložení "boolean" procesor. Vnútorná RAM má 128 priamo adresovaných bitov. Registre zaregistrovania vesmíru SFR. Môže tiež podporovať až 128 bodov uhryznutia. Bitové pokyny vykonávajú podmienené prechody, zásielky, reset, inverzie, operácie "a" alebo "alebo". Všetky špecifikované bity sú k dispozícii v režime priame adresovania.

Preniesť bit CF. V registri špeciálnych funkcií "Stav programu Word Psw."Používa sa ako jedna batéria booleanového procesora.

5. Pokyny pre preklady

Adresy operácií prechodu sú uvedené v jazyku assembler s označením alebo reálnou hodnotou v programovom pamäťovom priestore. Podmienečné prechodné adresy sú zostavené do relatívneho posunu - pridanému bajtu pridané do programu PC. V prípade stavu prechodu. Hranice takýchto prechodov ležia medzi mínus 128 a 127 v porovnaní s prvým bajtom podľa pokynov. V registri špeciálnych funkcií "Stav programu Word Psw.»Neexistuje žiadna nulová vlajka, takže pokyny Jz. a JNZ. Skontrolujte stav "rovný nulu" ako testovacie údaje v batérii.

Existujú tri typy tímov bezpodmienečného prechodu: SJMP., Lojček a AJMP - Rozlišovaný formát cieľovej adresy. Výučba SJMP. Kódy adresu ako relatívne vysídlenie a berie dve bajty. Rozsah prechodu je obmedzený rozsahom od mínus 128 až 127 bajtov vzhľadom na inštrukciu nasledujúcu SJMP..

V pokynoch Lojček Použite cieľovú adresu vo forme 16-bitovej konštanty. Dĺžka príkazu je tri bajty. Cieľová adresa môže byť umiestnená kdekoľvek v pamäti programu.

Tím AJMP Používa konštantu 11-bitovú adresu. Príkaz sa skladá z dvoch bajtov. Keď sa tento návod vykoná, mladší 11 bitov počítadla adries sú nahradené 11-bitovou adresou z príkazu. Päť seniorských programových bitov PC. nezmenené. Transition je teda možné uskutočniť vo vnútri 2k-byte bloku, v ktorom sa inštrukcia nachádza po príkazi AJMP.

Existujú dva typy príkazových hovorov podprogramu: Lickal a Hovor. Výučba Lickal Používa 16-bitovú adresu zvaného podprogramu. V tomto prípade môže byť podprogram umiestnený kdekoľvek v pamäti programov. Výučba Hovor Používa 11-bitovú adresu podprogramu. V tomto prípade musí byť nazývaný podprogram umiestnený v jednom 2k-bajtovom bloku s inštrukciou nasledujúcim Hovor. Obidve varianty príkazu položte ďalšiu adresu príkazu a prevziať do počítadla softvéru. PC. Zodpovedajúci nový význam.

Podprogram je ukončený inštrukciou Ret.Umožnenie návratu na inštrukciu ďalšieho príkazu Zavolať. Táto inštrukcia odstráni spätnú adresu z zásobníka a načíta ho do počítadla programu. PC. . Výučba Reti. Používa sa na návrat zo rutiny prerušenia spracovania. Jediný rozdiel Reti. z Ret. je to Reti. Informuje systém, že spracovanie prerušenia skončilo. Ak v čase realizácie Reti. žiadne iné prerušenia, potom je identické Ret..

Výučba Djnz. Navrhnuté na kontrolu cyklov. Vykonávať cykly N. Akonáhle je potrebné stiahnuť v bajtovom počítači s hodnotou N. a zatvorte tím tela cyklu Djnz.ukazuje na začiatok cyklu.

Tím CJNE. Porovnávajú dva z jeho operandov ako nepodpísané celé čísla a prechody na adresu uvedenú v ňom, ak nie sú repatibilné operandy rovnaké. Ak je prvý operand menší ako druhý, potom prenosový bit CF. Nainštalované v "1".

Všetky príkazy v zmontovanej forme zaberajú 1, 2 alebo 3 bajty.

Architektúra mikrokontroléry

Pochopenie architektúry Microcontroller je kľúčom, keď sa učíte programovacie jazyky typu Assembler. Assembler štruktúra, formát jeho príkazov, oslovenie operandov atď. Úplne určená architektúrou. Účelom štúdia architektúry je:

· Detekcia súborov dostupných pre programové registre, funkčné účely a štruktúru;

· Pochopenie organizácie RAM a postup na jeho použitie;

· Zoznámenie s typmi údajov;

· Štúdium formátu príkazov stroja;

· Zistenie organizácie spracovania prerušení.

Architektúra rodiny MCS-51 je do značnej miery vopred určená svojimi účelmi - stavebnými kompaktnými a lacnými digitálnymi zariadeniami. Všetky funkcie MK sú implementované pomocou jedného čipu. Rodina MCS-51 obsahuje množstvo mikroobvodov z najjednoduchších mikrokontrolérov až po celkom komplikované. MCS-51 Rodinné mikrokontroléry vám umožňujú vykonávať riadiace úlohy rôznych zariadení a implementovať jednotlivé analógové uzly. Všetky čipy tejto rodinnej práce s rovnakým príkazovým systémom, väčšina z nich sa vykonáva v rovnakých priestoroch s obkladom (číslovanie terminálov pre prípad). To vám umožní používať pre vyvinuté zariadenia mikroobvodov rôznych výrobcov (takýto Asintel, Dallas, Atmel, Philips, atď.) Bez zmeny konceptu zariadenia a programu.

MCS-51 je vyrobená architektúrou Harvard, kde sú oddelené adresné medzery pamäte a údajov.

Bloková schéma regulátora je prezentovaná na obr. 2.3 a pozostáva z nasledujúcich hlavných funkčných uzlov: riadiaca jednotka, aritmetické logické zariadenie, blok časovača / počítadiel, sériového rozhrania a prerušenia, softvérový merač (príkazový merač), dáta pamäť a programová pamäť.

Bilaterálna výmena sa vykonáva pomocou interného 8-bitového dátového riadku. Zvážte čítanie viac priradenia každého bloku. Podľa takejto schémy sú postavené takmer všetci zástupcovia rodiny MCS-51. Rôzne čipy tejto rodiny sa líšia len na registroch špeciálnych účelov (vrátane počtu portov). Systém príkazov všetkých regulátorov rodiny MCS-51 obsahuje 111 základných príkazov s formátom 1, 2 alebo 3 bajtov a nemení počas prechodu z jedného čipu na druhú. Poskytuje vynikajúcu prenosnosť programov z jedného čipu do druhého.

Kontrolná a synchronizačná jednotka (Načasovanie a kontrola) je určený na generovanie synchronizačných a riadiacich signálov, ktoré zabezpečujú koordináciu spoločnej práce blokov OEEHM vo všetkých prípustných režimoch jeho prevádzky. Riadiaca jednotka obsahuje:


  • zariadenie dočasného intervalu,
  • i / O Kombinovaný obvod
  • register tímu,
  • definanger tímy.

Vstup a víkend signály riadiaceho a synchronizačného bloku:

1 Psen. - Rozlíšenie softvérovej pamäte;

2 ALE. - výstupný signál povolenia fixácie adresy;

3 Prog - programovací signál;

4 Ea. - blokovanie práce s vnútornou pamäťou;

5 VPP. - programovacie napätie;

6 Rstovať - spoločný resetovací signál.

Zariadenie generácie časového intervalu je potrebné na synchronizáciu sekvencie stavov CPU tvoriaceho strojový cyklus, ako aj pre správnu prevádzku všetkých vnútorných detektorov a výstupných pufrov portov. Strojový cyklus sa skladá zo šiestich sekvencií (stavov) od S1 do S6, z ktorých každý je rozdelený na dve fázy:

fáza 1 (fáza 1 - p1) a fáza 2 (fáza 2 - p2). Takto môže byť strojový cyklus definovaný ako postupnosť časových intervalov S1P1, S1P2, S2P1, ...., S6P2. Trvanie fázy sa rovná dobu pulzu hodín, takže strojový cyklus trvá 12 hodín.

Počet strojových cyklov určuje čas vykonania príkazov. Takmer všetky príkazy sa vykonávajú pre jeden alebo dva stroje cykly, okrem príkazov multiplikácie a rozdelenia, ktorých trvanie je štyri cykly motora. I / O Logika je určená na prijímanie a vydávanie signálov, ktoré poskytujú výmenu informácií s externými zariadeniami prostredníctvom výstupných portov výstupu P0-P3.

Register tímov Navrhnuté na nahrávanie a ukladanie 8-bitového kódu spustiteľného kódu. Operačný kód, pomocou príkazového dekodéra a logiky ovládania počítača, sa prevedie na mikroprogram vykonania príkazu.

Obrázok 2.3. Konštrukčný diagram mikrokontroléra Intel 8051

(Rodina MCS-51)

Aritmetické logické zariadenie (ALU) je paralelné osem-bitové zariadenie, ktoré zabezpečuje vykonanie aritmetických a logických operácií. ALU pozostáva z:

  • registre dočasných úložísk -TMP1 a TMP2,
  • Konštanta,
  • zdatný
  • doplnkový register - Zaregistrujte sa,
  • batéria - ACC,
  • registrácia Stavový register (Register Flag) - PSW.

Registre dočasných úložísk TMP1, TMP2 - osem-bitové registre určené na prijímanie a ukladanie operandov v čase operácií na nich. Tieto registre nie sú programovo prístupné.

Konštantný Poskytuje nápravný kód na generovanie binárneho desatinného zobrazenia dát, kód masky pre bitové operácie a konštantný kód.

Paralelný osem-bitový adder Je to schéma kombinovaného typu so sekvenčným prevodom, určeným na vykonávanie aritmetických operácií pridávania, odčítania a logických operácií pridávania, násobenia, jednoznakových hodnôt a identity.

Zaregistrujte sa B. - osembitový register používaný pri operáciách množenia a rozdelenia. Ďalšie pokyny je možné zobraziť ako dodatočný ultraoperačný register.

Batéria- osem-bitový register určený na prijímanie a ukladanie výsledku získaného pri vykonávaní aritmetických a logických operácií alebo operácií posunu.

Register stavu programu PSW (program stavu programu)navrhnuté na uloženie stavu vykonaných príkazov. Pri vykonávaní mnohých tímov v ALU sa vytvárajú množstvo funkcií prevádzky (vlajky), ktoré sú zaznamenané v registri stavu programu (PSW). V Tab. 1 zobrazuje zoznam vlajok PSW, sú uvedené ich symbolické názvy a sú opísané podmienky ich tvorby.

Prerušenie a Serial Interface Block - UART (univerzálny asynchrónny prijímač / vysielač) Navrhnuté na usporiadanie vstupu - stiahnutie konzistentných informačných tokov a organizovania systému prerušenia programu.

Podľa definície prerušenie znamená dočasné ukončenie hlavného procesu výpočtovej techniky na vykonávanie niektorých plánovaných alebo neplánovaných akcií spôsobených prácou zariadení alebo programov.

Tieto akcie môžu nosiť servisný znak, byť požiadavky užívateľského programu na vykonanie služby alebo byť reakciou na abnormálne situácie.



Páči sa vám článok? Zdieľaj to