Mikrokontroléry rodiny mcs 51. Mikrokontroléry MCS – 51. Bloková schéma, ALU, dátová pamäť. A. Všeobecná charakteristika a priradenie pinov

  • 03.03.2020

Mikrokontroléry rodiny MCS-51 sú postavené podľa Harvardskej architektúry, v ktorej sú pamäť programu a dátová pamäť rozdelené, majú svoje vlastné adresné priestory a spôsoby prístupu k nim.

Programová pamäť


Maximálna veľkosť pamäte je 64K bajtov, z toho 4K, 8K, 16K alebo 32K bajtov pamäte (tabuľka 7.3.1) sa nachádza na matrici, zvyšok je mimo matrice.
S napätím na svorke EA = V CC používa sa interná aj externá pamäť, pričom EA = V CC = 0 - iba externá pamäť.
Tabuľka 7.3.1 ukazuje adresy programovej pamäte pre indikované prípady.
Spodná oblasť programovej pamäte je vyhradená na spustenie mikrokontroléra (štartovacia adresa 0000h po resete) a na spracovanie prerušení (adresy prerušení sa nachádzajú s intervalom 8 bajtov: 0003h, 000Bh, 0013h atď.).


Programová pamäť je len na čítanie a pri prístupe:

● do externá pamäť programov sa generuje signál ¯PSEN a vždy sa vytvorí 16-bitová adresa.
Nízky bajt adresy sa prenáša cez port P0 v prvej polovici strojového cyklu a je fixovaný na okraji ALE stroboskopu v registri.
V druhej polovici cyklu sa port P0 používa na zadanie bajtu dát z externej pamäte do MC.
Byte vyššieho rádu adresy sa prenáša cez port P2 počas celého času prístupu do pamäte (obr. 7.1.11);

● do vnútorná pamäťčítaný signál sa negeneruje a na internej zbernici mikrokontroléra sa využívajú výmenné cykly.

Dátová pamäť

Vnútorná pamäťúdaje možno podmienečne rozdeliť do troch blokov (tabuľka 7.3.2).

Vnútorná pamäť je vždy adresovaná bajtom, ktorý adresuje len 256 pamäťových miest.
Preto, ako je možné vidieť z tabuľky 7.3.2, na adresovanie horných 8-bitových buniek internej RAM a registrov špeciálnych funkcií SFR, zaberajúcich rovnaký adresný priestor, používajú príkazy rôzne spôsoby adresovania: nepriame a priame.

Vlastnosti organizácie spodnej oblasti vnútornej pamäte RAM sú uvedené v tabuľke 7.3.3.

Nízkych 32 bajtov vnútornej pamäte RAM s adresami 00h.
1Fh sú zoskupené do štyroch bánk po ôsmich registroch (R0.R7).
Ďalších 16 bajtov RAM s 20h adresami.
2Fh predstavuje oblasť pamäte 8 × 16 = 128 bitov, čo umožňuje prístup ku každému jednotlivému bitu.
Pre výber adresy bankového registra sa používa jeho názov R0.
R7, na výber banky - bity RS0, RS1 registra stavových slov PSW.

Bitové adresy

Bitové adresy sú uvedené v tabuľke 7.3.3.

Prebieha adresovanie priamy spôsobom.

Zoznam všetkých registrov špeciálnych funkcií SFR s ich adresami je uvedený v tabuľke 7.2.2.
Pre prehľadnosť v tabuľke 7.3.

4 predstavenia registrovať mapu adresySFR z uvažovaných mikroobvodov rodiny MCS-51.
Adresa SFR je určená kombináciou čísel stĺpcov a riadkov v hexadecimálnom formáte.

Napríklad register CMOD má adresu D9h.

Pre registre SFR, ktorých adresy končia na 0h alebo 8h (sú tučne), okrem byte povolený bitovo adresovanie.

V tomto prípade je adresa bitu, ktorý zaberá N-tý bit v registri, definovaná ako XXh + ​​0Nh, kde XXh je adresa registra SFR, N = 0,7.
Bitové adresy v tejto oblasti sa pohybujú od 80H do FFH.
Napríklad bitové adresy ACC akumulátora ležia v rozsahu E0h-E7h.

Externá pamäť dáta (do 64 KB) sú vytvárané prídavnými pamäťovými čipmi, ktoré sú pripojené k MC.
Na prácu s externou dátovou pamäťou sa používajú špeciálne príkazy, aby sa adresné priestory externej a internej pamäte neprekrývali, a preto je možné používať oba typy dátovej pamäte súčasne.

Na prístup k bunkám externej dátovej pamäte sa používajú (obrázok 7.1.8):
● príkazy s nepriamym adresovaním;
● signály na čítanie ¯RD a zápis ¯WR;
● port P0 na prenos najmenej významného bajtu adresy a príjem/prenos dátového bajtu;
● Port P2 na prenos bajtu vyššieho rádu adresy.
Metódy adresovania.
Príkazový systém používa:
● priame, nepriame, registre, nepriame registre, priame a indexové adresovanie (nepriame adresovanie súčtom základných a indexových registrov) zdrojové operandy;
● priame, registračné a nepriame-registračné adresovanie cieľové operandy.
Kombinácia týchto metód (adresovanie) poskytuje 21 režimov adresovania.
Tento príkazový systém a tabuľky nižšie používajú nasledujúci zápis:

Priame adresovanie.

Pri tomto spôsobe adresovania je umiestnenie bajtu alebo dátového bitu určené 8-bitovou adresou druhého (a tretieho) príkazového bajtu.
Priame adresovanie sa používa iba na prístup k internej dátovej pamäti (dolných 128 bajtov RAM) a špeciálnym funkčným registrom.

Registrovať adresovanie.


Tento spôsob adresovania poskytuje prístup k údajom uloženým v jednom z ôsmich registrov R0.
R7 súčasnej banky pracovných registrov.
Môže sa použiť aj na prístup k registrom A, B, AB (duálny register), registru ukazovateľov DPTR a prenášaniu vlajky C.
Adresa týchto registrov je vložená do operačného kódu, čím sa znižuje počet príkazových bajtov.

Adresovanie nepriameho registra.


V tomto prípade je adresa údajov uložená v registri ukazovateľov, ktorého umiestnenie je určené operačným kódom.
Táto metóda adresovania sa používa na prístup k externej pamäti RAM a hornej polovici internej pamäte RAM.
Registrami-ukazovateľmi 8-bitových adries môžu byť registre R0, R1 vybranej banky pracovných registrov alebo stack pointer SP, pre 16-bitové adresovanie sa používa len register dátových ukazovateľov DPTR.

Priame adresovanie.


Pri tomto spôsobe adresovania sú údaje priamo indikované v príkaze a nachádzajú sa v druhom (alebo v druhom a treťom) byte príkazu, t.j.
nie je potrebné adresovanie pamäte.
Napríklad príkazom MOV A, # 50 sa do akumulátora A načíta číslo 50.

Indexované adresovanie.


Pri tejto metóde ide o nepriame adresovanie registra, pri ktorom je adresa dátového bytu určená ako súčet obsahu základného (DPTR alebo PC) a indexového (A) registra.
spôsob používa sa len na prístup do pamäte programu a iba v režime čítania; uľahčuje prezeranie tabuliek pevne zapojených do pamäte programu.

Štruktúra príkazov.

Dĺžka príkazu je jeden (49 príkazov), dva (45 príkazov) alebo tri (17 príkazov) bajty.
Prvý bajt príkazu vždy obsahuje operačný kód (OP), zatiaľ čo druhý a tretí bajt sú adresy operandov alebo okamžitých dátových hodnôt.

Ako operandy možno použiť jednotlivé bity, tetrády, bajty a dvojbajtové slová.
Existuje 13 typov príkazov, ktoré sú uvedené v tabuľke 7.3.5:

● A, PC, SP, DPTR, Rn (n = 0, 7) - akumulátor, počítadlo inštrukcií, ukazovateľ zásobníka, register ukazovateľov údajov a aktuálny bankový register;
● Rm (m = 0, 1) - register aktuálnej banky používaný na nepriame adresovanie;
● direct - 8-bitová adresa priamo adresovaného operandu;
● bit - adresa priamo adresovaného bitu;
● rel - relatívna adresa prechodu;
● addr11, addr16 - 11- a 16-bitová absolútna prechodová adresa;
● # data8, # data16 - priame dáta (operandy) 8- a 16-bitovej dĺžky;
● A10, A9, A0 - jednotlivé bity 11-bitovej adresy;
● (.) - obsah pamäťovej bunky na adrese uvedenej v zátvorkách;
● SB, MB - vysoké a nízke bajty 16-bitového operandu.

Všeobecné informácie o systéme príkazov.

Príkazový systém poskytuje veľké možnosti spracovania dát vo forme bitov, zápisníkov, bajtov, dvojbajtových slov, ako aj riadenie v reálnom čase.
Na popis príkazov sa používa jazyk makra ASM51. Syntax väčšiny príkazov pozostáva z mnemotechnickej skratky (skratky) operácie, ktorá sa má vykonať, za ktorou nasledujú operandy.
Operandy sa používajú na označenie rôznych spôsobov adresovania a typov údajov.

Najmä skratka MOV má 18 rôznych inštrukcií určených na spracovanie troch typov údajov (bitov, bajtov, adries) v rôznych adresných priestoroch.
Sada príkazov má 42 mnemotechnických označení 111 typov príkazov na konkretizáciu 33 funkcií MK.

Zo 111 inštrukcií je 64 vykonaných v jednom strojovom cykle, 45 v dvoch cykloch a len dve inštrukcie (MUL - násobenie a DIV - delenie) sa vykonávajú v 4 cykloch. Pri frekvencii generátora hodín 12 MHz je trvanie strojového cyklu (12 hodinových cyklov) 1 μs. Autor: funkčná vlastnosť tímy možno rozdeliť do piatich skupín. Nižšie je uvedený popis príkazov každej skupiny vo forme tabuliek. Pre kompaktnosť tabuliek vyčleníme skupinu príkazov (tabuľka 7.3.6), ktorých vykonanie vplyvy(označené +) o stave vlajok register stavových slov PSW.

Príkazy na prenos údajov

Prenosové príkazy možno rozdeliť do samostatných podskupín.
Príkazy na prenos a výmenu údajov medzi bunkami vnútornej pamäte(Tabuľka 7.3.7).

Príkazy 1-16, ktoré majú mnemotechnický znak MOV dest, src, sú určené pre preposielanie bajt alebo dva bajty (príkaz 16) údajov zo zdroja src do cieľa, pričom:
● na označenie zdroj(src) používajú sa štyri spôsoby adresovania: register (príkazy 2-4, 6, 8), priamy (príkazy 1, 7, 9, 11), nepriamy (príkazy 5, 10) a priamy (príkazy 12-16);
● na označenie prijímač(cieľ) používajú sa tri spôsoby: register (príkazy 1, 3 ... 5, 9, 12, 14, 16), priamy (príkazy 2, 7, 8, 10, 13), nepriamy (príkazy 6, 11, 15).

Poskytujú tímy 17-20 výmena informácie medzi dvoma bunkami internej dátovej pamäte (alebo obojsmerný prenos).
Keď sa príkazy XCH vykonajú, bajty sa vymenia, A príkazu XCHD sa vymení s nižšími tetradami bajtových operandov.

Jednou z buniek je vždy akumulátor A. Ako ďalšia bunka sa pri výmene bajtov používa jeden z Rn registrov aktuálnej banky, A je tiež priamo alebo nepriamo adresovateľná bunka vnútornej pamäte; pri výmene tetrád - len nepriamo adresovateľná bunka vnútornej pamäte.

Keďže vo všetkých MCU je zásobník umiestnený vo vnútornej RAM, táto podskupina zahŕňa príkazy(20, 21) zásobníkový prístup PUSH src, POP dest.
Tieto príkazy používajú iba metódu priameho adresovania, zápis bajtu do zásobníka alebo jeho obnovenie zo zásobníka.
Treba mať na pamäti, že v tých MCU, ktoré nemajú horných 128 bajtov v RAM, zvýšenie zásobníka nad 128 bajtov vedie k strate údajov.

Príkazy na prenos údajov medzi internou a externou pamäťou údajov(Tabuľka 7.3.8).

Tieto príkazy používajú iba nepriame adresovanie, pričom jednobajtová adresa môže byť umiestnená v P0 alebo R1 aktuálnej banky registrov a dvojbajtová adresa môže byť umiestnená v registri ukazovateľa údajov DPRT.
Pri akomkoľvek prístupe k externej pamäti hrá batéria A úlohu prijímača alebo zdroja operandov vo vnútornej pamäti.

Pokyny na prenos údajov z pamäte programu(Tabuľka 7.3.9).

Tieto príkazy slúžia na čítanie tabuliek z pamäte programu.

Inštrukcia MOVC A, @ A + DPTR sa používa na odkazovanie na tabuľku s počtom vstupov od 0 do 255.

Číslo požadovaného záznamu tabuľky sa nahrá do akumulátora a register DPTR sa nastaví na počiatočný bod tabuľky. Charakteristickým znakom druhého príkazu je, že počítač programu PC sa používa ako základný ukazovateľ a k tabuľke sa pristupuje z podprogramu. Najprv sa do akumulátora nahrá číslo požadovaného vstupného bodu, následne sa vyvolá podprogram príkazom MOVC A, @ A + PC. Tabuľka môže mať 255 vstupov s číslami od 1 do 255, keďže 0 sa používa ako adresa príkazu RET výstupu podprogramu.

Príkazy na spracovanie aritmetických údajov. Všetky aritmetické príkazy sa vykonávajú na celých číslach bez znamienka. Operácie na dvoch operandoch(Tabuľka 7.3.10). V operáciách prílohy PRIDAŤ, pridanie prenosu ADDC a odpočet úveru SUBB:

● zdrojom jedného 8-bitového operandu a príjemcom výsledku je akumulátor;
● zdrojom ďalšieho operandu je buď jeden z pracovných registrov Rn (n = 0-7) aktuálnej banky, alebo priamo priamy alebo nepriamo @Rm (m = 0, 1) adresovateľné pamäťové miesto RAM alebo priame dáta #data.

Operácie násobenie MUL a divízie DIV sa vykonávajú nad obsahom registrov A a B. Pri násobení sa horných 8 bitov výsledku zapíše do registra B, spodných 8 bitov - do registra A.
Ak je súčin väčší ako 255, nastaví sa príznak pretečenia OV; Vlajka prenášania C je vždy vymazaná. Inštrukcia DIV rozdeľuje 8-bitový operand akumulátora A 8-bitovým operandom registra B.
Pri delení sa podiel (najvýznamnejšie bity) zapíše do registra v A, zvyšok (najmenej významné bity) - v B. Príznaky prenosu C a OV pretečenia sú vymazané.
Pokus o delenie 0 nastaví príznak pretečenia OV. Operácia delenia sa častejšie používa pri zmenách a konverziách základne.

Keď je binárne číslo delené 2 N, posunie sa o N bitov doľava.
Extra bity sa prenesú do registra B.

Operácie na jednobajtových operandoch(Tabuľka 7.3.11).

Príkaz DA sa používa na vykonávanie operácií BCD. Príkazy INC, DEC umožňujú príslušné zvýšenie alebo zníženie obsahu pamäťovej bunky o jednu.
Vzťahujú sa na obsah akumulátora A, jeden z pracovných registrov Rn alebo priamo aj nepriamo adresovanú pamäťovú bunku.
Operácia prírastku platí aj pre obsah 16-bitového registra ukazovateľa DPTR.

Booleovské príkazy.

Dvojité operácie

(Tabuľka 7.3.12).

Príkazy AML, ORL, XRL umožňujú vykonávať tri dvojmiestne logické operácie na 8-bitových operandoch: ANL - logické násobenie (AND), ORL - logické sčítanie (OR), XRL - exkluzívne OR (XOR).
Operácie sa vykonávajú na jednotlivých bitoch operandov. Zdrojom jedného z operandov a zároveň príjemcom výsledku je buď akumulátor (A), alebo priamo adresovateľná pamäťová bunka (direct).
Pre zdroj iného operandu sa používa metóda registra, priameho, nepriameho alebo priameho adresovania.

Jednotlivé operácie

(Tabuľka 7.3.13).
Skupina tiež zahŕňa množstvo jednotlivých operácií s obsahom akumulátora A: vymazanie (CLR), logický doplnok alebo inverzia (CPL), cyklické a rozšírené cyklické posuny o 1 bit doprava (RL, RLC) a doľava (RR, RRC), výmenné tetrády alebo cyklický posun bajtu o 4 bity (SWAP), A je tiež prázdna operácia (NOP), v dôsledku čoho zostáva stav všetkých registrov MK (okrem programového počítadla) nezmenený.

Ovládanie príkazov na prenos

Bezpodmienečné skokové príkazy

(Tabuľka 7.3.14).

Príkazy 1-3 sa líšia iba formátom cieľovej adresy.

Príkaz LJMP (L - Long) vykoná "dlhý" bezpodmienečný skok na zadanú adresu addr16, pričom načíta počítač PC s druhým a tretím príkazovým bajtom.
Príkaz poskytuje skok na ľubovoľný bod v 64K bajtovom adresnom priestore.

Príkaz AJMP (A - Absolute) poskytuje "absolútny" skok na adresu v rámci 2K bajtovej stránky, ktorej počiatočná adresa je nastavená piatimi najvýznamnejšími bitmi počítadla PC programu (najskôr sa zväčší obsah PC od 2).

Príkaz SJMP (S - Short) umožňuje „krátky“ bezpodmienečný skok na adresu, ktorá sa vypočíta pripočítaním offsetu rel so znamienkom v druhom byte príkazu s obsahom počítadla PC, predtým zvýšeného o 2.

Adresa skoku je v rozmedzí -128 + 127 bajtov vzhľadom na adresu príkazu.
Na skok na akýkoľvek iný bod v 64-kilobajtovom adresnom priestore možno použiť aj príkaz 4 s nepriamou @ A + DPTR adresou.
V tomto prípade sa obsah A interpretuje ako celé číslo bez znamienka.

Nulová operácia (NOP), v dôsledku ktorej zostáva stav všetkých registrov mikroprocesora (okrem programového počítadla) nezmenený.

Príkazy podmienenej vetvy

(Tabuľka 7.3.15).

Pomocou príkazov JZ a JNZ sa vykoná skok, ak sa obsah akumulátora rovná alebo nerovná nule.
Adresa skoku sa vypočíta pridaním relatívneho posunu znamienka rel k obsahu počítadla príkazov PC po pridaní 2 (dĺžka príkazu v bajtoch).

Obsah batérie zostáva nezmenený.
Príkazy neovplyvňujú príznaky.

Príkazy CJNE (3-6) sa používajú na implementáciu podmieneného skoku na základe výsledku porovnania dvoch 8-bitových operandov, ktorých umiestnenie je uvedené v príkazoch.
Ak sa ich hodnoty nerovnajú, vytvorí sa vetva.

Adresa skoku sa vypočíta tak, že sa pripočíta offset rel k obsahu počítadla PC, predtým zvýšeného o 3.
V opačnom prípade sa vykoná ďalší príkaz.

Stĺpec Algoritmus zobrazuje vplyv hodnôt porovnávaných 8-bitových operandov na príznak prenosu C.
Príkazy DJNZ (7) sú určené na organizovanie programových slučiek.

Register Rn alebo priama (priama) adresa je počítadlo opakovaní slučky, offset rel (v druhom a treťom príkazovom byte) je relatívna adresa skoku na začiatok slučky.
Keď sa príkazy vykonajú, obsah počítadla sa zníži o jednotku a skontroluje sa, či neobsahuje nulu.
Ak sa obsah počítadla nerovná nule, vykoná sa prechod na začiatok cyklu.
V opačnom prípade sa vykoná nasledujúci príkaz.

Adresa skoku sa vypočíta pridaním posunu k obsahu počítadla, ktorý sa predtým zvýšil o dĺžku príkazu (o 2 alebo 3).
Príznaky príkazov nie sú ovplyvnené.

Príkazy na volanie podprogramov a návrat z programov

(Tabuľka 7.3.16).
Príkazy LCALL "long call" a ACALL "absolútne volanie" bezpodmienečne volajú podprogram umiestnený na zadanej adrese.

Rozdiel medzi týmito pokynmi a pokynmi bezpodmienečného skoku diskutovanými vyššie je v tom, že ukladajú návratovú adresu (obsah počítadla) do hlavného programu v zásobníku.
Príkaz return z podprogramu RET obnovuje hodnotu obsahu programového počítadla zo zásobníka a príkaz RETI umožňuje aj prerušenia servisnej úrovne.

Relatívne adresovanie je široko používané v príkazoch riadiaceho prenosu, ktoré podporuje premiestniteľné programové moduly.
8-bitový offset rel so znamienkom funguje ako relatívna adresa, ktorá zabezpečuje vetvenie z aktuálnej polohy PC počítadla v oboch smeroch o ± 127 bajtov.

Na skok na ktorýkoľvek iný bod v 64K-bajtovom adresnom priestore je možné použiť buď priamu adresu addr16, alebo nepriamu adresu @A + DPTR.
V druhom prípade sa obsah A interpretuje ako celé číslo bez znamienka.

Pre kompatibilitu s architektúrou MK48 bol predstavený variant krátkeho priameho adresovania addr11 v rámci 2K-bajtovej aktuálnej stránky.

Všetky tieto typy adresovania možno použiť iba na operáciu vetvenia a pre operáciu volania sú povolené iba priame metódy adresovania addr16 a interné adresy addr11.
Vo všetkých podmienených operáciách je možné použiť iba relatívne adresovanie.

Keď MK51 rozpozná požiadavku na prerušenie, vygeneruje jednu z inštrukcií LCALL addr16, ktorá automaticky zabezpečí uloženie návratovej adresy do zásobníka.
Na rozdiel od MK48 však MK51 nemá automaticky uložené informácie o stave.

V tomto prípade logika prerušenia prestane reagovať na požiadavky úrovne, ktorá bola prijatá na službu.
Na zníženie úrovne prerušenia sa používa príkaz na návrat z prerušenia RETI, ktorý okrem operácie ekvivalentnej RET zahŕňa operáciu povolenia prerušenia tejto úrovne.
Medzi štandardné podmienené operácie MK51 patria aj operácie JZ, JNZ.
Je tu však nová operácia „Porovnaj a choď“ CJNE.

Pre tento príkaz sa najprv porovná operand podľa pravidiel odčítania celých čísel s konštantou a v súlade s výsledkom porovnania sa nastaví príznak CY.Potom sa v prípade nesúladu s konštantou vykoná vetvenie. vykonané. Porovnaním akumulátora, registra alebo pamäťovej bunky s postupnosťou konštánt získame pohodlný spôsob kontroly náhodností, napríklad za účelom identifikácie špeciálnych prípadov.

V skutočnosti je príkaz CJNE členom operátora jazyka na vysokej úrovni typu CASE.

Tím DJNZ sa ďalej rozvíjal.
Teraz môže programátor ako počítadlo využívať nielen jeden z pracovných registrov Rn, ale aj ľubovoľnú pamäťovú bunku DSEG.

Príkazy pre bitové operácie.

Skupina pozostáva z 12 príkazov, ktoré umožňujú vykonávať operácie na jednom alebo dvoch bitoch (reset, set, bitová inverzia, A tiež logické AND a OR), a 5 príkazov určených na implementáciu podmienených skokov (tabuľka 7.3.17).

Inštrukcie poskytujú priame adresovanie 128 bitov umiestnených v šiestich až jedenástich bunkách internej RAM s adresami 20h.
2Fh (tabuľka 7.3.3) a 128 bitov umiestnených v špeciálnych registroch, ktorých adresy sú násobky ôsmich (v tabuľke 7.3.4 sú zvýraznené tučným písmom).

Pri vykonávaní operácií na dvoch jednobitových operandoch sa ako logický akumulátor používa klopný obvod registra PSW, v ktorom je uložený prenosový príznak C (tabuľka 7.1.2).

Vykonajú sa inštrukcie MOV (1,2). náklad bit z jednej priamo adresovateľnej bitovej bunky internej RAM do klopného obvodu C alebo naopak.
Príkazy CRL (3, 4), SETB (5, 6). skládka na nulu resp založiť v jednom prenosovom príznaku C alebo špecifikovanom bite.
Pomocou príkazov CPL, ANL, ORL (7-12) sa vykonávajú logické operácie inverzie, sčítania a násobenia.

Skupina tiež obsahuje príkazy (13-17) na implementáciu operácií podmieneného vetvenia s relatívnym 8-bitovým posunom rel.
Prechody môžu byť implementované ako keď je nastavený bit alebo príznak prenosu (príkazy 13, 16), tak aj keď je vymazaný (príkazy 14, 17).

Príkaz JBC okrem presunu na vypočítanú adresu, keď je splnená podmienka (bit) = 1, vynuluje tento bit.
Pri vykonávaní podmienených príkazov vetvy sa adresa vetvy vypočíta po pridaní čísel 3 alebo 2 k počítadlu (odráža počet bajtov v príkaze).

Architektúra rodiny MCS-51 je do značnej miery predurčená jej účelom - budovaním kompaktný a lacno digitálnych zariadení. Všetky funkcie mikropočítača sú implementované pomocou jedného mikroobvodu. Rodina MCS-51 zahŕňa rad mikroobvodov od najjednoduchších mikrokontrolérov až po tie najzložitejšie. Mikrokontroléry rodiny MCS-51 vám umožňujú vykonávať riadiace úlohy pre rôzne zariadenia a implementovať jednotlivé uzly analógového obvodu. Všetky mikroobvody tejto rodiny fungujú s rovnakým príkazovým systémom, väčšina z nich sa vykonáva v rovnakých prípadoch s zodpovedajúce pinout(číslovanie nôh pre telo). To umožňuje použiť pre vyvíjané zariadenie mikroobvody od rôznych výrobcov (napríklad Intel, Dallas, Atmel, Philips atď.). bez zmeny schematického diagramu zariadenia a programu.

Obrázok 1. Bloková schéma ovládača K1830BE751

Bloková schéma regulátora je znázornená na obrázku 1 a pozostáva z nasledujúcich hlavných funkčných jednotiek: riadiaca jednotka, aritmetická logická jednotka, jednotka časovača/počítadla, sériové rozhranie a jednotka prerušenia, programové počítadlo, dátová pamäť a programová pamäť. Obojsmerná výmena sa vykonáva pomocou internej 8-bitovej dátovej diaľnice. Pozrime sa bližšie na účel každého bloku. Takmer všetci predstavitelia rodiny MCS-51 sú postavení podľa tejto schémy.... Rôzne mikroobvody tejto rodiny sa líšia len v účelových registroch (vrátane počtu portov). Príkazový systém všetky ovládače z rodiny MCS-51 obsahuje 111 základných inštrukcií s formátom 1, 2 alebo 3 bajty a nemení sa pri prechode z jedného mikroobvodu na druhý. To zaisťuje vynikajúcu prenosnosť programov z jedného mikroobvodu na druhý.

Riadiaca a synchronizačná jednotka

Časová a riadiaca jednotka je určená na generovanie synchronizačných a riadiacich signálov, ktoré zabezpečujú koordináciu spoločnej činnosti jednotiek OEVM vo všetkých prípustných režimoch jej činnosti.Riadiaca jednotka obsahuje:

  • zariadenie na tvarovanie časových úsekov,
  • I/O logika,
  • príkazový register,
  • register kontroly spotreby elektriny,
  • dekodér príkazov, logika riadenia počítača.

Zariadenie na tvarovanie časových úsekov je určený na vytváranie a vydávanie interných synchronizačných signálov fáz, hodín a cyklov. Počet cyklov stroja určuje trvanie vykonávania inštrukcie. Takmer všetky príkazy OEVM sa vykonávajú v jednom alebo dvoch strojových cykloch, okrem príkazov násobenia a delenia, ktorých trvanie je štyri strojové cykly. Označme frekvenciu hlavného oscilátora F g. Potom je trvanie cyklu stroja 12 / F g alebo 12 periód signálu hlavného oscilátora. Vstupno-výstupná logika je navrhnutá tak, aby prijímala a vydávala signály, ktoré poskytujú výmenu informácií s externými zariadeniami cez vstupné/výstupné porty P0-P3.

Príkazový register je určený na záznam a uloženie 8-bitového operačného kódu vykonávaného príkazu. Operačný kód sa pomocou príkazov a počítačovej riadiacej logiky prevedie na mikroprogram vykonávania príkazov.

Register kontroly spotreby (PCON) vám umožňuje zastaviť činnosť mikrokontroléra, aby ste znížili spotrebu energie a znížili úroveň hluku z mikrokontroléra. Ďalšie zníženie spotreby energie a zníženie hluku je možné dosiahnuť zastavením hlavného oscilátora mikrokontroléra. Dá sa to dosiahnuť preklopením v registri riadenia spotreby PCON. Pre n-MOS (séria 1816 alebo cudzie mikroobvody bez "c" v strede) obsahuje register riadenia spotreby PCON iba jeden bit, ktorý riadi prenosovú rýchlosť sériového portu SMOD, a neexistujú žiadne bity riadenia spotreby.

Spolu s článkom „Architektúra mikrokontrolérov MCS-51“ čítajte:


http: //site/MCS51/tablms.php


http: //site/MCS51/SysInstr.php


http: //site/MCS51/port.php

Architektúra rodiny MCS-51 je do značnej miery predurčená jej účelom - budovaním kompaktný a lacno digitálnych zariadení. Všetky funkcie mikropočítača sú implementované pomocou jedného mikroobvodu. Rodina MCS-51 zahŕňa rad mikroobvodov od najjednoduchších mikrokontrolérov až po tie najzložitejšie. Mikrokontroléry rodiny MCS-51 vám umožňujú vykonávať riadiace úlohy pre rôzne zariadenia a implementovať jednotlivé uzly analógového obvodu. Všetky mikroobvody tejto rodiny fungujú rovnako veliteľský systém MCS-51, väčšina z nich sa vykonáva v rovnakých prípadoch s zodpovedajúce pinout(číslovanie nôh pre telo). To umožňuje použitie mikroobvodov od rôznych spoločností pre vyvinuté zariadenie - Maxim, Atmel, NXP atď. (catalog..php? page = component_list & id = 39 "> pozri vyhľadávanie podľa parametrov) bez zmeny schematického diagramu zariadenia a programu.

Obrázok 1. Bloková schéma ovládača I8751

Bloková schéma regulátora je znázornená na obrázku 1 a pozostáva z nasledujúcich hlavných funkčných jednotiek: riadiaca jednotka, aritmetická logická jednotka, jednotka časovača/počítadla, sériové rozhranie a jednotka prerušenia, programové počítadlo, dátová pamäť a programová pamäť. Obojsmerná výmena sa vykonáva pomocou internej 8-bitovej dátovej diaľnice.

Pozrime sa bližšie na účel každého bloku. Takmer všetci predstavitelia rodiny MCS-51 sú postavení podľa tejto schémy.... Rôzne mikroobvody tejto rodiny sa líšia len v účelových registroch (vrátane počtu portov). Sada príkazov pre všetky ovládače rodiny MCS-51 obsahuje 111 základných príkazov s formátom 1, 2 alebo 3 bajty a nemení sa pri prechode z jedného mikroobvodu na druhý. To zaisťuje vynikajúcu prenosnosť programov z jedného mikroobvodu na druhý.

Riadiaca a synchronizačná jednotka

Časová a riadiaca jednotka je určená na generovanie synchronizačných a riadiacich signálov, ktoré zabezpečujú koordináciu spoločnej činnosti jednotiek OEVM vo všetkých prípustných režimoch jej činnosti.Riadiaca jednotka obsahuje:

  • - zariadenie na vytváranie časových intervalov,
  • - I/O logika,
  • - príkazový register,
  • - register kontroly spotreby elektriny,
  • - dekodér príkazov, logika riadenia počítača.

Zariadenie na tvarovanie časových úsekov je určený na vytváranie a vydávanie interných synchronizačných signálov fáz, hodín a cyklov. Počet cyklov stroja určuje trvanie vykonávania inštrukcie. Takmer všetky príkazy OEVM sa vykonávajú v jednom alebo dvoch strojových cykloch, okrem príkazov násobenia a delenia, ktorých trvanie je štyri strojové cykly. Označme frekvenciu hlavného oscilátora F g. Potom je trvanie cyklu stroja 12 / F g alebo 12 periód signálu hlavného oscilátora. Vstupno-výstupná logika je navrhnutá tak, aby prijímala a vydávala signály, ktoré poskytujú výmenu informácií s externými zariadeniami cez vstupné/výstupné porty P0-P3.

Príkazový register je určený na záznam a uloženie 8-bitového operačného kódu vykonávaného príkazu. Operačný kód sa pomocou dekodéra príkazov a počítačovej riadiacej logiky prevedie na mikroprogram na vykonávanie príkazov.

Register kontroly spotreby (PCON) umožňuje zastaviť mikrokontrolér na zníženie spotreby energie a zníženie úrovne hluku z mikrokontroléra. Ďalšie zníženie spotreby energie a zníženie hluku je možné dosiahnuť zastavením hlavného oscilátora mikrokontroléra. Dá sa to dosiahnuť preklopením v registri riadenia spotreby PCON. Pre n-MOS (séria 1816 alebo cudzie mikroobvody bez "c" v strede) obsahuje register riadenia spotreby PCON iba jeden bit, ktorý riadi prenosovú rýchlosť sériového portu SMOD, a neexistujú žiadne bity riadenia spotreby.

Aritmetická logická jednotka (ALU) je paralelné osembitové zariadenie, ktoré vykonáva aritmetické a logické operácie. ALU pozostáva z:

  • - akumulátorové registre, uchovávacie registre TMP1 a TMP2,
  • - ROM konštanty,
  • - sčítačka,
  • - dodatočný register (register B),
  • - batéria (ACC),
  • - register stavu programu (PSW).

Registrovať batérie a vedenie registrov- osembitové registre určené na príjem a ukladanie operandov počas trvania operácií na nich. Tieto registre nie sú programovo prístupné.

ROM konštanty poskytuje generovanie korekčného kódu pre binárno-desiatkovú reprezentáciu dát, kód masky pre bitové operácie a konštantný kód.

Paralelná osembitová sčítačka je kombinačný obvod so sekvenčným prenášaním, určený na vykonávanie aritmetických operácií sčítania, odčítania a logických operácií sčítania, násobenia, nerovnakého a identického.

Registrácia B- osembitový register používaný pri operáciách násobenia a delenia. Pre ďalšie inštrukcie sa naň možno pozerať ako na dodatočný superoperačný register.

Batéria- osembitový register určený na príjem a uloženie výsledku získaného pri vykonávaní aritmeticko-logických operácií alebo operácií posunu

Sériové rozhranie a jednotka prerušenia (PIP) je určený na organizáciu vstupno-výstupných sekvenčných tokov informácií a organizáciu systému prerušovania programov. Blok obsahuje:

  1. - vyrovnávacia pamäť PIP,
  2. - logika ovládania,
  3. - kontrolný register,
  4. - vyrovnávacia pamäť vysielača,
  5. - vyrovnávacia pamäť prijímača,
  6. - transceiver sériového portu,
  7. - register priorít prerušenia,
  8. - register umožňujúci prerušenie,
  9. - logika na spracovanie príznakov prerušenia a obvod generovania vektorov.

Počítadlo programov je navrhnutý tak, aby tvoril aktuálnu 16-bitovú adresu internej programovej pamäte a 8/16-bitovú adresu externej programovej pamäte. Počítadlo inštrukcií obsahuje 16-bitovú vyrovnávaciu pamäť PC, register PC a inkrementačný obvod (zvýšenie obsahu o 1).

Dátová pamäť (RAM) je určený na dočasné ukladanie informácií používaných v procese vykonávania programu.

Porty P0, P1, P2, P3 sú kvázi obojsmerné vstupno-výstupné porty a sú určené na zabezpečenie výmeny informácií medzi počítačom a externými zariadeniami, ktoré tvoria 32 vstupno-výstupných liniek.

Zariadenie s časovačom Základné modely rodiny majú dva programovateľné 16-bitové časovače / počítadlá (T / C0 a T / C1), ktoré možno použiť ako časovače, tak aj ako externé počítadlá udalostí.

Register stavu programu (PSW) určené na ukladanie informácií o stave ALU počas vykonávania programu.

Programová pamäť (EPROM) je určená na ukladanie programov a je to pamäť len na čítanie (ROM). Rôzne mikroobvody používajú ROM masky, vymazateľné ultrafialovým žiarením resp BLESK ROM.

Register údajových ukazovateľov (DPTR) je určený na uloženie 16-bitovej adresy externej dátovej pamäte alebo pamäte programu.

Ukazovateľ zásobníka (SP) je osembitový register určený na organizáciu špeciálnej oblasti dátovej pamäte (zásobníka), v ktorej môže byť dočasne uložená ľubovoľná pamäťová bunka.



Príkazový systém OMEVM poskytuje skvelé možnosti spracovania dát, poskytuje implementáciu logických, aritmetických operácií, ako aj riadenie v reálnom čase. Implementované je bitové, tetradové (4 bitové), bajtové (8 bitové) a 16-bitové spracovanie dát.

LSI rodina MCS-51 - 8-bit ОМЭВМ: ROM, RAM, špeciálne registre, ALU a externé zbernice majú organizáciu bajtov. Dvojbajtové údaje používa iba register ukazovateľov (DPTR) a počítadlo príkazov (PC). Treba poznamenať, že register dátových ukazovateľov môže byť použitý ako dvojbajtový register DPTR alebo ako dva jednobajtové špeciálne registre DPH a DPL. Počítadlo príkazov sa vždy používa ako dvojbajtový register.

Sada príkazov OMEVM má 42 mnemotechnických označení príkazov na konkretizáciu 33 funkcií tohto systému.

Syntax väčšiny príkazov v jazyku symbolických inštancií pozostáva z mnemotechnickej funkcie, za ktorou nasledujú operandy, ktoré označujú metódy adresovania a typy údajov. Rôzne dátové typy alebo režimy adresovania sú určené množinou operandov, nie zmenami v mnemotechnických označeniach.

Príkazový systém možno podmienečne rozdeliť do piatich skupín:

Existujú nasledujúce typy adresovania zdrojových operandov:

  • Nepriame adresovanie registrov súčtom základných a indexových registrov

Tabuľka symbolov a symbolov používaných v príkazovom systéme

Označenie, symbol Vymenovanie
A Batéria
Rn Registre aktuálne vybranej banky registrov
r Číslo načítaného registra zadané v príkaze
priamy Priamo adresovateľná 8-bitová interná adresa dátovej bunky, ktorou môže byť interná dátová RAM bunka (0-127) alebo SFR (128-255)
@Rr Nepriamo adresovateľná 8-bitová bunka internej dátovej RAM
údaje8 8-bitové priame údaje zahrnuté v CPC
dataH Najdôležitejšie bity (15-8) priamych 16-bitových údajov
dataL Najmenej významné bity (7-0) priamych 16-bitových údajov
addr11 11-bitová cieľová adresa
addrL Najmenej významné bity cieľovej adresy
disp8 8-bitový offsetový bajt so znamienkom
trocha Priamo adresovateľný bit, ktorého adresa obsahuje CPC umiestnenú v internej dátovej RAM alebo SFR
a15, a14 ... a0 Bity cieľovej adresy
(NS) Obsah prvku X
((NS)) Obsah na adrese uloženej v prvku X
(X) [M] Výboj M prvku X

+
-
*
A
ALEBO
XOR
/ X
Operácie:
prílohy
odčítanie
násobenie
divízie
logické násobenie (operácia AND)
logické sčítanie (operácia OR)
pridaný mod 2 (exkluzívny OR)
inverzia prvku X

Funkčné mnemotechnické pomôcky sú jednoznačne spojené so špecifickými kombináciami metód adresovania a dátových typov. Celkovo je v systéme príkazov možných 111 takýchto kombinácií. Tabuľka poskytuje zoznam príkazov zoradených abecedne.

Mnemotechnické pomôcky Funkcia Vlajky
Príkaz ACALL Volanie absolútneho podprogramu
Doplnenie AC, C, OV
Noste skladanie AC, C, OV
Tím AJMP Absolútny prechod
logické "A"
Logické "AND" pre variabilné bity C
Porovnajte a skočte, ak nie sú rovnaké C
Príkaz CLR A Reset batérie
Príkaz CLR Trochu sa čistí C, bit
CPL tím A Inverzia batérie
Tím CPL Bitová inverzia C, bit
Tím DA A Akumulátorová desatinná oprava pre sčítanie AC, C
Tím DEC<байт> Dekrementovať
Tím DIV AB divízie C, OV
Tím DJNZ<байт>, <смещение> Zníženie a prechod, ak nie nula
Tím INC<байт> Prírastok
Tím INC DPTR Prírastok ukazovateľa údajov
Tím JB , Skok, ak je nastavený bit
Tím JBC , Ak je bit nastavený, skočte a odstráňte ho
Tím JC Skočte, ak je nastavené prenášanie
JMP @ A + príkaz DPTR Nepriamy prechod
Tím JNB , Skok, ak bit nie je nastavený
Tím JNC Ak nie je nastavené prenášanie, skočte
Tím JNZ Skočiť, ak je obsah batérie nenulový
Tím JZ Skok, ak je obsah akumulátora 0
Príkaz LCALL Dlhý hovor
Tím LJMP Dlhý prechod
Odoslať premenný bajt
Odoslať dátový bit C
Príkaz MOV DPTR, # data16 Ukazovateľ načítania údajov so 16-bitovou konštantou
Príkaz MOVC A, @ A + ( ) Odoslať bajt z pamäte programu
Odosielanie údajov do externej pamäte (z externej pamäte)

Ministerstvo všeobecného a odborného vzdelávania Ruskej federácie Novosibirská štátna technická univerzita V.N. Veprik, V.A. Afanasyev, A.I. Družinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko MIKROKONTROLÉRY RODINY MCS-51 Učebnica pre kurzy "Mikroprocesorové systémy" a "Návrh mikroprocesorových systémov" pre študentov vyšších ročníkov Fakulty automatizácie a počítačovej techniky všetkých foriem vzdelávania Novosibirsk 1997 V.N. Veprik, V.A. Afanasyev, A.I. Družinin, A.A. Zemskov, A.R. Isaev, O.V. Malyavko. Mikrokontroléry MCS-51 Family: Návod. - Novosibirsk. Tento tutoriál obsahuje všeobecný popis architektúry, funkčnosti a inštrukčnej sady jednočipových mikrokontrolérov MCS-51 (Embedded Microcontrollers), vyrábaných spoločnosťou INTEL. Druhá časť príručky poskytuje popis vzdelávacieho mikroprocesorového regulátora UMPK-51, ponúkaného študentom ako objekt skúmania pri vykonávaní cyklu laboratórnych prác. Materiál príručky je možné použiť pri tvorbe kurzov a diplomov a môže byť užitočný aj pre obvodových inžinierov, ktorí sa podieľajú na vývoji a prevádzke elektronických zariadení. Autori vyjadrujú hlbokú vďaku spoločnosti AOZT „New Technologies“ – oficiálnemu distribútorovi INTEL za poskytnutie materiálov, na základe ktorých bola táto práca vykonaná. Tabuľka 15, obr.25, zoznam písmen. 12 titulov Recenzenti: E.D. Baran, G.G. Matuškin. Práca bola vypracovaná na Katedre informatiky, štát Novosibirsk © Technická univerzita 2 ÚVOD. Rodina 8-bitových jednočipových mikrokontrolérov MCS-51 sa objavila na svetovom trhu začiatkom osemdesiatych rokov. Prvé úpravy kryštálov (asi 7) boli vyrobené kvalitnou technológiou n-MOS (HMOS) a išlo o funkčne kompletné jednočipové mikropočítače harvardskej architektúry, ktorých jedným z hlavných princípov je logické oddelenie adresy priestory programovej pamäte a dát. S rozvojom polovodičovej technológie sa následné verzie mikroobvodov MCS-51 začali vyrábať pomocou pokročilejšej a nízkoenergetickej technológie CMOS (CHMOS) (v aktívnom režime sa spotreba kryštálov dostala na 10-50 mA). Riadiaci systém MCS-51, zameraný na implementáciu rôznych digitálnych riadiacich algoritmov, pri zachovaní určitej vonkajšej podobnosti s riadiacim systémom predchádzajúcej rodiny MCS-48, sa kvalitatívne rozšíril, objavili sa v ňom zásadné inovácie: bitovo orientované operácie a adresovateľné bitové polia v dátovej pamäti, ktoré umožnili hovoriť o implementácii bitového procesora na čipe; Implementované vykonávanie príkazov na násobenie, delenie a odčítanie; zlepšená práca so zásobníkom; bola rozšírená skupina príkazov na prenos riadenia; Systém príkazov začal vyzerať symetrickejšie, teda menej závislý na dátových prenosoch cez batériu. Funkčnosť palubných periférií bola tiež rozšírená zavedením: dvoch 16-bitových časovačov / počítadiel; hardvérový sériový duplexný port; dvojúrovňový systém prerušenia; štyri 8-bitové I/O porty. Zásadné zmeny v štruktúre časového cyklu procesora viedli k zrýchleniu práce s externou pamäťou programov a dát, ako aj reakcií na vonkajšie a vnútorné prerušenia. Celková veľkosť adresného priestoru externého programu a dátovej pamäte sa zvýšila na 128 KB. 16-bitové registre Program Counter a Data Pointer umožňovali priamy prístup k celému rozsahu adries, čo dalo vývojárom možnosť implementovať algoritmy na rýchle spracovanie veľkých dátových polí. Všetky softvérovo prístupné uzly mikrokontroléra boli spojené v špeciálnej oblasti dátovej pamäte (Special Function Register), čo umožnilo prístup k nim takmer rovnakým spôsobom ako k bežným bunkám rezidentnej RAM. V neskorších modifikáciách kryštálov išlo vylepšenie cestou zvyšovania dodatočnej funkčnosti pri zachovaní plnej softvérovej kompatibility so staršími verziami. Vlastnosti najnovších modifikácií mikrokontrolérov MCS-51 sú: úplne statický dizajn; 3- a 5-voltové kryštálové verzie; široká škála vstavaných periférnych zariadení; maximálna hodinová frekvencia - 24 MHz; pre jednotlivé skupiny kryštálov - 33 MHz. V súčasnosti MCS-51 obsahuje asi 60 verzií kryštálov, okrem toho je a je dostupná podrobná vlastnícka dokumentácia (bohužiaľ, zatiaľ málo preložená do ruštiny). Na prípravu softvéru pre mikrokontroléry MCS-51 sa používajú najmä jazyky „ASM-51“, „C“, pre ktoré existuje množstvo osvedčených kompilátorov, knižníc štandardných podprogramov a softvérových emulátorov vyrábaných rôznymi zahraničnými a domáce firmy. 3 Napriek dostatočnej "starobylosti" rodiny (viac ako 15 rokov) a objaveniu sa na svetovom trhu v posledných rokoch jednočipových mikrokontrolérov vyššieho výkonu a vylepšenej architektúry - MCS-51, MCS-251, MCS-96, Kontroléry MCS-51 budú široko používané v relatívne jednoduchých vstavaných riadiacich systémoch. 4 1. SYSTÉM OZNAČOVANIA KOMPONENTOV PODĽA INTEL A FUNKČNÉ ZLOŽENIE RODINY MCS-51 Na označovanie mikroobvodov spoločnosťou INTEL sa používa systém označenia niekoľkých polí: 1 2 3 4 ХХ ХХХХХХХХХХХХХ ХХХХХХХХХХХХХ Automobilový priemysel: , automobilová verzia pre rozšírený teplotný rozsah (-40 / + 125 C) M (vojenská), verzia podľa vojenských noriem (-55 / + 125 C) Q alebo C (komerčná), "komerčný" teplotný rozsah (0 / + 70 C ) s (160 8) - hodinový dynamický tepelný tréning; L alebo E (Extended), "rozšírený" teplotný rozsah (-40 / + 85 C) s (160 8) - hodinový dynamický tepelný tréning; Т (Extended), "rozšírený" teplotný rozsah (-40 / + 85 С) bez tepelného tréningu; I (Industrial), prevedenie podľa priemyselných noriem. Druhé pole obsahuje jedno- alebo dvojpísmenovú predponu označujúcu typ balenia mikroobvodu (Package Type). V súčasnosti existuje niekoľko desiatok rôznych typov balíkov mikroobvodov, preto ako príklad uvedieme len niektoré označenia: A Ceramic Pin Grid Array, (PGA); C Keramický Dual In-Line Package, (CDIP); K Ceramic Quad Flatpack Package, (QFP); Balenie KD Plastic Quad Flatpack, jemné rozstupy, utlmenie, (PQFP); Balenie KU Plastic Quad Flatpack, Fine Pitch, Die Up, (PQFP); N plastový olovený nosič čipov, (PLCC); P Plastové dvojradové balenie, (PDIP); SM Single In-Line Leadless Memory Module, (SIMM); U Plastové dvojradové balenie, zmršťovacie ponorenie, (PDIPS); Z cikcakový radový balík (ZIP). Tretie pole môže obsahovať až 15 číselných a abecedných znakov označujúcich typ konkrétneho zariadenia umiestneného na čipe. Štvrté pole môže obsahovať až šesť číselných a abecedných znakov, ktoré odrážajú rôzne vlastnosti a verzie mikroobvodov. Ďalšie informácie o typoch obalov a ich dizajne nájdete v knihe: Objednávacie číslo balenia 240800. Vzhľadom na popisované mikrokontroléry rodiny MCS-51 sa prvý znak tretieho poľa tradične (pre Intel) rovná "8". Druhý znak tretieho poľa zvyčajne označuje typ vstavanej ROM: 0 maskovaná ROM programov; kryštál bez ROM (pre neskoršie verzie kryštálov); 1 maska ​​ROM programov (štandardný kód ROM, firmvér); 3 maska ​​ROM (pre novšie kryštálové verzie), (prispôsobiteľný ROM kód); 7 UVROM alebo jednorazovo programovateľná ROM (EPROM alebo OTP ROM); 8 EEPROM (Flash - pamäť na čipe) Ďalej môže nasledovať písmeno označujúce technologické vlastnosti výroby: bez písmena technológia HMOS, napájanie 5V; S technológiou CHMOS, napájanie 5V; L technológia CHMOS, napájanie 3V; 5 Ďalšími znakmi tretieho poľa pre mikrokontroléry MCS-51 sú čísla (napríklad 31,32,51,54,58,152) a od jedného do štyroch písmen, ktoré odrážajú funkčné vlastnosti kryštálov (napríklad veľkosť ROM , špecifiká skupiny kryštálov, systémová ochrana programovej pamäte pred neoprávneným prístupom, možnosť použiť pokročilejší programovací algoritmus „Quick Pulse“ a podobne). V pôvodnej technickej dokumentácii Intelu sú všetky mikrokontroléry MCS-51 usporiadané do skupín ("Produktový rad"), z ktorých každá spája kryštálové verzie, ktoré sú svojou funkčnosťou a elektrickými parametrami najbližšie. Keďže názvy mikroobvodov jednej skupiny sa mierne líšia, na označenie každej jednotlivej skupiny sa používa všeobecná symbolika vytvorená z označenia konkrétnych mikroobvodov nahradením rôznych znakov znakom „X“. Takto možno rozlíšiť nasledujúce skupiny mikrokontrolérov. 1. Skupina 8Х5Х (produktový rad 8051 a produktový rad 8052): 8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032ВА, 8032ВА2Н,8 2. Skupina 8ХС51 (80С51 produktový rad): 80С31ВН, 80С51ВН, 87С51. 3. Skupina 8ХС5Х (8ХС52 / 54/58 Produktový rad): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58. 4. Skupina 8XC51FX (8XC51FA / FB / FC produktový rad): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. Skupina 8ХL5X (8XL52 / 54/58 Produktový rad): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. Skupina 8XL51FX (8XL51FA / FB / FC Produktový rad): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. Skupina 8XC51RX (8XC51RA / RB / RC Produktový rad): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. Skupina 8XC51GB (produktový rad 8XC51GX): 80C51GB, 83C51GB, 87C51GB. 9. Skupina 8XC152JX (produktový rad 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. Skupina 8XC51SL (produktový rad 8XC51SL): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-BG, 87C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-BG, 87C51SL-CAL51AH, 87C51SL-BG,C51SL-BG,C . Prvá skupina mikrokontrolérov zahŕňa juniorské modely rodiny, vyrobené pomocou technológie n-MOS a neodporúča sa používať v nových dizajnoch, všetky ostatné skupiny sú vyrobené pomocou modernej technológie CMOS. Mikroobvody druhej, tretej a štvrtej skupiny sú dnes klasickými predstaviteľmi rodiny MCS-51. Piata a šiesta skupina zahŕňa 3-voltové verzie kryštálov (Low-Voltage). Kryštály siedmej skupiny sú vybavené rozšírenou pamäťou RAM (Expanded RAM), ktorej objem je 512 bajtov. Mikroobvody ôsmej, deviatej a desiatej skupiny sú mikrokontroléry špecifické pre aplikáciu (Application Specific). Mnoho moderných aplikácií vyžaduje vysokovýkonné MCU, ktoré využívajú pokročilé možnosti adresovania, architektúru registrov, veľké množstvo internej pamäte RAM a zásobníka a efektívne podporujú programovanie na vysokej úrovni. Medzi tieto mikrokontroléry patria mikrokontroléry New Architecture MCS-5 a MCS-251, ktoré Intel začal vyrábať v roku 1995. Funkčné zloženie a kľúčové vlastnosti mikrokontroléra MCS-51 / MCS-251 sú uvedené v prílohe. 6 2. ZÁKLADNÉ CHARAKTERISTIKY ZÁKLADNÉHO MODELU RODINY MIKROKONTROLÉROV MCS-51. Základným modelom rodiny mikrokontrolérov MCS-51 a základom pre všetky následné úpravy je mikrokontrolér I-8051. Jeho hlavné vlastnosti sú nasledovné: osembitový CPU optimalizovaný pre riadiace funkcie; vstavaný generátor hodín; adresný priestor programovej pamäte - 64 K; adresný priestor dátovej pamäte - 64 K; interná programová pamäť - 4K; interná dátová pamäť - 128 bajtov; ďalšie možnosti vykonávania operácií booleovskej algebry (bitové operácie); 32 obojsmerných a individuálne adresovateľných I/O liniek; 2 16-bitové multifunkčné časovače / počítadlá; plne duplexný asynchrónny transceiver; vektorový systém prerušenia s dvoma úrovňami priority a šiestimi zdrojmi udalostí. Bloková schéma I-8051 je na obr.1, priradenie pinov mikroobvodu na obr.2. Externé prerušenia Prerušenia 128 bajtov Čítač T / C 0 4K Riadenie ROM RAM T / C 1 vstupy CPU BUS 4 I/O Sériové riadenie OSC Porty Port P0 P1 P2 P3 T D R D Adresa / Dáta Obr. Bloková schéma I-8051 Celá séria MCS-51 má architektúru Harvard, to znamená samostatné adresné priestory pre pamäť programu a dáta. Organizácia pamäte je znázornená na obr. Množstvo internej (rezidentnej) programovej pamäte (ROM, EPROM alebo OTP ROM) umiestnenej na čipe v závislosti od typu mikroobvodu môže byť 0 (bez ROM), 4K (základný kryštál), 8K, 16K alebo 32K. V prípade potreby môže používateľ rozšíriť pamäť programu inštaláciou externej pamäte ROM. Prístup k internej alebo externej ROM je určený hodnotou signálu na pine EA (External Access): EA = Vcc (napájacie napätie) - prístup k internej ROM; EA = Vss (zemný potenciál) - prístup k externej ROM. Pre kryštály bez ROM (ROMless) musí byť pin EA trvalo pripojený k Vss. Externá čítačka ROM - PS EN (Program Store Enable) sa generuje pri prístupe do externej programovej pamäte a je neaktívna pri prístupe k ROM umiestnenej na čipe. 7 Oblasť nižších adries programovej pamäte využíva systém prerušenia, architektúra mikroobvodu 8051 poskytuje podporu pre päť zdrojov prerušení: dve externé prerušenia; dve prerušenia od časovačov; prerušenia zo sériového portu. P1,0 1 40 Vcc P1,1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0,5 (AD5) P1,7 8 33 P0,6 (AD6) RESET 9 32 P0,7 (AD7) (RD) P3,0 10 31 EA / Vpp (TD) P3,1 11 30 ALE / PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) Vss 20 21 P2.0 (A8) Obr. Priradenie pinov I-8051 Programová pamäť (Čítanie) Dátová pamäť (Čítanie / Zápis) FFFFH Externá ROM FFFFH Externá @DPTR RD pamäť PSEN WR dáta @PC MOVC EA = 0 Interná pamäť @DPTR dáta @PC Externá interná FFH horná 128 SFR MOVX ROM ROM 80H EA = 0 0000H EA = 1 spodná 128 00H 0000H PSEN Obr. Organizácia pamäte rodiny MCS-51 8 Obrázok 4 zobrazuje mapu spodnej oblasti pamäte programu. ROM Programová pamäť 0033H 002BH Sériový port 0023H Vector Timer1 001BH preruší EINT1 0013H Timer0 000BH EINT0 0003H Štartovacia adresa 0000H (Reset) Obr. Pamäť programu Adresy vektorov prerušenia sú umiestnené v intervaloch po 8 bajtoch: - 0003H externé prerušenie 0 (External Interrupt 0) - pin IN T 0; - 000BH prerušenie od časovača 0 (príznakom pretečenia časovača - T F 0); - 0013H externé prerušenie 1 - IN T 1 pin; - 001BH prerušenie od časovača 1 (príznakom pretečenia časovača - T F 1); - 0023H prerušenie zo sériového portu (Sériové prerušenie = prerušenie príjmu alebo prerušenie prenosu); atď. Dátová pamäť je oddelená od pamäte programu. V tejto oblasti je možné 64K externé adresovanie RAM. Pri prístupe k externej dátovej pamäti CPU mikrokontroléra generuje zodpovedajúce signály čítania (RD) alebo zápisu (WR), interakcia s internou dátovou pamäťou sa vykonáva na úrovni príkazov, zatiaľ čo signály RD a W R sa negenerujú. Externú programovú pamäť a externú dátovú pamäť je možné skombinovať spojením AND signálov R D a PS EN, čím sa vytvorí blesk externej pamäte (program / dáta). Spodných 128 bajtov internej dátovej pamäte (dolných 128) je prítomných na všetkých matriciach MCS-51 a sú znázornené na obrázku 5. Prvých 32 bajtov predstavuje 4 banky (banka registrov) s 8 registrami (R7 ... R0). Registre R0 a R1 v ktorejkoľvek z bánk možno použiť ako nepriame registre adries. 16 bajtov za bankami registrov tvorí blok bitovo adresovateľného priestoru. Inštrukčná sada MCS-51 obsahuje širokú škálu bitových operácií a 128 bitov v tomto bloku je priamo adresovateľných a adresy sú v rozsahu od 00H do 7FH. Všetky bajty v spodnej 128-bajtovej polovici pamäte môžu byť adresované priamo alebo nepriamo. Horná 128 bajtová polovica pamäte RAM (horných 128) v čipe I-8051 absentuje, no je dostupná vo verziách kryštálov s 256 bajtmi RAM. V tomto prípade je oblasť „Horných 128“ k dispozícii len na nepriame adresovanie. Oblasť SFR (Special Function Register) je dostupná len s priamym adresovaním. Usporiadanie registrov špeciálnych funkcií v priestore SFR je znázornené na obr. Patria sem registre portov, časovače, ovládacie prvky periférnych zariadení atď. 9 HB 7FH Byte adresovateľná oblasť RAM 30H (priama, nepriama) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 05H 72H 73H 01HH 71H 70HH bajtová oblasť priama (priama 71H 70H Byte-adresná oblasť) 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP po RESETOVANÍ 00H RB0 (R7 + R0) Obr. Spodných 128 bajtov vnútornej pamäte RAM. PH bitové adresovanie 8 bajtov F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H A8H IE AFH A0H P2 A7H S98F DPTH CONTH/0H 98F SPRTH 8 1/9 2 / A 3 / B 4 / C 5 / D 6 / E 7 / F Obr. Umiestnenie registrov špeciálnych funkcií v priestore SFR. Pre 16 adries v priestore SFR je možné bajtové aj bitové adresovanie. V prípade bitovo adresovateľných registrov sa hexadecimálna adresa končí na „0H“ alebo „8H“. Bitové adresy v tejto oblasti sa pohybujú od 80H do FFH. Celá séria kryštálov rodiny MCS-51 má základnú sadu SFR, ako v mikroobvode I-8051, umiestnenú na rovnakých adresách. V kryštáloch, ktoré sú ďalším vývojom rodiny v regióne SFR, však pribúdajú nové registre na rozšírenie 10