Programovanie MK portov v jazyku C 51. Mikrokontroléry MCS–51: programový model, štruktúra, príkazy. Režim čítania portov

Základná verzia MCS–51 Stručná informácia. Moderné 8-bitové mikrokontroléry (MC) disponujú takýmito riadiacimi prostriedkami v reálnom čase, pre ktoré sa predtým používali drahé viacčipové rozloženia vo forme samostatných mikropočítačových dosiek, a to:

● mať dostatočnú kapacitu pamäte, jej fyzické a logické členenie na pamäť programu a dátová pamäť(Harvardská architektúra) a príkazový systém zameraný na vykonávanie riadiacich algoritmov;

● zahŕňať všetky zariadenia (procesor, ROM, RAM, vstupné/výstupné porty, systém prerušenia, prostriedky na spracovanie bitových informácií atď.) potrebné na implementáciu minimálneho konfiguračného mikroprocesorového riadiaceho systému. V 70. rokoch minulého storočia spol Intel bola vyvinutá a do priemyselnej výroby uvedená rodina 8-bitových mikrokontrolérov MCS-48, ktoré spája rad spoločných vlastností (bitová kapacita, príkazový systém, sada hlavných funkčných blokov atď.). Základná verzia tejto rodiny obsahuje:

● 8-bitový procesor;

● interná programová pamäť (1/2/4K bajtov);

● interná dátová pamäť (64/128/256 bajtov);

● až 27 interných a 16 externých I/O liniek;

● jeden 8-bitový časovač;

● jednoúrovňový systém prerušenia s dvoma zdrojmi požiadaviek. V roku 1980 tá istá spoločnosť vyvinula novú rodinu osembitových mikrokontrolérov MCS-51, ktorá je kompatibilná s architektúrou rodiny MCS-48, ale má väčšie možnosti.

Architektúra rodiny MCS-51 sa ukázala byť natoľko úspešná, že je stále jedným zo štandardov pre 8-bitové MK. Preto boli predmetom štúdia mikrokontroléry tejto rodiny, ktoré majú široké využitie v relatívne jednoduchých riadiacich systémoch.

Pre rodinu MCS-51 boli vyvinuté rôzne nástroje na prípravu programov (kompilátory, hardvérovo-softvérové ​​emulátory atď.) a existuje veľké množstvo knižníc štandardných rutín. Rodina obsahuje rôzne modifikácie mikroobvodov (verzie čipov) mikrokontrolérov. Články v tejto časti podrobne pojednávajú o základnej verzii mikrokontrolérov rodiny MCS-51 (mikroobvod 8051 zodpovedá domácemu analógu KP1816BE51), najjednoduchších z hľadiska štruktúry a funkčnosti az hľadiska pochopenia.

Následná séria mikroobvodov sa pri zachovaní kompatibility so základnou verziou od nej líši vylepšenou výrobnou technológiou, elektrické parametre, prídavný hardvér a funkčnosť. Nasledujúce články sú venované štrukturálnym a funkčným vlastnostiam následných úprav rodiny mikroobvodov MCS-51.
Zovšeobecnená bloková schéma MCS-51. Zloženie MC, ktorého zovšeobecnený blokový diagram je znázornený na obr. 7.1.1 zahŕňa:

● 8-bitový CPU CPU pozostávajúce z ALU, ovládacie zariadenia UU a generátor adries F;

● maskovať ROM s kapacitou 4K bajtov na ukladanie programov;

● RAM s kapacitou 128 bajtov na ukladanie dát;

● štyri programovateľné porty P0–P3 pre vstup– informačný výstup;

● blokovať sériové rozhranie BPI na výmenu informácií s externými zariadeniami cez dvojvodičovú linku;

● blok BT/C časovačov/počítačov na udržanie režimu v reálnom čase;

● Blok prerušení BP na organizovanie prerušení spustiteľných programov. Tieto fondy tvoria rezidentčasť mikrokontroléra umiestnená priamo na čipe. MK obsahuje veľké množstvo registrov, ktoré sú priradené k samostatným funkčným blokom a nie sú znázornené v schéme.

Schéma tiež nezobrazuje riadiace obvody. Obojsmerná výmena informácií medzi blokmi sa uskutočňuje cez interný 8-bit dátová zbernicaШД-8.

Interným 16-bitovým adresná zbernicaША-16 Adresa vygenerovaná v CPU je odoslaná do ROM (12 bitov adresy) a do RAM (8 bitov nižšieho rádu).

Pri použití externej pamäte sa 8 najmenej významných bitov adresy odošle na port P0 a 3 alebo 8 najvýznamnejších bitov na port P2.

Pre logické rozšírenie rozhrania sa používa kombinovanie funkcií portových liniek. Ako príklad na obr. 7.1.1 bodkovaná čiara zobrazuje riadky portu P3, ktoré fungujú alternatíva funkcie prenosu riadiacich signálov, ktorých účel bude diskutovaný nižšie. Na vytvorenie vnútorného generátora hodín je na svorky mikroobvodu MK pripojený kremenný rezonátor a dva kondenzátory (obr. 7.1.1). Namiesto interného generátora hodín možno na synchronizáciu použiť externý zdroj kmitov. Podmienené grafické označenie Mikroobvody MK sú znázornené na obr. 7.1.2, označenie a účel kolíkov - v tabuľke. 7.1.1. Uvažujme o funkčných blokoch MK a princípe ich fungovania. Aritmetický logický prístroj. Aritmetický logický prístroj je určený na vykonávanie aritmetických (vrátane násobenia a delenia) a logických operácií na osembitových operandoch, ako aj operácií logického posunu, nulovania, nastavovania atď. Bloková schéma ALU je znázornená na obr. 7.1.3.

ALU zahŕňa

● paralelný osembitový sčítačka SM kombinačného typu so sekvenčným prenášaním, vykonávajúce aritmetické (sčítanie a odčítanie) a logické (sčítanie, násobenie, disparita a identita) operácie;

batéria A, poskytovanie funkcií hlavného aritmetického registra;

Registrovať B, slúžiace na realizáciu operácií násobenia a delenia alebo ako doplnkový superoperačný register, ktorého funkcie určuje užívateľ;

registrov(softvér nie je k dispozícii) dočasné uskladnenieРВХ1, РВХ2, určené na príjem a ukladanie operandov počas trvania operácie;

● ROM konštanty ROM, v ktorej je uložený opravný kód pre binárne desiatkové znázornenie dát, kód masky pre bitové operácie a kód pre konštanty;

register stavových slov programu PSW, ktorý zaznamenáva stav ALU po vykonanej operácii. V tabuľke 7.1.2 poskytuje informáciu o priradení bitov jednotlivých bitov registra PSW. Ovládacie zariadenie. Riadiaca jednotka (CU) centrálneho procesora zamýšľané pre koordináciu spolupráce všetky uzly MK pomocou generovaných hodinových impulzov a riadiacich signálov. Pozostáva z (obr. 7.1.4):

synchronizačná a riadiaca jednotka Riadiaci systém, ktorý generuje hodinové impulzy, ktoré definujú cykly stroja a ich jednotlivé stavy (S) a fázy (P), a v závislosti od prevádzkového režimu mikrokontroléra generuje potrebnú sadu riadiacich signálov. Na vykonanie príkazu je potrebný jeden, dva alebo štyri strojové cykly.

Každý strojový cyklus má šiestich štátov S1–S6, A každý štát obsahuje dve fázy P1, P2, ktorých trvanie je perióda kmitania hodinového generátora T 0SC.

Trvanie cyklu stroja je 12T 0SC. Všetky cykly stroja sú rovnaké, počnúc fázou S1P1 a končiac fázou S6P2.

Okrem hodinových impulzov generuje synchronizačné zariadenie dva (niekedy jeden) hradlovacie signály pre spodný bajt adresy ALE v každom cykle stroja vo forme kladného impulzu vo fázach S1P2–S2P1 a S4P2–S5P1. Časové diagramy na obr. 7.1.5 znázorňuje organizáciu cyklov stroja;

● príkazový register RK, príkazový dekodér DC a PLM, umožňujúce v každom cykle stroja generovať súbor mikrooperácií v súlade s mikroprogramom vykonávaného príkazu;

● vstupno/výstupná logika LVV pre príjem a vydávanie signálov, ktoré zabezpečujú výmenu informácií z MK s externými zariadeniami cez porty P0–P3;

● Register PCON, ktorý má jeden povolený bit SMOD na pozícii PCON.7 na zdvojnásobenie prenosovej rýchlosti sériového portu. Zvyšné bity sú rezervované pre neskoršie použitie.
Generátor adries. Generátor adries (FA) alebo počítadlo príkazov PC, zamýšľané na vytvorenie aktuálnej 16-bitovej adresy programovej pamäte a 8/16-bitovej adresy externej dátovej pamäte. Pozostáva z (obr. 7.1.6):

● 16-bitový vyrovnávacia pamäť B, ktorá komunikuje medzi 8-bitovou dátovou zbernicou SD a 16-bitovou internou zbernicou (IB) tvorcu adresy;

● Obvod prírastku SI na zvýšenie hodnoty aktuálnej adresy pamäť programu za jednotku;

● register na ukladanie aktuálnej adresy príkazov PTA prichádzajúcich z SI;

● register dátových ukazovateľov DPTR , pozostávajúci z dvoch 8-bitových registrov DPH a DPL. Slúži na uloženie 16-bitovej adresy externej dátovej pamäte a môže byť použitý ako dva nezávislé softvérovo prístupné RON;

● register generátora XRF adries na uloženie výkonnej 16-bitovej adresy programovej pamäte alebo 8/16-bitovej adresy externej dátovej pamäte. Tento register sa používa aj na prenos údajov cez port P0 na externých zariadení pri vykonávaní príkazov MOVX @Rm, A a MOVX @DPRT, A.

Dátová pamäť. Dátová pamäť zamýšľané na príjem, ukladanie a vydávanie informácií používaných počas vykonávania programu. Vnútornú (rezidentnú) dátovú pamäť (obr. 7.1.7) tvorí RAM s kapacitou 128 bajtov, ukazovateľ zásobníka S.P. register adries RAM RA a dekodér Dsh. Ukazovateľ zásobníka SP je 8-bitový register určený na príjem a uloženie adresy bunky zásobníka, ku ktorej sa naposledy pristupovalo. Po resete sa ukazovateľ zásobníka nastaví na adresu 07H, čo zodpovedá začiatku zásobníka s adresou 08H. Adresový register PA spolu s dekodérom Dsh umožňuje prístup k požadovanej pamäťovej bunke obsahujúcej bajt alebo bit informácie.

MK poskytuje možnosť zväčšiť kapacitu dátovej pamäte až na 64 KB pripojením externé úložné zariadenia. Ako príklad na obr. 7.1.8 zobrazuje organizáciu stránky externej dátovej pamäte VPD s kapacitou 2K bajtov pomocou príkazov typu MOVX @ Rm (m = 0; 1). V tomto prípade port P0 funguje ako multiplexná adresová/dátová zbernica, tri linky portu P2 sa používajú na adresovanie stránky externej pamäte RAM a zvyšných päť liniek možno použiť ako vstupné/výstupné linky.
Na obr. 7.1.9 ukazuje časové diagramy cyklov čítania a zápisu, keď MK pracuje s externou RAM. Diagramy naznačujú:

● RSN - vysoký bajt počítadla príkazov PC;

● DPL, DPH - nízke a vysoké bajty registra ukazovateľa údajov DPTR, ktorý sa používa ako register na nepriame adresovanie v príkazoch MOVX @DPTR,A a MOVX A,@DPTR;

● P2 SFR - západky portu P2;

● Rm (m = 0, 1) - registre používané v inštrukciách MOVX @Rm, A a MOVX A, @Rm ako registre nepriamych adries;

● Z - stav vysokého odporu;

● D - doba, počas ktorej sa do mikrokontroléra vkladajú dáta z portu P0. Pamäť programu. Programová pamäť je určená na ukladanie programov, má vlastný (oddelený od dátovej pamäte) adresný priestor a je len na čítanie. Obsahuje Dsh dekodér a ROM (obr. 7.1.10). Na adresovanie programovej pamäte sa používa 16-bitové PC počítadlo, takže jej maximálna kapacita je 64K bajtov. Vnútornú programovú pamäť tvorí 4K byte ROM a 12-bitový dekodér. Externá pamäť sa pripája podľa schémy na obr. 7.1.11. Ak je na kolík „EA“ MK privedené napätie 0 V (ako je znázornené na obr. 7.1.11), vnútornú pamäť programy sú zakázané. Všetky prístupy do pamäte začínajú na adrese 0000h. Keď je kolík ¯EA pripojený k zdroju napájania, automaticky sa spustí prístup do internej programovej pamäte na adresách 0000h–FFFFh a do externej programovej pamäte na adresách 0FFFh–FFFFh.

Na čítanie externej pamäte programov MK sa generuje signál ¯PSEN. Pri práci s internou pamäťou sa čítací signál nepoužíva. Pri prístupe k externej programovej pamäti sa vždy vytvorí 16-bitová adresa. Nízky bajt adresy sa prenáša cez port P0 v prvej polovici strojového cyklu a je fixovaný prerušením ALE stroboskopu v registri.V druhej polovici cyklu sa port P0 používa na zadanie bajtu dáta z externej pamäte do MK.

Najvýznamnejší bajt adresy sa prenáša cez port P2 počas celého času prístupu do pamäte.

Časové diagramy cyklov čítania a zápisu, keď MK pracuje s externou RAM, sú znázornené na obr. 7.1.12.
Diagramy naznačujú:

● PCL OUT - výstup dolného bajtu počítadla PC programov;

● RSN OUT - výstup vysokého bajtu počítadla príkazov PC;

● DPH - vysoký bajt registra ukazovateľa dát DPTR, ktorý sa používa ako register na nepriame adresovanie v inštrukciách MOVX @DPTR,A a MOVX A,@DPTR;

● P2 SFR - západky portu P2;

● INS IN - vstup bajtu inštrukcie (príkazu) z pamäte programu;

● ADDR OUT - vydanie dolného bajtu adresy externej dátovej pamäte z registrov Rm (m = 0, 1) alebo z registra DPL (dolný register DPTR). I/O porty. Priradenie portu. Porty P0, P1, P2, P3 zamýšľané na výmenu informácií medzi MK a externými zariadeniami a tiež na vykonávanie nasledujúcich funkcií:

● dolný bajt adresy A7…A0 je na výstupe cez port P0; pri práci s externou programovou pamäťou a externou pamäťou údajov (časovo oddelená) je z MK vyvedený dátový bajt a vložený do MK;

● cez port P2 je pri práci s externou programovou pamäťou a externou dátovou pamäťou vyvedený vysoký bajt adresy A15...A8 (iba pri použití príkazov MOVX A,@DPTR a MOVX @DPTR,A);

● linky portu P3 je možné použiť na vykonávanie alternatívnych funkcií, ak je v latch tejto linky zadaná 1, v opačnom prípade je na výstupe linky pevná 0. Alternatívne funkcie pinov portu P3 sú uvedené v tabuľke. 7.1.3.

Obvodové vlastnosti portov

Na obr. 7.1.13 ukazuje schémy pre jeden kanál každého z portov MK, vrátane:

● západka na fixáciu bitu prijatých dát;

● výstupný zosilňovač kaskáda(vodič);

● uzol spojenie s koncový stupeň (okrem P2);

● obvod na prenos dátového bitu z výstupnej strany portu pozostávajúci z vyrovnávacích pamätí B2 a B3 (pre port P4). Blokovanie je D-flip-flop, taktovaný interným signálom „Write to latch“. Dátový bit z priameho výstupu klopného obvodu D je možné načítať programovo cez vyrovnávaciu pamäť B1 pomocou signálu „Read Latch“ na linku internej dátovej zbernice (ID) MK.

Výstupný stupeň port P0 je invertor, ktorého vlastnosti sa prejavujú v tom, že záťažový tranzistor VT2 sa otvára iba pri prístupe k externej pamäti (pri prenose adries a údajov cez port). Vo všetkých ostatných režimoch je záťažový tranzistor uzavretý. Preto pre použitie P0 (obr. 7.1.13, a) ako univerzálneho výstupného portu je potrebné na jeho svorky pripojiť externé záťažové odpory. Pri zápise 1 na západku portu sa invertorový tranzistor VT1 zablokuje a externý pin portu P0.X sa prepne do stavu vysokého odporu. V tomto režime môže výstup portu P0.X slúžiť ako vstup. Ak sa port P0 používa ako všeobecný I/O port, každý z jeho kolíkov P0.X môže nezávisle fungovať ako vstup alebo výstup. Výstupné stupne porty P1, P2, P3 (obr. 7.1.13, b, c, d) vyrobené podľa invertorových obvodov s vnútorným zaťažovacím odporom, ktorý sa používa ako tranzistor VT2.

Aby sa skrátil čas spínania pri prechode kolíkov portu zo stavu 0 do stavu 1, paralelne so záťažovým tranzistorom VT2 bol zavedený dodatočný tranzistor VT3. Tranzistor VT3 sa pomocou prvkov v obvode hradla odblokuje na dobu rovnajúcu sa dvom periódam oscilácie hlavného kremenného oscilátora (počas fáz S1P1, S2P2 cyklu stroja). Výstupné stupne porty P0, P2 (obr. 7.1.13, A, c) pomocou MX multiplexera je možné pripojiť buď na latche alebo na interné zbernice „Adresa/dáta“ a „Adresa“. Výstupný stupeň portu P1 (obr. 7.1.13, 6) je trvalo pripojený k západke.

Ak je kolík portu P3 výstup a jeho západka obsahuje 1, potom je jeho koncový stupeň riadený hardvérom interný signál"Alternatívna výstupná funkcia" zabezpečujúca vykonávanie zodpovedajúcej alternatívnej funkcie, t.j. jeden zo signálov ¯WR, ¯RD alebo RxD je generovaný na externom kolíku. Ak je výstup portu použitý ako vstup, potom sa k nemu prichádzajúci alternatívny signál (TxD, ¯INT0, ¯INT1, T0, T1) prenáša na internú linku „Funkcia alternatívneho vstupu“.

Režim nahrávania portu.

Keď sa vykoná príkaz zápisu portu, nová hodnota sa zapíše do latch vo fáze S6P2 a odošle sa priamo na výstupný kolík portu vo fáze S1P1 nasledujúceho strojového cyklu.

Režim čítania portov

Príkazy na čítanie portov čítajú informácie priamo z externých pinov portu alebo z výstupov latch. V prvom prípade sa dátový bit z pinu portu načíta programovo cez vyrovnávaciu pamäť B2 pomocou signálu „Read Pins“ na linku internej dátovej zbernice (SD) MK. Všimnite si, že signály „Write to latch“, „Read latch“, „Read pins“ sa generujú v hardvéri, keď sa vykonajú príslušné príkazy.

V druhom prípade je implementovaný takzvaný režim „Read-Modify-Write“, v ktorom príkaz načíta signál stavu latch, v prípade potreby ho upraví a potom ho zapíše späť do latch. Režim „Čítanie-Modify-Zápis“ sa implementuje pri vykonávaní nasledujúcich príkazov: ANL, ORL, XRL, JBC; CPL; INC; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Čítanie informácií z výstupov zámkov vám umožňuje eliminovať chyby pri interpretácii logickej úrovne na kolíku portu. Prečítajte si pokračovanie článku.

Architektúru rodiny MCS-51 do značnej miery určuje jej účel – konštrukcia kompaktný A lacno digitálnych zariadení. Všetky funkcie mikropočítača sú implementované pomocou jedného mikroobvodu. Rodina MCS-51 zahŕňa celý rad mikroobvodov od najjednoduchších mikrokontrolérov až po celkom zložité. Mikrokontroléry rodiny MCS-51 umožňujú vykonávať riadiace úlohy pre rôzne zariadenia a implementovať jednotlivé komponenty analógový obvod. Všetky mikroobvody tejto rodiny fungujú s rovnakým príkazovým systémom, väčšina z nich sa vykonáva v identických prípadoch s zodpovedajúce pinout(číslovanie nôh pre telo). To vám umožňuje použiť pre vyvíjané zariadenie mikroobvody od rôznych výrobcov (napríklad Intel, Dallas, Atmel, Philips atď.). bez prepracovania schematický diagram zariadení a programov.

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, aritmeticko-logická jednotka, jednotka časovača/počítadla, jednotka sériového rozhrania a prerušenia, programové počítadlo, dátová pamäť a programová pamäť. Obojsmerná komunikácia prebieha pomocou internej 8-bitovej dátovej zbernice. Pozrime sa bližšie na účel každého bloku. Takmer všetci členovia rodiny MCS-51 sú postavené podľa tejto schémy. Rôzne mikroobvody tejto rodiny sa líšia iba v účelových registroch (vrátane počtu portov). Príkazový systém všetky ovládače rodina MCS-51 obsahuje 111 základné príkazy s formátom 1, 2 alebo 3 bajty a nemení sa pri prechode z jedného čipu na druhý. To zaisťuje vynikajúcu prenosnosť programu z jedného čipu 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 prevádzky jednotiek sálového počítača vo všetkých prípustných režimoch jej činnosti. Riadiaca jednotka obsahuje:

  • zariadenie na vytváranie časových intervalov,
  • vstupno-výstupná logika,
  • príkazový register
  • register energetického manažmentu,
  • dekodér príkazov, logika riadenia počítača.

Zariadenie na tvarovanie časových intervalov určené na generovanie a vydávanie interných hodinových signálov fáz, hodín a cyklov. Počet cyklov stroja určuje trvanie pokynov. Takmer všetky počítačové príkazy sa vykonávajú v jednom alebo dvoch strojových cykloch, okrem inštrukcií násobenia a delenia, ktorých trvanie je štyri strojové cykly. Frekvenciu hlavného oscilátora označme F g. Potom sa trvanie cyklu stroja rovná 12/F g alebo je 12 periód signálu hlavného oscilátora. I/O logika je určená na príjem a výstup signálov, ktoré zabezpečujú výmenu informácií s externými zariadeniami cez vstupno/výstupné porty P0-P3.

Príkazový register navrhnutý na zaznamenávanie a ukladanie 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 na vykonanie príkazu.

Register riadenia dopytu (PCON) umožňuje zastaviť mikrokontrolér, aby sa znížila spotreba energie a znížila úroveň rušenia mikrokontrolérom. Ešte väčšie zníženie spotreby energie a rušenia je možné dosiahnuť zastavením hlavného oscilátora mikrokontroléra. To sa dá dosiahnuť prepínaním bitov registra riadenia spotreby PCON. Pri výrobnom variante n-MOS (séria 1816 alebo cudzie čipy, ktoré nemajú uprostred názvu písmeno „c“) obsahuje register riadenia spotreby PCON iba jeden bit, ktorý riadi prenosovú rýchlosť sériového portu SMOD a neexistujú žiadne riadiace bity spotreby energie.

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

V súčasnosti rôzne spoločnosti vyrábajú veľa modifikácií a analógov tejto rodiny, a to ako od spoločnosti Intel, tak aj od iných výrobcov, rýchlosť hodín a kapacita pamäte sa desaťnásobne zvýšili a naďalej sa zvyšujú. Rozširuje sa aj sada modulov zabudovaných do LSI, veľké množstvo moderných modelov má zabudovaný rezidentný vysokorýchlostný ADC s až 12 bitmi a teraz ich môže byť viac. Ale rodina MCS51 je založená na Intel LSI 8051, 80С51, 8751, 87С51, 8031, 80С31, ktorých prvé vzorky boli vydané v roku 1980.

Mikrokontroléry rodiny MCS51 sú vyrobené pomocou vysoko kvalitnej technológie n-MOS (séria 8ХХХ, analóg - séria 1816 v Rusku a Bielorusku) a technológie k-MOS (séria 8ХСХХ, analógová - séria 1830). Druhý znak po 8 znamená: 0 – na čipe nie je žiadna EPROM, 7 – 4K EPROM s ultrafialovým vymazaním. Tretí znak: 3 – ROM na čipe, 5 – ak nie je ROM, potom je na čipe maska ​​ROM.

A tak 80С51 je LSI založená na technológii k-MOS s maskou ROM na čipe, 8031 ​​je n-MOS LSI bez programovej pamäte (ROM, RPOM) na čipe, 8751 je n-MOS LSI s rezidentný (umiestnený na čipe) RPOM s ultrafialovým vymazávaním. Ďalej zvážime 8751 LSI, v prípade potreby urobíme výhrady k rozdielom medzi inými obvodmi, pričom uvedieme tie parametre, ktoré boli publikované pre prvé sériové LSI. V prípade potreby nájdete ďalšie informácie o všetkých moderných úpravách vo firemných adresároch a technickej dokumentácii.

A. Všeobecné charakteristiky a priradenie pinov

Rodina MCS51 je založená na piatich modifikáciách MK (s identickými základnými charakteristikami), pričom hlavným rozdielom medzi nimi je implementácia programovej pamäte a spotreba energie (pozri tabuľku 3.1). Mikrokontrolér je osembitový, t.j. má príkazy na spracovanie osembitových slov, má architektúru Harvard, frekvencia hodín základných vzoriek rodiny je 12 MHz.

Tabuľka 3.1.

Mikro obvody

Interná programová pamäť, bajty

Typ pamäte programu

Interná dátová pamäť, bajt

Hodinová frekvencia, MHz

Spotreba prúdu, mA

MK 8051 a 80C51 obsahujú pri výrobe čipu maskovo programovateľnú programovú pamäť ROM s kapacitou 4096 bajtov a sú určené pre použitie v sériovej výrobe. MK 8751 obsahuje 4096-bajtový RPOM s ultrafialovým vymazávaním a je vhodný vo fáze vývoja systému pri ladení programov, ako aj pri výrobe v malých sériách alebo pri vytváraní systémov, ktoré vyžadujú prepisovanie počas prevádzky.

periodická úprava.

MK 8031 ​​​​a 80C31 neobsahujú vstavanú programovú pamäť. Rovnako ako vyššie opísané modifikácie môžu využívať až 64 KB externej programovej pamäte a efektívne sa používajú v systémoch, ktoré vyžadujú výrazne väčší objem (ako 4 KB na čipe) programovej pamäte ROM.

Každý MK rodiny obsahuje rezidentnú dátovú pamäť s kapacitou 128 bajtov s možnosťou rozšírenia celkového množstva dát RAM až na 64 KB pomocou externých integrovaných obvodov RAM.

    osembitový centrálny procesor;

    4 KB programová pamäť (iba 8751 a 87C51);

    128 bajtová dátová pamäť;

    štyri osembitové programovateľné I/O porty;

    dva 16-bitové multirežimové časovače/počítadlá;

    systém automatického vektorového prerušenia s piatimi vektormi a dvomi softvérovo riadenými úrovňami priority;

    sériové rozhranie vrátane univerzálneho duplexného transceivera schopného pracovať v štyroch režimoch;

    generátor hodín.

Príkazový systém MK obsahuje 111 základných príkazov s formátom 1, 2, alebo 3 bajty. Mikrokontrolér má:

    32 všeobecných registrov RON, organizovaných ako štyri banky po ôsmich registroch, každý s názvami R0... R7, výber jednej alebo druhej banky je určený programom nastavením zodpovedajúcich bitov v registri stavu programu PSW;

    128 softvérovo riadených príznakov (bitový procesor, pozri nižšie);

    súbor registrov špeciálnych funkcií, ktoré ovládajú prvky MK. Existujú nasledujúce prevádzkové režimy mikrokontroléra:

1). Všeobecný reset. 2). Normálne fungovanie. 3). Režim nízkej spotreby energie a režim nečinnosti. 4). Režim programovania pre rezidentné RPOM, ak je k dispozícii.

Tu sa zameriame na prvé dva prevádzkové režimy, podrobný popis zloženia a činnosti MK vo všetkých režimoch je uvedený v prílohe P1.

RON a oblasť bitového procesora sú umiestnené v adresnom priestore rezidentnej RAM s adresami od 0 do 80h.

V hornej zóne rezidenčných RAM adries sú špeciálne funkčné registre (SFR, Special Function Registers). Ich účel je uvedený v tabuľke. 3.2.

Tabuľka 3.2.

Označenie

názov

Batéria

Registrácia B

Register stavu programu

Ukazovateľ zásobníka

Ukazovateľ údajov. 2 bajty:

Nízky bajt

Vysoký bajt

Prerušiť register priorít

Register povolenia prerušenia

Registrácia režimu časovača/počítadla

Register riadenia časovača/počítadla

Časovač/počítadlo 0. Vysoký bajt

Časovač/počítadlo 0. Nízky bajt

Časovač/počítadlo 1. Vysoký bajt

Časovač/počítadlo 1. Nízky bajt

Riadenie sériového portu

Serial Buffer

Riadenie spotreby

* - registre, dovoľovať bitovo adresovanie

Pozrime sa v krátkosti na funkcie registrov SFR uvedených v tabuľke 3.2.

Batéria ACC - register akumulátorov. Príkazy navrhnuté tak, aby fungovali

vy s batériou použite mnemotechnickú pomôcku „A“, napr. MOV A, P2 . Mnemotechnická pomôcka ACC sa používa napríklad pri bitovom adresovaní akumulátora. Symbolický názov piateho bitu akumulátora pri použití assembleru A5M51 bude teda takýto: ACC. 5.

Registrovať IN . Používa sa pri operáciách násobenia a delenia. Pre iné inštrukcie môže byť register B považovaný za dodatočný register v reálnom čase.

Registrovať štát programy P.S.W. obsahuje informácie o stave programu a je inštalovaný čiastočne automaticky na základe výsledku vykonanej operácie a čiastočne užívateľom. Označenie a účel bitov registra sú uvedené v tabuľkách 3.3 a 3.4.

Tabuľka 3.3.

Označenie

Tabuľka 3.4.

Označenie

Priradenie bitov

Bitový prístup

Nosiť vlajku. Zmeny počas vykonávania série aritmetických a logických pokynov.

Hardvér alebo softvér

Dodatočná nosná vlajka. Nastaviť/vymazať v hardvéri počas inštrukcií na sčítanie alebo odčítanie na označenie prenosu alebo výpožičky v bite 3, keď sa vygeneruje najmenej významný zlomok výsledku (D0-D3).

Hardvér alebo softvér

Príznak 0. Používateľom definovaný príznak.

Programovo

Programovo

Pracovný register bankového indexu

Programovo

Banka 0 s adresami (00Н - 07Н) Banka 1 s adresami (08Н - 0FН) Banka 2 s adresami (10Н - 17Н) Banka 3 s adresami (18Н - 1FН)

Vlajka pretečenia. Nastavené alebo vymazané hardvérom počas vykonávania aritmetických pokynov na označenie stavu pretečenia

Hardvér alebo softvér

Rezervný. Obsahuje zapisovateľný a čitateľný spúšťač, ktorý je možné použiť

Paritný bit. Hardvérový reset alebo nastavenie pri každom inštrukčnom cykle na označenie párneho alebo nepárneho počtu bitov batérie v stave „1“.

Hardvér alebo softvér

Ukazovateľ stoh SP - 8-bitový register, ktorého obsah sa inkrementuje pred zápisom údajov do zásobníka, keď sa vykonajú inštrukcie PUSH a CALL. Pri počiatočnom resete je ukazovateľ zásobníka nastavený na 07H a oblasť zásobníka v dátovej RAM začína na adrese 08H. Ak je to potrebné, prepísaním ukazovateľa zásobníka môže byť oblasť zásobníka umiestnená kdekoľvek vo vnútornej pamäti RAM údajov mikrokontroléra.

Ukazovateľ údajov DPTR pozostáva z vysokého bajtu (DPH) a nízkeho bajtu

(DPL). Obsahuje 16-bitovú adresu pri prístupe k externej pamäti. Môže byť použité

byť buď 16-bitový register alebo dva nezávislé osembitové registre.

Port0 - PortZ. Samostatné bity registrov špeciálnych funkcií P0, P1, P2, RZ sú „záchytné“ bity portov P0, P1, P2, RZ.

Buffer konzistentné prístav SBUF predstavuje dva samostatné registre: vyrovnávaciu pamäť vysielača a vyrovnávaciu pamäť prijímača. Keď sa dáta zapíšu do SBUF, vstúpia do vyrovnávacej pamäte vysielača a zápis bajtu do SBUF automaticky spustí prenos cez sériový port. Keď sú dáta čítané z SBUF, sú načítané z vyrovnávacej pamäte prijímača.

Registre časovač. Registrové páry (TH0, TL0) a (TH1, TL1) tvoria 16

bitové počítacie registre pre časovač/počítadlo 0 a časovač/počítadlo 1, v tomto poradí.

Registre zvládanie. Registre špeciálnych funkcií IP, IE, TMOD, TCON, SCON a PCON obsahujú riadiace bity a stavové bity systému prerušenia, čas-

merače/počítadlá a sériový port. Budú podrobne diskutované nižšie.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1 E.A.

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0,0 P0,1 P0,2 P0,3 P0,4 P0,5 P0,6 P0,7

Počas fungovania MC poskytuje:

    minimálny čas vykonania príkazov na sčítanie je 1 μs;

    hardvérové ​​násobenie a delenie s minimálnym časom vykonania 4 μs.

MK poskytuje možnosť nastavenia frekvencie interného oscilátora pomocou kremeňa, LC reťazca alebo externého oscilátora.

Rozšírený inštrukčný systém poskytuje bajtové a bitové adresovanie, binárnu a binárnu desiatkovú aritmetiku, indikáciu pretečenia a párne/nepárne určovanie a schopnosť implementovať logický procesor.

Najdôležitejšou a najvýraznejšou črtou architektúry rodiny MCS51 je, že ALU môže okrem operácií s 8-bitovými dátovými typmi manipulovať aj s jednobitovými dátami. Jednotlivé softvérovo dostupné bity môžu byť nastavené, vymazané alebo nahradené ich doplnkom, môžu byť preposlané, kontrolované a

Obr.3.2. Vonkajšie kolíky

mikrokontrolér

používané v logických výpočtoch. Zatiaľ čo podpora pre jednoduché typy údajov (ak sú k dispozícii)

Aj keď sa súčasný trend smerom k dlhším dĺžkam slov môže na prvý pohľad zdať ako krok späť, táto kvalita robí rodinu mikrokontrolérov MCS51 obzvlášť vhodnými pre aplikácie založené na ovládačoch. Operačné algoritmy posledne menovaných predpokladajú prítomnosť vstupných a výstupných booleovských premenných, ktoré je ťažké implementovať pomocou štandardných mikroprocesorov. Všetky tieto vlastnosti sa súhrnne nazývajú booleovský procesor rodiny MCS51. Vďaka tejto výkonnej ALU je rad mikrokontrolérov MCS51 vhodný pre aplikácie riadenia v reálnom čase aj pre dátovo náročné algoritmy.

Schéma zapojenia mikrokontroléra je na obr. 3.2. V základnej verzii je zabalený v 40-pinovom DIP puzdre. Pozrime sa na účel špendlíkov.

Začnime s napájacími kolíkmi «0 IN" A "5 IN" , prostredníctvom ktorej prijíma základnú výživu. Aktuálna spotreba je uvedená v tabuľke. 3.1.

Záver "RST" - reset mikrokontroléra. Keď sa na tento kolík aplikuje aktívna vysoká úroveň, režim všeobecný resetovať a MK vykonáva nasledujúce akcie:

Nastaví počítadlo PC programov a všetky registre špeciálnych funkcií, okrem západiek portu P0-P3, ukazovateľa zásobníka SP a registra SBUF na nulu;

    ukazovateľ zásobníka nadobúda hodnotu rovnajúcu sa 07H;

    deaktivuje všetky zdroje prerušenia, počítadlo časovača a sériové číslo

    vyberie BANK 0 RAM, pripraví porty P0-RZ na príjem dát a určenie

zdieľa piny ALE a PME ako vstupy pre externé taktovanie;

      v registroch špeciálne funkcie Vyhradené bity PCON, IP a IE nadobúdajú náhodné hodnoty a všetky ostatné bity sú vynulované;

      register SBUF je nastavený na náhodné hodnoty.

      nastaví západky portov P0-PZ na "1".

Stavy registrov mikrokontroléra po resete sú uvedené v tabuľke 3.5.

Tabuľka 3.5.

Informácie

Neistý

0ХХХ0000V pre k-MOS 0XXXXXXXB pre n-MOS

Pin RST má aj alternatívnu funkciu. Prostredníctvom neho je dodávané záložné napájanie, aby obsah pamäte RAM mikrokontroléra zostal nezmenený, keď sa odstráni hlavná.

závery BQ1, BQ2 sú určené na pripojenie kremenného rezonátora, ktorý určuje taktovaciu frekvenciu MK.

Záver EA“. (E externé A šaty externé adresa) - určený na aktiváciu režimu čítania riadiacich kódov z externej programovej pamäte, keď je na tento pin aplikovaná aktívna nízka úroveň. Výstup má alternatívny účel (funkciu). V programovacom režime je napájaný programovacím napätím z RPOM.

Záver PME (P rogram M emócie E ušľachtilý povolenie Pamäť programy) - je určený na riadenie cyklu čítania z pamäte programu a je automaticky aktivovaný MK v každom cykle stroja.

Záver ALE (A šaty L ength E ušľachtilý povolenie junior adresy) blikne výstup nižšej časti adresy cez port P0. Výstup sa používa aj pri programovaní RPOM, pričom je doň privádzaný zábleskový impulz pre proces programovania.

MK obsahuje štyri skupiny portov: P0, P1, P2 a P3. Toto je zvyšných 40 pinov mikrokontroléra. Tieto porty môžu slúžiť na vstup a výstup informácií bit po bite, no navyše každý z nich má svoju špecializáciu. Zovšeobecnený funkčný diagram portu je znázornený na obr. 3.3. Port obsahuje výstupné spínače FET pripojené na kolík, prepínač funkcií, klopnú západku D a logiku ovládania. Jednotku alebo nulu je možné zapísať do západky na internej zbernici MK. Tieto informácie sa posielajú cez prepínač funkcií do výstupných spínačov a na výstup MK. V jednom stave sú oba tranzistory N a N1 zatvorené, ale N2 je otvorený. V nulovom stave sa N otvára-

Xia a N2 sa zatvoria. Vo chvíli, keď port vykonáva alternatívnu funkciu, na ktorú je špecializovaný, stav blokovania výstupu sa vymaže. Mikrokontrolér dokáže samostatne čítať stav západky portu a stav jeho výstupu, nastavený externým signálom. Na tento účel obsahuje assembler MK špeciálne príkazy, ktoré aktivujú príslušné riadky. Ak chcete prečítať stav kolíka do zodpovedajúcej západky portu,

byť vopred nahrané

Z interného

Ovládacia západka

Prepínač funkcií

Vcc

Víkend

jednotka. Keď je aktivovaný riadok „zámka čítania“, objaví sa výstup bunky „AND“, ku ktorej je tento riadok pripojený.

jej pneumatiky MK D Q

Zápis na západku C Q

Čítacia západka

Portový kolík

Stav blokovania sa pri aktivácii prenáša na internú zbernicu MC

„read output“ – stav externého pinu portu.

Port P0 – univerzálny obojsmerný port

I/O Za týmto prístavom

funkciu organizácie externých adresových zberníc a

Ryža. 3.3. Funkčná schéma portu mikrokontroléra

dáta na rozšírenie programovej pamäte a dátovej pamäte

mikrokontrolér. Keď sa pristúpi k externej programovej pamäti alebo sa vykoná príkaz na prístup k externej dátovej pamäti, na kolíkoch portu sa nastaví spodná časť adresy (A0...A7), ktorá je na kolíku ALE nastavená vysoko. Potom pri zápise dát do pamäte sú zaznamenané informácie z internej zbernice MK odoslané na piny portu P0. Pri operáciách čítania sa naopak informácie z pinov portu posielajú na internú zbernicu. Funkciou portu P0 je absencia „pull-up“ tranzistora N2, ktorý napája výstup. Pri zápise do západky portu jednotky sa jednoducho prenesie do vysokoimpedančného stavu, ktorý je nevyhnutný pre normálnu prevádzku dátovej zbernice. Ak je potrebné napájať akékoľvek externé zariadenia cez výstup, mali by byť poskytnuté externé odpory z napájacích obvodov do výstupu portu.

Port P1 – univerzálny obojsmerný I/O port bez alternatívnych funkcií.

Port P2 – univerzálny obojsmerný I/O port, ktorý ako alternatívna funkcia pri prístupe k externej pamäti vydáva vysokú časť adresy (A8...A15).

Port P3 – univerzálny obojsmerný I/O port, ktorého každý bit zabezpečuje implementáciu rôznych alternatívnych funkcií. V tomto prípade sú alternatívne funkcie implementované iba vtedy, ak sú jedny zapísané na západky kolíkov portu, inak je vykonávanie alternatívnych funkcií zablokované. Uveďme ich samostatne pre každý bit:

P3.0 RxD (Rčítať e X interné D ate, read external data) – vstup vstavaného sériového transceivera.

P3.1 TxD (Táno e X interné D ate, prenášať externé dáta) – výstup vstavaného sériového transceivera.

P3.2 INT0“. (INT errupt, interrupt) – vstup externého prerušenia 0.

P3.3 INT1“. – vstup externého prerušenia 1.

P3.4 С/T0 – nulový vstavaný vstup časovača/počítadla.

P3.5 C/T1 – vstup prvého vstavaného časovača/počítadla.

P3.6 WR' (W rite, write) – výstup na riadenie cyklu zápisu do dátovej pamäte.

P3.7 RD' (R ead, read) – riadiaci výstup cyklu čítania z dátovej pamäte.

Kolíky portu P1, P2 a P3 sú schopné vydávať prúd asi 0,2 mA na jednotku a prijímať prúd 3 mA pri nule; kolíky portu P0 sú výkonnejšie a sú schopné dodať prúd asi 0,8 mA v jednej jednotke a prijímajúci prúd 5 mA pri nule. Stručné informácie o účele pinov mikrokontroléra sú uvedené v tabuľke 3.6.

Tabuľka 3.6.

Označenie

Výstupný účel

8-bitový obojsmerný port P1. Vstup adresy A0-A7 pri kontrole internej pamäte ROM (RPM)

zadajte výstup

Všeobecný resetovací signál. Záložný výstup napájania RAM z externého zdroja (pre 1816)

8-bitový obojsmerný port P3 s ďalšími funkciami

zadajte výstup

Sériové údaje prijímača - RxD

Sériové dáta vysielača - TxD

Vstup externého prerušenia 0-INT0`

Vstup externého prerušenia 1-INT1`

Vstup časovača/počítadla 0: - T0

Vstup časovača/počítadla 1: - T1

Výstup stroboskopického signálu pri zápise do externej dátovej pamäte: - WR`

Výstup zábleskového signálu pri čítaní z externej dátovej pamäte – RD`

Vývody na pripojenie kremenného rezonátora.

výstupný vstup

Všeobecný záver

8-bitový obojsmerný port P2. Výstup adresy A8-A15 v režime externej pamäte. V režime vnútornej kontroly ROM sa ako vstup adries A8-A14 používajú piny P2.0 - P2.6. Pin P2.7 - povolenie na čítanie pamäte ROM.

zadajte výstup

Rozlíšenie pamäte programu

Výstupný signál povolí fixácia adresy. Pri programovaní signálu RPOM: PROG

zadajte výstup

Blokovanie práce s internou pamäťou. Pri programovaní RPOM je daný signál UPR

zadajte výstup

8-bitový obojsmerný port P0. Adresová/dátová zbernica pre prácu s externou pamäťou. Dátový výstup D7-D0 v testovacom režime internej ROM (RPM).

zadajte výstup

Napájanie zo zdroja napätia +5V

PLÁN PREDNÁŠOK

1. Úvod

2. Aritmetické a logické inštrukcie

3. Príkazy na prenos dát

4. Booleovské operácie

5. Pokyny na skok

1. Úvod

Príkazový systém MCS-51 podporuje jednu sadu inštrukcií, ktorá je navrhnutá na vykonávanie 8-bitových riadiacich algoritmov akčných členov. Je možné použiť rýchle metódy na adresovanie internej RAM a vykonávanie bitových operácií na malých dátových štruktúrach. Existuje rozsiahly systém adresovania jednobitových premenných ako nezávislý dátový typ, ktorý umožňuje použitie jednotlivých bitov v logických a riadiacich príkazoch Booleovej algebry.

Režimy adresovania : sada príkazov MCS-51 podporuje nasledujúce režimy adresovania. Priame adresovanie: Operand je určený 8-bitovou adresou v inštrukcii. Priame adresovanie sa používa len pre dolnú polovicu vnútornej dátovej pamäte a registrov SFR. Nepriame adresovanie: Inštrukcia adresuje register obsahujúci adresu operandu. Tento typ adresovanie sa používa pre externú a internú RAM. Registre možno použiť na špecifikáciu 8-bitových adries R0 A R1 zvolená banka registra alebo ukazovateľ zásobníka SP. Pre 16-bitové adresovanie sa používa len register dátových ukazovateľov DPTR.

Pokyny na registráciu : registre R0 – R7 aktuálna banka registrov môže byť adresovaná prostredníctvom špecifických inštrukcií obsahujúcich 3-bitové pole označujúce číslo registra v samotnej inštrukcii. V tomto prípade v príkaze chýba zodpovedajúce pole adresy. Operácie pomocou špeciálnych registrov: niektoré inštrukcie používajú jednotlivé registre (napríklad operácie s akumulátorom, DPTR, atď.). V tomto prípade adresa operandu nie je v príkaze vôbec uvedená. Je to vopred určené operačným kódom.

Okamžité konštanty : konštanta môže byť umiestnená priamo v príkaze za operačným kódom.

Indexové adresovanie : Indexové adresovanie je možné použiť len na prístup do pamäte programu a iba v režime čítania. V tomto režime sa zobrazujú tabuľky v pamäti programu. 16-bitový register ( DPTR alebo programové počítadlo) označuje základnú adresu požadovanej tabuľky a akumulátor označuje vstupný bod do nej.

Sada príkazovmá 42 mnemotechnických pomôcok na špecifikovanie 33 funkcií tohto systému. Syntax väčšiny inštrukcií v jazyku symbolických inštrukcií pozostáva z mnemotechnickej funkcie, za ktorou nasledujú operandy označujúce metódy adresovania a typy údajov. Rôzne druhyúdaje alebo režimy adresovania sú určené nastavenými operandmi, nie zmenami v mnemotechnických pomôckach.

Systém príkazov možno rozdeliť do piatich skupín: aritmetické inštrukcie; logické príkazy; príkazy na prenos údajov; príkazy bitového procesora; rozvetvenie a príkazy na prenos riadenia. Označenia a symboly používané v príkazovom systéme sú uvedené nižšie.

Tabuľka. Notácie a symboly používané v príkazovom systéme

Označenie, symbol

Účel

Batéria

Registre aktuálne vybranej banky registrov

Čí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á bunka RAM (0–127) alebo špeciálny funkčný register SFR (128–255)

Nepriamo adresovateľná 8-bitová interná dátová RAM bunka

8-bitový priamyúdaje zahrnuté v operačnom kóde (OPC)

dataH

Najdôležitejšie bity (15–8) okamžitých 16-bitových údajov

dataL

Najmenej významné bity (7–0) okamžitých 16-bitových údajov

11-bitová cieľová adresa

addrL

Najmenej významné bity cieľovej adresy

8-bitový offsetový bajt so znamienkom

Priamo adresovateľný bit, ktorého adresa obsahuje COP umiestnený v internej dátovej RAM alebo špeciálnom funkčnom registri SFR

a15, a14...a0

Bity cieľovej adresy

Obsah prvku X

Obsah na adrese uloženej v prvku X

Bit M prvku X


+

*
A
ALEBO
XOR
/X

Operácie:
prídavok
odčítanie
násobenie
divízií
logické násobenie (operácia AND)
logické sčítanie (operácia OR)
prídavný modul 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í.

2. Aritmetické a logické inštrukcie

Ako p príklad aritmetický pokyn, operáciu sčítania možno vykonať jedným z nasledujúcich príkazov.

PRIDAŤA,7 F 16 – pridajte k obsahu registra A číslo 7 F 16 a uložiť výsledok do registra A;

PRIDAŤA,@ R0 – doplniť do obsahu registra A číslo, ktorého adresa (@ – komerčné pri ) je uložený v registri R 0 (nepriame adresovanie) a uložiť výsledok do registra A;

PRIDAŤ A,R7– pridať obsah registra A k obsahu registra R 7 a výsledok uložte do registra A;

PRIDAŤ A,#127– pridať k obsahu registra A číslo, ktorého adresa pamäťovej bunky je 127 ( # – číselný symbol) a výsledok uložte do registra T- znovu A.

Všetky aritmetické inštrukcie sa vykonávajú v jednom strojovom cykle s výnimkou inštrukcie INC DPTR(posun ukazovateľa údajov DPTR na nasledujúci bajt), ktoré si vyžadujú dva strojové cykly, ako aj operácie násobenia a delenia vykonávané v 4 strojových cykloch. Akýkoľvek bajt v internej dátovej pamäti je možné zvýšiť a znížiť bez použitia batérie.

Inštrukcie MUL AB vykoná násobenie (násobenie) údajov v akumulátore údajmi v registri B, pričom súčin umiestni do registrov A (dolná polovica) a B (vysoká polovica).

Inštrukcie DIV AB vydelí (delí) obsah akumulátora hodnotou v registri B, zvyšok ponechá v B a kvocient v akumulátore.

Inštrukcie DA A je určený pre binárne desiatkové aritmetické operácie (aritmetické operácie s číslami reprezentovanými v binárnom desiatkovom kóde). Nekonvertuje binárne číslo na BCD, ale poskytuje správny výsledok iba pri sčítaní dvoch binárnych desatinných čísel.

Príklad logický príkaz: Logickú operáciu AND možno vykonať jedným z nasledujúcich príkazov:

ANLA,7 F 16 – logické vynásobenie obsahu registra A číslom 7 F 16 a výsledok je uložený v registri A;

ANLA,@ R1 – logické vynásobenie obsahu registra A číslom, ktorého adresa je uložená v registri R 1 (nepriame adresovanie) a uložiť výsledok do registra A;

ANL A,R6– logické násobenie obsahu registra A obsahom registra R 6 a výsledok uložte do registra A;

ANL A,#53 – logické vynásobenie obsahu registra A číslom, ktorého adresa pamäťovej bunky je 53 16 a výsledok sa uloží do registra A.

Všetky logické operácie s obsahom akumulátora sa vykonávajú v jednom strojovom cykle, zvyšok - v dvoch. Logické operácie možno vykonávať na ktoromkoľvek z nižších 128 bajtov vnútornej dátovej pamäte alebo na akomkoľvek registri SFR (registre špeciálnych funkcií) v režime priameho adresovania bez použitia batérie.

Operácie rotačného posunu RL A, RLC A atď. posúvajú obsah akumulátora o jeden bit doprava alebo doľava. V prípade cyklického posunu doľava sa najmenej významný bit presunie na najvýznamnejšiu pozíciu. V prípade pravého cyklického posunu nastáva opak.

Prevádzka SWAP A vymieňa nízke a vysoké tetrády v batérii.

3. Príkazy na prenos dát

Tím MOV dest,src umožňuje prenášať dáta medzi internými bunkami RAM alebo oblasťami špeciálnych funkčných registrov SFR bez použitia batérie. V tomto prípade je možné prácu s hornou polovicou internej pamäte RAM vykonávať iba v režime nepriameho adresovania a prístup k registrom SFR– iba v režime priameho adresovania.

Vo všetkých mikroobvodoch MCS-51 Zásobník je umiestnený priamo v rezidentnej dátovej pamäti a rastie smerom nahor. Inštrukcie TAM najprv zvýši hodnotu v registri ukazovateľa zásobníka SP a potom zapíše bajt údajov do zásobníka. Tímy TAM A POP sa používajú iba v režime priameho adresovania (zápis alebo obnova bajtu), ale zásobník je vždy prístupný pri nepriamom adresovaní cez register SP. Zásobník teda môže využívať aj prvých 128 bajtov dátovej pamäte. Rovnaké úvahy vylučujú možnosť použitia zásobníkových inštrukcií na adresovanie registrov SFR.

Inštrukcie na prenos údajov zahŕňajú 16-bitovú operáciu prenosu MOV DPTR,#data16, ktorý sa používa na inicializáciu registra ukazovateľov údajov DPTR pri prezeraní tabuliek v pamäti programu alebo na prístup k externej dátovej pamäti.

Prevádzka XCH A,bajt slúži na výmenu dát medzi akumulátorom a adresovaným bajtom. Tím XCHD A,@Ri podobný predchádzajúcemu, ale vykonáva sa len pre nižšie tetrády zapojené do výmeny operandov.

Na prístup k externej dátovej pamäti sa používa iba nepriame adresovanie. V prípade jednobajtových adries sa používajú registre R0 alebo R1 aktuálna banka registrov a pre 16-bitový register dátových ukazovateľov DPTR. Pri akomkoľvek spôsobe prístupu k externej dátovej pamäti zohráva batéria úlohu zdroja alebo prijímača informácií.

Na prístup k tabuľkám umiestneným v pamäti programu použite nasledujúce príkazy:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Obsah registra dátových ukazovateľov sa používa ako základná adresa tabuľky DPTR alebo PC(počítadlo programov) a posun sa prevezme z A. Tieto inštrukcie slúžia výhradne na čítanie dát z programovej pamäte, ale nie na zápis do nej.

4. Booleovské operácie

Mikroobvody MCS-51 obsahujú „boolovský“ procesor. Interná RAM má 128 priamo adresovateľných bitov. Priestor registra špeciálnych funkcií SFR môže tiež podporovať až 128 bitové polia. Bitové inštrukcie vykonávajú podmienené vetvenia, prenosy, resety, inverzie a operácie AND a OR. Všetky špecifikované bity sú dostupné v režime priameho adresovania.

Nosiť bit CF v registri špeciálnej funkcie „program status word“ P.S.W." sa používa ako jednobitový akumulátor pre booleovský procesor.

5. Pokyny na skok

Adresy skokových operácií sú v jazyku symbolizácií označené štítkom alebo reálnou hodnotou v pamäťovom priestore programu. Adresy podmienených vetví sú zostavené do relatívneho posunu - znakového bajtu pridaného do programového počítadla PC ak je splnená podmienka prechodu. Hranice takýchto prechodov ležia medzi mínus 128 a 127 vzhľadom na prvý bajt po inštrukcii. V registri špeciálnej funkcie "Stavové slovo programu" P.S.W."Neexistuje žiadna nulová vlajka, takže pokyny JZ A JNZ skontrolujte stav „rovná sa nule“ ako testovanie údajov v akumulátore.

Existujú tri typy príkazov bezpodmienečného skoku: SJMP, LJMP A AJMP– cieľové adresy, ktoré sa líšia formátom. Inštrukcie SJMP zakóduje adresu ako relatívny posun a zaberie dva bajty. Vzdialenosť skoku je obmedzená na rozsah od mínus 128 do 127 bajtov vzhľadom na nasledujúcu inštrukciu SJMP.

V návode LJMP Cieľová adresa sa používa ako 16-bitová konštanta. Dĺžka príkazu je tri bajty. Cieľová adresa môže byť umiestnená kdekoľvek v pamäti programu.

Tím AJMP používa 11-bitovú adresovú konštantu. Príkaz pozostáva z dvoch bajtov. Keď sa táto inštrukcia vykoná, spodných 11 bitov počítadla adries sa nahradí 11-bitovou adresou z inštrukcie. Päť najvýznamnejších bitov počítadla programu PC zostávajú nezmenené. Prechod sa teda môže uskutočniť v rámci 2K-bajtového bloku, v ktorom sa nachádza inštrukcia nasledujúca po inštrukcii AJMP.

Existujú dva typy volaní príkazov do podprogramu: LCALL A HOVOR. Inštrukcie LCALL používa 16-bitovú adresu volaného podprogramu. V tomto prípade môže byť podprogram umiestnený kdekoľvek v pamäti programu. Inštrukcie HOVOR používa 11-bitovú adresu podprogramu. V tomto prípade musí byť volaná rutina umiestnená v jedinom 2K bajtovom bloku s nasledujúcou inštrukciou HOVOR. Obe verzie inštrukcie vytlačia adresu ďalšej inštrukcie do zásobníka a načítajú ju do programového počítadla PC zodpovedajúcu novú hodnotu.

Podprogram končí pokynom RET, čo vám umožní vrátiť sa k inštrukcii po príkaze ZAVOLAJTE. Táto inštrukcia vytiahne návratovú adresu zo zásobníka a načíta ju do programového počítadla. PC . Inštrukcie RETI slúži na návrat z rutín prerušenia. Jediný rozdiel RETI od RET je to? RETI informuje systém o dokončení spracovania prerušenia. Ak v čase exekúcie RETI neexistujú žiadne iné prerušenia, potom je to identické RET.

Inštrukcie DJNZ určené na riadenie cyklov. Ak chcete vykonať slučku N raz potrebujete načítať bajt s hodnotou do počítadla N a zatvorte telo slučky príkazom DJNZ, označujúce začiatok cyklu.

Tím CJNE porovnáva svoje dva operandy ako celé čísla bez znamienka a skočí na adresu v ňom špecifikovanú, ak porovnávané operandy nie sú rovnaké. Ak je prvý operand menší ako druhý, potom bit prenášania CF je nastavený na "1".

Všetky inštrukcie v zostavenej forme zaberajú 1, 2 alebo 3 bajty.

ARCHITEKTÚRA RODINY MIKROVLÁDAČOVMCS-51

Poznámky k prednáškam pre kurzy

„Mikroprocesory v riadiacich systémoch“, „Mikroprocesorová technológia“

"Mikroprocesorové nástroje a systémy"

pre študentov všetkých foriem študijných odborov

072000 – Štandardizácia a certifikácia

210200 – Automatizácia technologických procesov

230104 – Počítačom podporované konštrukčné systémy

Tambov 2005

ÚVOD.. 3

1. ŠTRUKTÚRA MIKROVLÁDAČA INTEL 8051. 3

1.1. Organizácia pamäte. 5

1.2. Aritmecko-logické zariadenie. 6

1.3. Rezidentná pamäť pre programy a dáta. 7

1.4. Akumulátorové a univerzálne registre. 8

1.5. Register stavových slov programu a jeho príznaky. 9

1.6. Registre ukazovateľov. 10

1.7. Registre špeciálnych funkcií. jedenásť

1.8. Ovládacie a synchronizačné zariadenie. jedenásť

1.9. Paralelné informačné vstupné/výstupné porty. 12

1.10. Časovače/počítadlá. 13

1.11. Sériový port. 18

1.11.1. Zaregistrujte SBUF.. 18

1.11.2. Prevádzkové režimy sériového portu. 18

1.11.3. Zaregistrujte sa SCON.. 19

1.11.4. Rýchlosť príjmu/prenosu. 21

1.12. Systém prerušenia. 22

2. OVLÁDACÍ SYSTÉM MIKROVLÁDAČA INTEL 8051. 26

2.1. Všeobecné informácie. 26

2.1.1. Typy príkazov. 27

2.1.2. Typy operandov. 28

2.1.3. Metódy adresovania údajov. tridsať

2.1.4. Vlajky výsledkov. 31

2.1.5. Symbolické oslovovanie. 32

2.2. Príkazy na prenos údajov. 33

2.2.1. Štruktúra informačných väzieb. 33

2.2.2. Prístup k batérii. 33

2.2.3. Prístup k externej dátovej pamäti. 34

2.2.4. Prístup k programovej pamäti... 34


2.2.5. Prístup k stohu. 35

2.3. Aritmetické operácie. 35

2.4. Logické operácie. 39

2.5. Ovládanie príkazov na prenos. 43

2.5.1. Dlhý prechod. 43

2.5.2. Absolútny prechod. 43

2.5.3. Relatívny prechod. 44

2.5.4. Nepriamy prevod. 44

2.5.5. Podmienečné skoky.. 44

2.5.6. Podprogramy.. 47

2.6. Operácie s bitmi. 48

Testovacie otázky... 49

LITERATÚRA.. 50

Príloha PRÍKAZOVÝ SYSTÉM INTEL 8051. 51

ÚVOD

Od 80. rokov 20. storočia sa v mikroprocesorovej technike objavila samostatná trieda integrované obvody– jednočipové mikrokontroléry, ktoré sú určené na integráciu do zariadení na rôzne účely. Od triedy jednočipových mikroprocesorov sa odlišujú prítomnosťou vnútornej pamäte a vyvinutými prostriedkami interakcie s externými zariadeniami.

Široko používané sú 8-bitové jednočipové mikrokontroléry rodiny MCS-51. Táto rodina bola vytvorená na základe mikrokontroléra Intel 8051, ktorý si vďaka svojej dobre navrhnutej architektúre získal veľkú obľubu medzi vývojármi mikroprocesorových riadiacich systémov. Architektúra mikrokontroléra je súbor interných a externých softvérovo prístupných hardvérových prostriedkov a príkazových systémov.

Následne Intel vydal asi 50 modelov založených na operačnom jadre mikrokontroléra Intel 8051. V tom istom čase začali mnohé iné spoločnosti, ako napríklad Atmel, Philips, vyrábať vlastné mikrokontroléry vyvinuté v štandarde MCS-51. Je tu tiež domáci analóg Mikrokontrolér Intel 8051 - čip K1816BE51.

2. ŠTRUKTÚRA MIKROVLÁDAČA INTEL 8051

Mikrokontrolér Intel 8051 je založený na špičkovej technológii n-MOS. Jeho hlavné charakteristiky sú nasledovné:

· osembitový centrálny procesor optimalizovaný pre implementáciu riadiacich funkcií;

· vstavaný generátor hodín (maximálna frekvencia 12 MHz);

· adresný priestor programovej pamäte - 64 KB;

· adresný priestor dátovej pamäte - 64 KB;

· interná programová pamäť - 4 KB;

· interná dátová pamäť - 128 bajtov;

· ďalšie možnosti na vykonávanie operácií booleovskej algebry (bitové operácie);

· 2 šestnásťbitové multifunkčné časovače/počítadlá;

· plne duplexný asynchrónny transceiver (sériový port);

· vektorový systém prerušení s dvoma úrovňami priority a piatimi zdrojmi udalostí.

Obrázok 1 - Bloková schéma mikrokontroléra Intel 8051

Základ blokovej schémy (obr. 1) tvorí vnútorná obojsmerná 8-bitová zbernica, ktorá prepája hlavné uzly a zariadenia mikrokontroléra: rezidentnú programovú pamäť (RPM), rezidentnú dátovú pamäť (RDM), aritmeticko-logickú pamäť. jednotka (ALU), špeciálne funkcie registrovej jednotky, riadiaca jednotka (CU), paralelné I/O porty (P0-P3), ako aj programovateľné časovače a sériový port.

2.1. Organizácia pamäte

Tento mikrokontrolér má vstavanú (rezidentnú) a externú pamäť programov a dát. Rezidentná programová pamäť (RPM) má kapacitu 4 KB a rezidentná dátová pamäť (RDM) má kapacitu 128 bajtov.


V závislosti od úpravy mikrokontroléra sú RPM implementované vo forme maskovacej ROM, jednorazovej programovateľnej alebo preprogramovateľnej ROM.

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 pamäti ROM je určený hodnotou signálu na kolíku EA (External Access):

EA=VCC (napájacie napätie) - prístup k internej ROM;

EA=VSS (zemný potenciál) - prístup k externej ROM.

Externá programová a dátová pamäť môže mať veľkosť 64 KB a adresovaná pomocou portov P0 a P2. Obrázok 2 zobrazuje pamäťovú kartu Intel 8051.

Obrázok 2 - Organizácia pamäte Intel 8051

Externá čítačka ROM - (Program Store Enable) sa generuje pri prístupe k externej programovej pamäti a je neaktívna počas prístupu k ROM umiestnenej na čipe.

Oblasť nižších adries programovej pamäte (obr. 3) využíva systém prerušenia. Architektúra čipu INTEL 8051 poskytuje podporu pre päť zdrojov prerušení. Adresy, na ktoré sa prenáša riadenie prerušenia, sa nazývajú vektory prerušení.

Obrázok 3 - Mapa spodnej oblasti pamäte programu

2.2. Aritmetická logická jednotka

8-bitová aritmetická logická jednotka (ALU) môže vykonávať aritmetické operácie sčítania, odčítania, násobenia a delenia; logické operácie AND, OR, exkluzívne OR, ako aj operácie cyklického posunu, resetu, inverzie a pod. Softvérovo nedostupné registre T1 a T2, určené na dočasné ukladanie operandov, obvod desiatkovej korekcie (DCU) a obvod generovania vlastností sú spojené s výsledkom činnosti vstupov (PSW).

Jednoduchá operácia sčítania sa používa v ALU na zvýšenie obsahu registrov, posunutie registra ukazovateľa údajov (RAR) a automatický výpočet adresy ďalšej rezidentnej pamäte programu. Najjednoduchšia operácia odčítania sa používa v ALU na dekrementáciu registrov a porovnanie premenných.

Najjednoduchšie operácie automaticky vytvárajú „tandemy“ na vykonávanie operácií, ako je napríklad inkrementácia 16-bitových párov registrov. ALU implementuje mechanizmus na kaskádové vykonávanie jednoduchých operácií na implementáciu zložitých príkazov. Takže napríklad pri vykonávaní jedného z príkazov podmieneného prenosu riadenia sa na základe výsledku porovnania v ALU trikrát zvýši počítadlo programu (PC), dvakrát sa načíta RDM, vykoná sa aritmetické porovnanie dvoch premenných, vytvorí sa 16-bitová adresa prechodu a rozhodne sa, či sa prechod uskutoční alebo neuskutoční podľa programu. Všetky vyššie uvedené operácie sa vykonajú len za 2 μs.

Dôležitou vlastnosťou ALU je schopnosť obsluhovať nielen bajty, ale aj bity. Jednotlivé softvérovo dostupné bity je možné nastaviť, vyčistiť, invertovať, preniesť, testovať a použiť v logických operáciách. Táto schopnosť je dosť dôležitá, pretože na riadenie objektov sa často používajú algoritmy, ktoré obsahujú operácie so vstupnými a výstupnými booleovskými premennými, ktorých implementácia je spojená s určitými ťažkosťami pri použití bežných mikroprocesorov.

ALU teda môže pracovať so štyrmi typmi informačných objektov: booleovský (1 bit), digitálny (4 bity), byte (8 bitov) a adresa (16 bitov). ALU vykonáva 51 rôznych operácií na preposielanie alebo transformáciu týchto údajov. Keďže existuje 11 režimov adresovania (7 pre dáta a 4 pre adresy), kombináciou operácie a režimu adresovania sa základný počet 111 inštrukcií rozšíri na 255 z 256 možných s jednobajtovým operačným kódom.

2.3. Rezidentná programová a dátová pamäť

Rezidenčná (on-chip) programová pamäť (RPM) a dátová pamäť (RDM) sú fyzicky a logicky oddelené, majú rôzne adresovacie mechanizmy, fungujú pod kontrolou rôznych signálov a vykonávajú rôzne funkcie.

Pamäť programu RPM má kapacitu 4 KB a je určená na ukladanie príkazov, konštánt, inicializačných riadiacich slov, konverzných tabuliek pre vstupné a výstupné premenné a pod. Pamäť má 16-bitovú adresovú zbernicu, cez ktorú je zabezpečený prístup z Počítadlo PC programov alebo z registra.údajový ukazovateľ (DPTR). DPTR funguje ako základný register pre nepriame programové skoky alebo sa používa pri operáciách s tabuľkami.

Dátová pamäť RDM je určená na ukladanie premenných počas vykonávania aplikačného programu, je adresovateľná po jednom byte a má kapacitu
128 bajtov. Okrem toho jeho adresný priestor susedí s adresami registrov špeciálnych funkcií, ktoré sú uvedené v tabuľke. 1.

Pamäť programu, podobne ako pamäť dát, sa dá rozšíriť
64 KB pripojením externých čipov.

stôl 1

Špeciálny funkčný blok registra

názov

Batéria

Register expandéra akumulátora

Stavové slovo programu

Register ukazovateľov zásobníka

Register údajových ukazovateľov

Prerušiť register priorít

Prerušenie registra masky

Registrácia režimu časovača/počítadla

Ovládanie časovača/stavový register

Časovač 0 (vysoký bajt)

Časovač 0 (nízky bajt)

Časovač 1 (vysoký bajt)

Časovač 1 (nízky bajt)

Transceiver Control Register

Vyrovnávacia pamäť vysielača

Register riadenia výkonu

Poznámka. Registre, ktorých názvy sú označené (*), umožňujú adresovanie jednotlivých bitov.

2.4. Akumulátorové a všeobecné registre

Akumulátor (A) je zdrojom operandu a umiestnenia výsledku pri vykonávaní aritmetických, logických operácií a množstva operácií prenosu údajov. Okrem toho, operácie posunu, kontrola nuly, generovanie príznaku parity atď. je možné vykonávať len pomocou akumulátora.

Používateľ má k dispozícii štyri banky po 8 všeobecných registrov R0–R7 (obr. 9). Je však možné použiť registre len jednej zo štyroch bánk, ktorá sa volí pomocou registrového bitu PSW.

2.5. Register stavových slov programu a jeho príznaky

Keď sa v ALU vykoná veľa inštrukcií, vygeneruje sa množstvo operačných atribútov (príznakov), ktoré sa zaznamenajú do registra programového stavového slova (PSW). V tabuľke 2 uvádza zoznam vlajok PSW, uvádza ich symbolické názvy a popisuje podmienky ich vzniku.

tabuľka 2

PSW Program Stav Word Formát

Názov a účel

Nosiť vlajku. Nastavenie a resetovanie hardvérom alebo softvérom pri vykonávaní aritmetických a logických operácií

Pomocná nosná vlajka. Nastavené a vymazané iba hardvérom, keď sa vykonávajú inštrukcie na sčítanie a odčítanie a signalizujú prenos alebo vypožičanie v bite 3

Príznak 0. Môže byť nastavený, vymazaný alebo kontrolovaný programom ako užívateľom špecifikovaný príznak.

Výber registračnej banky. Nastaviť a resetovať softvérom na výber pracovnej banky registrov (tabuľka 3)

Vlajka pretečenia. Nastavenie a resetovanie hardvérom pri vykonávaní aritmetických operácií

Nepoužité

Vlajka parity. Nastavuje a resetuje hardvérom v každom cykle a fixuje nepárny/párny počet jedného bitu v akumulátore, t.j. vykonáva paritu

Tabuľka 3

Výber banky pracovných registrov

Hranice adresy

Najaktívnejším príznakom PSW je príznak prenosu, ktorý sa používa a upravuje počas mnohých operácií, vrátane sčítania, odčítania a posunu. Okrem toho príznak prenosu (CY) funguje ako „Booleovský akumulátor“ v inštrukciách na manipuláciu s bitmi. Príznak pretečenia (OV) deteguje aritmetické pretečenie v operáciách celého čísla so znamienkom a umožňuje použiť aritmetiku v dvojdoplnkových kódoch. ALU neovláda príznaky výberu banky registrov (RS0, RS1), ich hodnota je úplne určená aplikačným programom a používa sa na výber jednej zo štyroch bánk registrov.

Ako bajt môže byť register PSW reprezentovaný takto:

V mikroprocesoroch, ktorých architektúra sa spolieha na akumulátor, väčšina inštrukcií pracuje na akumulátore pomocou implicitného adresovania. Intel 8051 je iný. Aj keď je procesor založený na batérii, dokáže vykonávať mnoho príkazov bez jej účasti. Dáta je napríklad možné preniesť z ľubovoľnej bunky RDM do ľubovoľného registra, do ľubovoľného registra je možné načítať okamžitý operand atď. Mnohé logické operácie možno vykonávať bez zapojenia akumulátora. Okrem toho je možné premenné inkrementovať, dekrementovať a kontrolovať bez použitia akumulátora. Príznaky a riadiace bity je možné kontrolovať a meniť rovnakým spôsobom.

2.6. Registre ukazovateľov

8-bitový ukazovateľ zásobníka (SP) môže adresovať akúkoľvek oblasť RDM. Jeho obsah sa zvýši pred uložením údajov do zásobníka počas inštrukcií PUSH a CALL. Obsah SP sa zníži po vykonaní príkazov POP a RET. Tento spôsob adresovania prvkov zásobníka sa nazýva pre-inkrementácia/post-decrement. Počas inicializácie mikrokontroléra sa po signáli RST automaticky nahrá do SP kód 07H. To znamená, že pokiaľ aplikačný program neprepíše zásobník, prvý dátový prvok v zásobníku bude umiestnený v RDM umiestnení 08H.

Dvojbajtový dátový ukazovateľ DPTR sa zvyčajne používa na zachytenie 16-bitovej adresy v operáciách prístupu k externej pamäti. Pomocou príkazov mikrokontroléra môže byť register dátového ukazovateľa použitý buď ako 16-bitový register alebo ako dva nezávislé 8-bitové registre (DPH a DPL).

2.7. Registre špeciálnych funkcií

Registre, symbolicky pomenované IP, IE, TMOD, TCON, SCON a PCON, sa používajú na blokovanie a programovú zmenu riadiacich a stavových bitov obvodov prerušenia, časovača/počítadla, sériového vysielača s prijímačom a správy napájania. Ich organizácia bude podrobne popísaná v častiach 1.8-1.12, keď sa zvažujú vlastnosti mikrokontroléra v rôznych režimoch.

2.8. Ovládacie a synchronizačné zariadenie

Kremenný rezonátor pripojený k vonkajším kolíkom mikrokontroléra riadi činnosť interného oscilátora, ktorý zase generuje synchronizačné signály. Riadiaca jednotka (CU) na základe synchronizačných signálov generuje cyklus stroja s pevnou dobou trvania rovnajúcou sa 12 periódam generátora. Väčšina inštrukcií mikrokontroléra sa vykonáva v jednom strojovom cykle. Niektoré inštrukcie, ktoré pracujú s 2-bajtovými slovami alebo majú prístup k externej pamäti, trvajú dva strojové cykly. Iba inštrukcie na delenie a násobenie vyžadujú štyri strojové cykly. Na základe týchto prevádzkových vlastností riadiaceho zariadenia sa vypočítava čas vykonávania aplikačných programov.

V obvode mikrokontroléra susedí s riadiacim zariadením register inštrukcií (IR). Jeho funkciou je uložiť kód vykonávaného príkazu.

Vstupné a výstupné signály riadiaceho a synchronizačného zariadenia:

1. PSEN – rozlíšenie programovej pamäte,

2. ALE – výstupný signál umožňuje fixáciu adresy,

3. PROG – programovací signál,

4. EA – blokovanie práce s internou pamäťou,

5. VPP – programovacie napätie,

6. RST – všeobecný resetovací signál,

7. VPD – výkon zálohy pamäte z externý zdroj,

8. XTAL – pripojovacie vstupy kremenný rezonátor.

2.9. Paralelné vstupné/výstupné porty

Všetky štyri porty (P0-P3) sú určené na vstup alebo výstup informácií bajt po byte. Každý port obsahuje riadený latch register, vstupnú vyrovnávaciu pamäť a výstupný ovládač.

Pri prístupe k externej pamäti sa používajú výstupné ovládače portov P0 a P2, ako aj vstupná vyrovnávacia pamäť portu P0. V tomto prípade sa cez port P0 v režime časového multiplexovania najprv vyšle dolný bajt adresy a potom sa vydá alebo prijme dátový bajt. Port P2 vydáva najvýznamnejší bajt adresy v prípadoch, keď je šírka adresy 16 bitov.

Všetky kolíky portu P3 možno použiť na implementáciu alternatívnych funkcií uvedených v tabuľke. 4. Tieto funkcie možno aktivovať zápisom 1 do zodpovedajúcich bitov registra blokovania (P3.0-P3.7) portu P3.

Tabuľka 4

Alternatívne funkcie portu P3

Názov a účel

Čítanie. Aktívny nízkoúrovňový signál je generovaný hardvérom pri prístupe k externej dátovej pamäti

Záznam. Aktívny nízkoúrovňový signál je generovaný hardvérom pri prístupe k externej dátovej pamäti

Vstup časovača/počítadla 1 alebo testovací vstup

Vstup časovača/počítadla 0 alebo testovací vstup

Vstup požiadavky na prerušenie 1. Sníma nízku úroveň alebo signál prerušenia

Vstup požiadavky na prerušenie 0. Sníma nízku úroveň alebo signál prerušenia

Výstup vysielača sériového portu v režime UART. Výstup hodín v režime posuvného registra

Vstup prijímača sériového portu v režime UART. Vstup/výstup dát v režime posuvného registra

Port 0 je obojsmerný a porty 1-3 sú kvázi obojsmerné. Každá portová linka môže byť použitá nezávisle pre vstup alebo výstup.

Na základe signálu RST sa jednotky automaticky zapisujú do blokovacích registrov všetkých portov, čím sa nastavia na vstupný režim.

Všetky porty možno použiť na organizáciu vstupu/výstupu informácií cez obojsmerné prenosové linky. Porty P0 a P2 však nemožno na tento účel použiť, ak má systém externú pamäť, s ktorou je komunikácia organizovaná prostredníctvom spoločnej zdieľanej adresovej/dátovej zbernice pracujúcej v režime časového multiplexovania.

Prístup k I/O portom je možný pomocou príkazov, ktoré fungujú na byte, jednotlivom bite alebo ľubovoľnej kombinácii bitov. Okrem toho v prípadoch, keď je port operandom aj cieľom výsledku, riadiace zariadenie automaticky implementuje špeciálny režim nazývaný „čítanie-upravovanie-zápis“. Tento režim prístupu zahŕňa vstup signálov nie z externých kolíkov portu, ale z jeho registra latch, čo eliminuje nesprávne čítanie predtým výstupných informácií. Tento mechanizmus pre prístup k portom je implementovaný v príkazoch:




Hore