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:
- - PIP puffer,
- - Ellenőrzési logika,
- - Ellenőrzési nyilvántartás,
- - adópuffer,
- - vevő puffer,
- - Soros kikötői adó-vevő,
- - megszakítja az elsőbbségi nyilvántartást,
- - Megszakítási felbontás nyilvántartás,
- - 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).
- Aritmetikai csapatok;
- Logikai parancsok;
- Adatátviteli parancsok;
- Harapás processzorparancsok;
- Parancsok ág és menedzsment.
- 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
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 |
|
|
Tevékenységek: |
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.