Kontakty

Ako vytvoriť port na príjem mcs 51. Mikrokontroléry z rodiny mcs51. Príkazy bitových operácií

Stav systému prerušenia je zisťovaný na konci každého cyklu stroja vo fáze S5P2, s výnimkou príkazov RETI a akýchkoľvek príkazov odkazujúcich na registre IE a IP. Od okamihu opravy požiadavky na prerušenie do servisu prerušenia trvá od 38 do 86 periód frekvencie fOSC, v závislosti od fázy požiadavky a počtu strojových cyklov príkazu, počas ktorého bola žiadosť prijatá .

Keď je prerušenie implementované v hardvéri, vykoná sa inštrukcia LCALL addr16, ktorá zaistí uloženie aktuálneho stavu programového počítadla do pamäte (uloženie návratovej adresy) a presun na štartovaciu adresu addr16 zodpovedajúcej servisnej procedúry. Každý zdroj žiadosti o prerušenie má svoj vlastný

počiatočná adresa (vektor prerušenia):

Externé prerušenie INT0.

Časovač / počítadlo prerušenia TC0.

Externé prerušenie INT1.

Časovač / počítadlo prerušenia TC1.

Prerušenie sériového portu.

2.7. Metódy adresovania a systém príkazov z rodiny MCS-51

Riadiaci systém rodiny MCS-51 je zameraný na organizáciu flexibilného vstupu a výstupu údajov prostredníctvom univerzálnych portov P0 ... P3 a primárne spracovanie informácií. Zvláštna pozornosť je venovaná operáciám s bitmi a prenosu kontroly podľa ich hodnoty. Pokyny na vykonávanie týchto operácií predstavujú veľkú skupinu a spolu s príslušným hardvérom tvoria v architektúre MCS-51 takzvaný „booleovský procesor“.

Sada inštrukcií poskytuje programátorovi možnosť používať väčšinu operácií s úplnou sadou metód adresovania a hardvérovými prostriedkami dostupnými pre softvér.

2.7.1. Spôsoby adresovania

Každá inštrukcia informuje procesor o operácii, ktorú má vykonať, a o spôsoboch prístupu k operandom. Kód príkazu má niekoľko polí, ktoré majú konkrétny funkčný účel. Najdôležitejšími poľami akéhokoľvek príkazu sú operačný kód (CPC), ktorý určuje činnosť príkazu, a časť adresy. Polia adresnej časti obsahujú informácie o adresách operandov a výsledku operácie a v niektorých prípadoch informácie o adrese nasledujúceho príkazu.

Ak adresa ukazuje na číslo pamäťovej bunky, v ktorej sa operand nachádza alebo kde je zapísaný, nazýva sa to priama adresa.

Metódy adresovania sú súborom mechanizmov na prístup k operandom. Niektoré z nich sú jednoduché, vedú k kompaktnému formátu inštrukcií a rýchlemu prístupu k operandu, ale majú obmedzené množstvo dostupných zdrojov. Ostatní vám umožňujú pracovať so všetkými zdrojmi, ktoré má systém k dispozícii, ale príkaz sa ukáže byť dlhý

vstup a prevedenie je časovo náročné. Sada spôsobov adresovania v každom súbore inštrukcií je kompromisnou kombináciou známych mechanizmov adresovania, ktoré vybrali architekti na základe súboru úloh, ktoré je potrebné vyriešiť.

Nasledujú hlavné metódy adresovania používané v rodine príkazov MCS-51.

Implicitné adresovanie... Príkaz neobsahuje explicitné pokyny o adrese operandu zúčastňujúceho sa operácie alebo adrese, na ktorej je umiestnený výsledok operácie, ale táto adresa je implikovaná. V príkazoch je akumulátor najčastejšie implicitne adresovaný ako prijímač výsledku operácie. Napríklad výsledok pridania obsahu akumulátora (A) a registra R1 aktuálnej databanky s inštrukciou ADD A, R1 sa zapíše do implicitne adresovateľného akumulátora. Celý zadaný príkaz zaberá jeden bajt v pamäti, pričom adresa iba akumulátora (8Eh oblasti SFR) obsahuje jeden bajt.

Priame adresovanie... Pole adresy príkazu obsahuje

Adresa nie je adresou operandu, ale samotného operandu. Priame adresovanie je označené špeciálnym znakom # pred číslom. Napríklad pomocou príkazu MOV A, # 15h sa do akumulátora načíta hexadecimálne číslo 15 (druhý bajt príkazu). V príkazovom systéme je priame adresovanie označené ako #data, kde údaje sú číslo

(údaje = 00h ... FFh).

Priame adresovanie... Pole adresy príkazu udáva priamu adresu bunky dátovej pamäte, v ktorej sa operand nachádza alebo kde je zapísaný. Napríklad pomocou príkazu MOV A, 15h sa do bunky nahrá obsah bunky DSEG s adresou 15h. Bunka pamäte je priamo adresovateľná, zatiaľ čo akumulátor je implicitný. V závislosti od umiestnenia adresovaného operandu je priame adresovanie rozdelené na priamy register a absolútny.

Priame adresovanie registra... Pole adresy príkazu obsahuje priamu adresu registra aktuálnej banky registrov. V každej banke je osem registrov a na ich adresovanie je potrebná trojbitová adresa dopredu. V mnemotechnike príkazov je adresovateľný register označený ako Rn, kde n = 0 ... 7. Všetky príkazové polia sa zmestia do jedného bajtu. Toto sa nazýva krátke adresovanie. Napríklad MOV R4, R1.

Priame absolútne adresovanie vám umožňuje odkazovať na akúkoľvek bunku DSEG a oblasť SFR. Priama adresa v tomto prípade trvá jeden bajt a príkaz - dva bajty. V príkazovom systéme je bajt priamej adresy označený slovom direct (direct = 00h… FFh). Napríklad inštrukcia MOV 80h, R2 (alebo MOV P0, R2) načíta obsah registra R2 aktuálnej dátovej banky do portu P0 (umiestnenie 80h oblasti SFR). Ak majú oba operandy priame absolútne adresovanie, potom sa inštrukcia stane trojbajtovou (napríklad MOV 80h, 15h).

Nepriame adresovanie... Pole adresy obsahuje adresu pamäťovej bunky, v ktorej sa nachádza priama adresa operandu. V príkazovom systéme špeciálny symbol @ označuje nepriame adresovanie. Nehnuteľnosť

registre R0 a R1 (@Ri, i = 0,1) každej banky registrov majú priamu adresu. Ak je napríklad obsah registra R1 aktuálnej banky registrov 15 hodín, potom inštrukcia MOV A, @ R1 vykoná rovnakú akciu ako vyššie uvedená inštrukcia MOV A, 15 hodín - načíta obsah pamäťovej bunky DSEG s adresou 15h do akumulátora. Inštrukcia MOV A, @ R1 je však jednobajtová, ale čo je najdôležitejšie, je možné programovo zmeniť adresu zmenou obsahu registra R1.

Relatívne adresovanie... Pri relatívnom adresovaní je priama adresa vytvorená pridaním základnej adresy do poľa adresy príkazu. Obsah počítadla programu sa používa ako základná adresa a pole adresy príkazu je osembitový offset rel (relatívny). Číslo rel je príkazom interpretované ako celé číslo so znamienkom, reprezentované dvoma doplnkami. Rozsah jeho prezentácie je (-128 ... + 127). Pri určovaní čísla rel majte na pamäti, že počítadlo programu ukazuje na nasledujúci príkaz, ktorý sa má vykonať. Relatívne adresovanie je široko používané v príkazoch riadenia prenosu, čo vám umožňuje vytvárať premiestniteľné moduly programu. Riadiace prenosové príkazy s relatívnym adresovaním umožňujú organizovať vetvenie vzhľadom na aktuálnu polohu počítačového programového počítadla v oboch smeroch (-128 ... + 127) bajtov.

V programoch jazykov zostavovania môžete v poli odsadenia určiť štítok, na ktorý sa má skočiť. V dôsledku prekladu assembler vypočíta hodnotu posunu, ak nepresahuje (-128 ... + 127). V opačnom prípade sa zobrazí chybové hlásenie.

Základné adresovanie predstavuje druh relatívneho adresovania. Priama adresa je v tomto prípade vytvorená pridaním adresy uvedenej v príkaze k obsahu základného registra, ktorý ukladá základnú adresu. Funkciou základného registra v rade MCS-51 je register dátového ukazovateľa DPTR alebo počítačový programový čítač. Tento typ adresovania je obzvlášť užitočný pri spracovaní tabuliek a dátových polí. V pokynoch MOVC A, @ A + DPTR a MOVC A, @ A + PC je 16-bitová adresa dopredu vytvorená ako súčet obsahu DPTR a A alebo PC a A.

Adresovanie stránky... Keď sa používa stránkovanie, pamäť je rozdelená na sériu strán rovnakej dĺžky. Stránky sú adresované samostatným registrom stránok a bunky pamäte na stránke sú adresované adresou uvedenou v príkaze. Priama adresa je vytvorená zreťazením (pripojením) adresy stránok a adresy pamäťovej bunky v rámci stránky. V inštrukcii MOVX A, @ Ri port P2 (vysoký bajt adresy) plní funkciu registra stránok a obsah registra Ri (nízky bajt adresy) nastavuje adresu v rámci stránky. V tomto prípade je pamäť rozdelená na 256 stránok po 256 buniek v každom z nich.

Adresovanie zásobníka sa používa v neadresovateľných príkazoch a je kombináciou metód automatického prírastku a automatického znižovania, ktoré fungujú na princípe LIFO (L ast I nput - F irst O utput) - „posledný vstup - prvý výstup“. Zásobník sa nachádza v DSEG a rastie v smere zvyšovania adresy. Adresa vrcholu zásobníka je obsiahnutá v ukazovateli zásobníka SP. Keď je do zásobníka zapísaný bajt, najskôr sa zvýši obsah SP a potom sa vykoná zápis na túto adresu. Pri čítaní bajtu zo zásobníka číta najskôr na adrese, na ktorú ukazuje SP, a potom SP zníži. Pri použití zásobníka je potrebné mať na pamäti, že hĺbka zásobníka (maximálny počet pamäťových buniek obsadených zásobníkom) nie je riadená hardvérom. Pri nadmernom náraste zásobníka môžu byť pamäťové bunky, ktoré na to nie sú určené, obsadené stratou informácií v nich. Hardvérový zásobník sa používa na ukladanie návratovej adresy pri obsluhe prerušenia.

2.7.2. Sada príkazov rodiny MCS-51

Systém príkazov je uvedený v tabuľkách A2.1 ... A2.6 dodatku 2. Tabuľky uvádzajú názov príkazu, jeho mnemotechniku, kód binárnej operácie, vplyv vykonávaného príkazu na vlajky C, OV , AC a P, dĺžka príkazu v bajtoch (B) a doba vykonania v strojových cykloch (C), ako aj obsah transformácie vykonanej inštrukciou. Čiarka sa používa ako oddeľovač pre polia adries v príkazoch. Ak chcete zlepšiť čitateľnosť, môžete za čiarku pridať medzery, ak ich používa práve používaný assembler.

Celý súbor príkazov je možné rozdeliť do 5 skupín: operácie prenosu údajov, aritmetické operácie, logické operácie, bitové operácie a operácie riadenia prenosu.

Skupina príkazov pre operácie prenosu dát(tabuľka A2.1) s-

pojme príkazy MOV (prenos dát medzi DSEG a RSEG), MOVC (medzi CSEG a A), MOVX (medzi XSEG a A), prístupy do zásobníka PUSH a POP a dva výmenné príkazy XCH a XCHD. Všetky príkazy na prenos údajov, ktoré prijímajú batériu, nastavujú príznak parity P obsahu batérie a príkazy na priamu adresu, ktoré prijímajú register PSW, menia všetky príznaky. Najobjemnejšou je inštrukcia MOV, ktorá používa štyri metódy adresovania: register direct (A, Rn, DPTR), direct (direct), nepriamy (@Ri), direct (#data, # data16). Druhý operand príkazu je zdroj, prvý je cieľ. Existujú tri spôsoby adresovania (okrem priameho) na označenie cieľa a všetky štyri spôsoby uvedenia zdroja. Trojbajtový priamy, priamy prenos príkazov MOV medzi akýmikoľvek dvoma pamäťovými miestami (DSEG a SFR) vrátane RSEG. Na výmenu s RSEG sú k dispozícii špeciálne dvoj- a jednobajtové formáty:

Špeciálna inštrukcia MOV DPTR # data16 načíta 16-bitový ukazovateľ DPTR s údajmi16.

Inštrukcia MOVC vám umožňuje čítať informácie z pamäte programu CSEG nie do príkazového registra riadiaceho zariadenia, ale do batérie ovládacieho zariadenia. Príkaz používa dve metódy adresovania: založené na DPTR a relatívne k počítaču. V oboch prípadoch je celočíselný posun (index) bez znamienka uložený v akumulátore. Batéria slúži aj ako prijímač výsledku. Príkaz vám umožňuje vykonávať rýchle transkódovanie medzi tabuľkami.

K externej pamäti sa pristupuje pomocou inštrukcie MOVX. Výmenu vykonávajú bajty medzi batériou a externým XSEG. Bunku XSEG je možné adresovať dvoma spôsobmi: nepriamo prostredníctvom 16-bitového ukazovateľa DPTR a nepriamo stránkovať prostredníctvom 8-bitového ukazovateľa Ri, i = 0,1. V druhom prípade sa ako register stránok používa register P2.

Neadresné príkazy PUSH a POP poskytujú prenos dát

medzi DSEG, RSEG a SFR.

Výmenná inštrukcia XCH poskytuje obojsmernú výmenu bytov a inštrukcia XCHD poskytuje najmenej významné tetrady bajtových operandov.

Skupina aritmetických príkazov(tabuľka A2.2) co-

obsahuje inštrukcie na sčítanie ADD, sčítanie s carry ADDC, odčítanie s vypožičaním SUBB, prírastok a úbytok o jeden INC a DEC, sčítaný formát BCD sčítanie, násobenie MUL a delenie DIV. Operácie sa vykonávajú s celými číslami bez znamienka. Pri operáciách sčítania a odčítania je akumulátor prvým operandom a príjemcom výsledku. Na definovanie druhého operandu sa používa priamy register, priame absolútne, priame a nepriame adresovanie. Operácie INC a DEC sa vzťahujú na akumulátor, priamo adresovateľný register alebo priamo alebo nepriamo adresovateľné pamäťové miesto. Operácia INC sa navyše vzťahuje na obsah 16-bitového registra ukazovateľa DPTR.

Operácie násobenia a delenia celého čísla bez znamienka zahŕňajú akumulátor a register B. Pri násobení je 8-bitová hodnota A vynásobená 8-bitovou hodnotou B a 16-bitový výsledok je zapísaný do dvojice BA. V takom prípade register B ukladá hornú časť produktu. Príznak OV sa nastaví, ak je produkt väčší ako 255. Keď je 8-bitová hodnota A delená 8-bitovou hodnotou B, kvocient sa zapíše do A a zvyšok sa zapíše do B. Keď sa urobí pokus. na delenie 0, je nastavený príznak pretečenia OV.

Príkaz DA na opravu desatinných miest akumulátora je umiestnený za príkazom pridať. Termíny musia byť uvedené v kóde BCD. Oprava sa vykonáva štandardným spôsobom.

Skupina príkazov pre logické operácie(tabuľka A2.3 ) obsahuje tri typické operácie: ANL - logické AND, ORL - logické ALEBO, XRL - logické exkluzívne ALEBO. Zdroj prvého operandu

slúži buď akumulátor A, alebo priamo adresovateľná pamäťová bunka. Druhý operand je určený jednou zo štyroch základných metód adresovania. Skupina tiež zahŕňa jednotlivé operácie nad obsahom akumulátora: CLR - číry, CPL - inverzia, ako aj RL, RLC, RR a RRC - operácie cyklických a predĺžených posunov doprava a doľava. Patrí sem aj prevádzka výmeny notebookov v akumulátore SWAP, ktorú je možné interpretovať ako cyklický posun bajtu o štyri číslice.

Skupina bitových operácií(tabuľka A2.6) obsahuje ko-

príkazy SETB - nastavenie bitu na 1, CLR - vynulovanie bitu na 0, CPL - bitová inverzia, ANL a ORL - logické A a logické ALEBO obsah príznaku C a priamo adresovaný bit, MOV - prenos bitov.

IN bitové operácie, príznak C funguje ako booleovský akumulátor. Operandy sú obsah príznaku C alebo priamo adresovateľný bit oblasti BSEG. Operácie ANL a ORL môžu využívať obsah priamo adresovateľného bitu (bit) alebo inverziu obsahu (/ bit).

IN táto skupina zahŕňa aj príkazy na podmienené vetvenie s relatívnymi 8-bitový offset rel. Podmienený skok je možné vykonať tak s bitom set (príkaz JB), ako aj s vymazaním (príkaz JNB). Zvlášť pozoruhodný je príkaz JBC, ktorý keď je bit nastavený, implementuje vetvenie a súčasne vymaže bit na 0.

Ovládajte skupinu príkazov prenosu(tabuľky A2.4 a A2.5) s-

drží bezpodmienečné skokové príkazy AJMP, LJMP, SJMP, JMP, podmienený skok JZ, JNZ, CJNE, volanie ACALL, LCALL, návrat RET, RETI a úpravu pomocou podmieneného skoku DJNZ. Súčasťou je aj prázdny príkaz NOP.

IN Relatívne adresovanie je široko používané v riadiacich prenosových príkazoch, čo vám umožňuje vytvárať premiestniteľné programové moduly. Relatívna adresa je 8-bitový offset rel je podpísaný bajt, ktorý poskytuje skok (–128… +127) bajtov vzhľadom na aktuálnu polohu počítača. Na skok na akékoľvek iné miesto v 64K adresnom priestore je možné použiť buď priamu adresu addr16 alebo nepriamu adresu @ A + DPTR. V druhom prípade je obsah A interpretovaný ako celé číslo bez znamienka. Krátky variant addr11 s priamym adresovaním na aktuálnej stránke 2 kB bol zavedený kvôli kompatibilite s rodinou MCS-48.

Všetky tieto typy adresovania sa používajú v skokových pokynoch. V príkazoch na volanie sa používajú iba metódy priameho addr16 a intrapage addr11. Všetky podmienené príkazy používajú iba relatívne adresovanie.

Keď mikrokontrolér rozpozná požiadavku na prerušenie, vygeneruje inštrukciu LCALL addr16, ktorá automaticky zaistí, že návratová adresa je uložená v zásobníku. Informácie o stave programu (obsah registra PSW) sa automaticky neukladajú. Kde

Mikrokontrolérová architektúra

Pochopenie architektúry mikrokontrolérov je kľúčové pri učení sa programovacích jazykov, ako je napríklad montáž. Štruktúra assembleru, formát jeho pokynov, adresovanie operandov atď. Sú úplne určené architektúrou. Cieľom štúdia architektúry je:

· Identifikácia súboru registrov dostupných na programovanie, ich funkčného účelu a štruktúry;

· Pochopenie organizácie pamäte s náhodným prístupom a poradia jej použitia;

· Znalosť dátových typov;

· Štúdium formátu strojových inštrukcií;

· Objasnenie organizácie spracovania prerušenia.

Architektúra rodiny MCS -51 je do značnej miery predurčená jej účelom - výstavbou kompaktných a lacných digitálnych zariadení. Všetky funkcie MK sú implementované pomocou jedného mikroobvodu. Rodina MCS-51 obsahuje celý rad mikroobvodov od najjednoduchších mikrokontrolérov po najzložitejšie. Mikrokontroléry radu MCS-51 vám umožňujú vykonávať obe riadiace úlohy pre rôzne zariadenia a implementovať jednotlivé uzly analógového obvodu. Všetky mikroobvody tejto rodiny pracujú s rovnakým príkazovým systémom, väčšina z nich je vykonaná v rovnakých balíkoch s rovnakým vývodom (číslovanie pinov pre balík). To umožňuje použitie mikroobvodov od rôznych výrobcov (napríklad Intel, Dallas, Atmel, Philips atď.) Pre vyvinuté zariadenie bez zmeny schémy zapojenia zariadenia a programu.

MCS-51 je založený na architektúre Harvard, kde sú oddelené programové pamäte a dátové adresné priestory.

Blokový diagram ovládača je znázornený na obrázku 2.3 a pozostáva z nasledujúcich hlavných funkčných jednotiek: riadiaca jednotka, aritmetické logické zariadenie, jednotka časovača / počítadla, sériové rozhranie a prerušenia, programový čítač (príkazový čítač), dátová pamäť a programová pamäť.

Obojsmerná výmena sa vykonáva pomocou internej 8-bitovej dátovej diaľnice. Pozrime sa podrobnejšie na účel každého bloku. Podľa tejto schémy sú postavení takmer všetci zástupcovia rodiny MCS-51. Rôzne mikroobvody tejto rodiny sa líšia iba v účelových registroch (vrátane počtu portov). Súbor inštrukcií všetkých radičov rodiny MCS-51 obsahuje 111 základných inštrukcií vo formáte 1, 2 alebo 3 bajty a pri prechode z jedného mikroobvodu na druhý sa nemení. To poskytuje vynikajúcu prenosnosť programov z jedného mikroobvodu na druhý.

Riadiaca a synchronizačná jednotka(Timing and Control) je navrhnutý tak, aby generoval synchronizačné a riadiace signály, ktoré zaisťujú koordináciu spoločnej prevádzky jednotiek OEVM vo všetkých prípustných režimoch jej prevádzky. Riadiaca jednotka obsahuje:


  • zariadenie na tvarovanie časového úseku,
  • kombinovaný vstupno-výstupný obvod,
  • register príkazov,
  • dekodér príkazov.

Vstup a víkend signály riadiacej a synchronizačnej jednotky:

1 PSEN- rozlíšenie pamäte programu;

2 Ale- výstupný signál povolenia zablokovania adresy;

3 PROG- programovací signál;

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

5 VPP- programovacie napätie;

6 RST- signál generálneho resetovania.

Časovacie zariadenie je potrebné na synchronizáciu postupnosti stavov CPU, ktoré tvoria strojový cyklus, ako aj na správnu činnosť všetkých vnútorných západiek a výstupných vyrovnávacích pamätí portov. Strojový cyklus pozostáva zo šiestich po sebe nasledujúcich stavov (stavov) od S1 do S6, z ktorých každý je ďalej rozdelený do dvoch fáz:

fáza 1 (fáza 1 - P1) a fáza 2 (fáza 2 - P2). Cyklus stroja teda môže byť definovaný ako postupnosť časových úsekov S1P1, S1P2, S2P1, ...., S6P2. Trvanie fázy sa rovná obdobiu opakovania hodinových impulzov, preto strojový cyklus trvá 12 hodinových periód.

Trvanie vykonania inštrukcie určuje počet strojových cyklov. Takmer všetky pokyny sa vykonávajú v jednom alebo dvoch strojových cykloch, s výnimkou pokynov na násobenie a delenie, ktorých doba vykonania sú štyri strojové cykly. Logika vstupov a výstupov je navrhnutá na príjem a vydávanie signálov, ktoré poskytujú výmenu informácií s externými zariadeniami prostredníctvom vstupno -výstupných portov P0 -P3.

Register príkazov je určený na zaznamenávanie a ukladanie 8-bitového prevádzkového kódu vykonávaného príkazu. Operačný kód sa pomocou dekodéra príkazov a logiky riadenia počítača prevedie na mikroprogram na vykonanie príkazu.

Obr. 2.3. Blokový diagram jednočipového mikrokontroléra Intel 8051

(Rodina MCS-51)

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

  • holdingové registre -TMP1 a TMP2,
  • ROM konštanty,
  • sčítačka,
  • dodatkový register - register B,
  • batéria - ACC,
  • register stavu programu programu (register vlajok) - PSW.

Držiace registre TMP1, TMP2- osembitové registre určené na príjem a ukladanie operandov počas trvania operácií s nimi. Tieto registre nie sú programovo prístupné.

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

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

Zaregistrujte sa B.- osembitový register používaný počas operácií násobenia a delenia. Pokiaľ ide o ďalšie pokyny, je možné ho považovať za dodatočný superoperačný register.

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

Register stavu programu PSW (Programm Status Word) je určený na ukladanie stavového slova vykonávaných príkazov. Pri vykonávaní mnohých príkazov v ALU sa vygeneruje niekoľko operačných znakov (vlajok), ktoré sú zafixované v registri stavového slova programu (PSW). Tabuľka 1 uvádza zoznam vlajok PSW, uvádza ich symbolické názvy a opisuje podmienky ich vzniku.

Prerušenie a sériový blok - UART (univerzálny asynchrónny prijímač / vysielač) je určený na organizáciu vstupno-výstupných sekvenčných informačných tokov a organizáciu systému na prerušenie programu.

Prerušenie podľa definície znamená dočasné prerušenie hlavného výpočtového procesu s cieľom vykonať niektoré plánované alebo neplánované akcie spôsobené prevádzkou hardvéru alebo programu.

Tieto akcie môžu mať charakter služby, môžu byť požiadavkou používateľského programu na vykonanie údržby alebo môžu byť reakciou na nenormálne situácie.

Systém príkazov OMEVM poskytuje skvelé možnosti spracovania údajov, poskytuje implementáciu logických, aritmetických operácií a tiež ovládanie v reálnom čase. Je implementované bitové, tetradové (4 bity), bajtové (8 bitové) a 16-bitové spracovanie údajov. Rad LSI MCS-51-8-bitový: ROM, RAM, špeciálne účelové registre, ALU a externé zbernice majú bajtovú organizáciu. Dvojbajtové údaje používajú iba register ukazovateľov (DPTR) a počítač počítadiel príkazov. Je potrebné poznamenať, že register ukazovateľa údajov je možné použiť ako dvojbajtový register DPTR alebo ako dva jednobajtové špeciálne účelové 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 pre väčšinu príkazov zostavovacieho jazyka pozostáva z mnemotechnického označovača funkcií, za ktorým nasledujú operandy označujúce metódy adresovania a dátové typy. Rôzne typy údajov alebo režimy adresovania sú určené nastavenými operandmi, nie zmenami v mnemotechnických označeniach. Systém príkazov je možné podmienene rozdeliť do piatich skupín:
  • Aritmetické príkazy;
  • Logické príkazy;
  • Príkazy na prenos údajov;
  • Príkazy bitového procesora;
  • Rozvetvenie a ovládanie príkazov na prenos.
Existujú nasledujúce typy adresovania zdrojových operandov:
  • Adresovanie registra
  • Priame adresovanie
  • Nepriame adresovanie registra
  • Priame adresovanie
  • Nepriame adresovanie registrov súčtom základných a indexových registrov
Aritmetické inštrukcie Súbor inštrukcií obsahuje nasledujúce aritmetické operácie: sčítanie, sčítanie s vlajkou na prenášanie, odčítanie s vypožičaním, prírastok, znižovanie, porovnávanie, desatinná korekcia, násobenie a delenie. V ALU sa operácie vykonávajú s celými číslami bez znamienka. Pri operáciách s dvoma operandmi: sčítanie (ADD), sčítanie a prenos (ADDC) a odčítanie a požičiavanie (SUBB) je akumulátor prvým operandom a prijíma výsledok operácie. Druhým operandom môže byť pracovný register zvolenej banky pracovných registrov, register vnútornej pamäte s nepriamym registrom a priamym adresovaním alebo priame dátové bajty. Tieto operácie ovplyvňujú príznaky: dokončenie, prenos, medziľahlé prenášanie a príznak parity v stavovom slove procesora (PSW). Použitie prenosovej číslice vám umožňuje výrazne zlepšiť presnosť operácií sčítania (ADDC) a odčítania (SUBB). Sčítanie a odčítanie na základe znakov je možné vykonávať programovým riadením príznaku pretečenia (OV) registra PSW. Príznak stredného prenosu (AC) poskytuje aritmetiku BCD. Operácie prírastku a zníženia neovplyvňujú vlajky. Porovnávacie operácie neovplyvňujú cieľový ani zdrojový operand, ale ovplyvňujú príznaky prenášania. Existujú tri aritmetické operácie, ktoré sa vykonávajú iba s batériou: dva príkazy na kontrolu obsahu batérie A (JZ, JNZ) a príkaz na opravu desatinných miest pri pridávaní binárne-desatinných kódov. Počas operácie násobenia sa obsah akumulátora A vynásobí obsahom registra B a výsledok sa umiestni nasledovne: nízky bajt v registri B, najvyšší v registri A. Logické príkazy s bajtovými premennými Príkazový systém vám umožní implementovať logické operácie: „A“, „ALEBO“, „EXKLUZÍVNE ALEBO“ do registra akumulátora (A) a zdrojového bajtu. Druhým operandom (zdrojový bajt) môže byť pracovný register vo vybranej banke pracovných registrov; interný register RAM adresovaný pomocou nepriameho adresovania registrov; priamo adresovateľné bunky vnútornej pamäte RAM a účelové registre; okamžitá hodnota. Tieto logické operácie je možné implementovať na akomkoľvek priamo adresovateľnom registri vnútornej pamäte RAM alebo registri špeciálneho účelu pomocou obsahu akumulátora A alebo priamych dát ako druhého operandu. Existujú logické operácie, ktoré sa vykonávajú iba na batérii: resetujte a invertujte všetkých osem bitov A; cyklický posun doľava a doprava; cyklický posun doľava a doprava, berúc do úvahy vlajku prenášania; výmena miest seniorského a juniorského tetradu (hrotov) vo vnútri batérie. Príkazy na prenos údajov Tabuľky symbolov (kódov) vložených do pamäte ROM programu je možné vybrať pomocou príkazov na prenos údajov pomocou nepriameho adresovania. Konštantný bajt je možné preniesť do akumulátora z bunky pamäte programu, pričom je adresovaný súčtom základného registra (PC alebo DPTR) a indexového registra (obsah A). To napríklad poskytuje pohodlný spôsob implementácie algoritmu na konverziu kódu ASCII na sedemsegmentový kód. Ktorúkoľvek bunku 256-bajtového bloku externej dátovej pamäte RAM je možné vybrať pomocou nepriameho adresovania registrov prostredníctvom registrov ukazovateľa R0 alebo R1 (vybraná banka pracovných registrov). Umiestnenie v 64 kB externom adresnom priestore RAM je možné tiež vybrať pomocou nepriameho adresovania registrov prostredníctvom registra dátového ukazovateľa DPTR. Prenosové príkazy medzi priamo adresovateľnými registrami vám umožňujú zadať hodnotu z portu do vnútornej bunky RAM bez použitia pracovných registrov alebo batérie. V logickom procesore môže byť akýkoľvek dopredu adresovateľný bit umiestnený do prenosového bitu a naopak. Obsah akumulátora je možné zameniť za obsah pracovných registrov (zvolenej banky) a za obsah vnútorných buniek RAM adresovaných pomocou nepriameho adresovania registrov, ako aj za obsah priamo adresovateľných buniek vnútornej pamäte RAM a s obsahom registrov na špeciálne účely. Vedľajšia nibl (bity 3-0) obsahu akumulátora môže byť vymenená za menšiu nibl obsahu vnútorných buniek RAM, vybraných pomocou adresného nepriameho adresovania. Pokyny pre bitový procesor Bitový procesor je súčasťou architektúry MCU rodiny MCS51 a je možné ho považovať za nezávislý bitový procesor. Bitový procesor vykonáva sadu inštrukcií, má vlastnú bitovú adresu RAM a vlastné I / O. Bitové inštrukcie poskytujú priame adresovanie 128 bitov (0-127) v šestnástich bunkách vnútornej pamäte RAM (bunky s adresami 20H-2FH) a priame bitové adresovanie registrov špeciálneho určenia, ktorých adresy sú násobky ôsmich. Každý z jednotlivo adresovateľných bitov môže byť nastavený na „1“, vymazaný na „0“, invertovaný, skontrolovaný. Prechody je možné implementovať: ak je bit nastavený; ak bit nie je nastavený; prechod, ak je bit nastavený, s vymazaním tohto bitu; bit je možné prepísať na (z) prenosový bit. Logické operácie „A“, „ALEBO“ je možné vykonávať medzi ľubovoľným priamo adresovateľným bitom a príznakom prenosu, kde je výsledok zapísaný do bitu príznaku prenosu. Bitové inštrukcie na spracovanie poskytujú implementáciu komplexných funkcií kombinatorickej logiky a optimalizáciu užívateľských programov. Rozvetvenie a riadenie príkazov na prenos Adresný priestor pamäte programu nemá organizáciu stránkovania, ktorá vám umožňuje voľne presúvať fragmenty programu v rámci priestoru adries bez opätovného načítania (zmeny) čísla stránky. Presúvanie jednotlivých fragmentov programu poskytuje možnosť používať premiestniteľné moduly programu rôznymi programami. 16-bitové pokyny na volanie vetvy a podprogramu vám umožňujú skočiť na akékoľvek miesto v adresnom priestore pamäte programu 64 KB. 11-bitové skoky a pokyny na vyvolanie podprogramu poskytujú skoky v rámci 2 kB programovej jednotky. V príkazovom systéme existujú príkazy na podmienené a nepodmienečné skoky vzhľadom na počiatočnú adresu nasledujúceho programu v rozsahu od (РС) -128 do (ЗС) +127. Príkazy na kontrolu jednotlivých bitov umožňujú podmienené prechody na stave "0" alebo "1" priamo adresovaných bitov. Pokyny na kontrolu obsahu batérie (na nulu / nulu) umožňujú podmienené skoky na obsah A. Nepresné skoky registrov v inštrukčnom systéme poskytujú vetvenie vzhľadom na základný register (obsah DPTR alebo PC) s posunom umiestneným v akumulátor A. Adresovanie registrov Adresovanie registrov slúži na prístup k ôsmim pracovným registrom vybranej banky pracovných registrov (rovnaké registre je možné zvoliť pomocou priameho adresovania a nepriameho adresovania registrov ako bežných buniek vnútornej dátovej pamäte RAM). Adresovanie registrov sa používa na prístup k registrom A, B, AB (dvojitý register), DPTR a príznaku prenosu C. Použitie registračného adresovania vám umožňuje získať dvojbajtový ekvivalent trojbajtových pokynov pre priamu adresu. Priame adresovanie Priame bajtové adresovanie sa používa na prístup k miestam vnútornej pamäte (RAM) (0-127) a špeciálnym registrom. Bitové dopredné adresovanie sa používa na označenie oddelene adresovateľných 128 bitov umiestnených v adresných miestach 20H-2FH a na zvlášť adresovateľné bity registrov špeciálneho účelu. Najvýznamnejší bit bajtu kódu priamej adresy vyberá jednu z dvoch skupín oddelene adresovateľných bitov umiestnených v pamäti RAM alebo v účelových registroch. Priamo adresovateľné bity s adresami 0-127 (00H-7FH) sú umiestnené v bloku 16 vnútorných buniek RAM s adresami 20H-2FH. Uvedené bunky sú postupne číslované od najmenej významného bitu najmenej významného bajtu po najvýznamnejší bit najvýznamnejšieho bajtu. Samostatne adresovateľné bity v účelových registroch sú očíslované nasledovne: päť najvýznamnejších bitov adresy sa zhoduje s piatimi najvýznamnejšími bitmi samotného registra a tri najmenej významné bity určujú umiestnenie jednotlivého ibt v registri. Nepriame adresovanie registra Nepriame adresovanie registra sa používa na označenie buniek vnútornej dátovej pamäte RAM. Registre R10, R1 zvolenej banky registrov sa používajú ako registre ukazovateľov. Príkazy PUSH a POP používajú obsah ukazovateľa zásobníka (SP). Nepriame adresovanie registrov sa používa aj na prístup k externej dátovej pamäti. V tomto prípade sa pomocou registrov ukazovateľov R0 a R1 (vybraná banka pracovných registrov) vyberie bunka z bloku 256 bajtov externej dátovej pamäte. Číslo bloku je prednastavené obsahom portu P2. 16-bitový dátový ukazovateľ (DPTR) je možné použiť na prístup na akékoľvek miesto v adresnom priestore externej dátovej pamäte až do 64 kB. Priame adresovanie Priame adresovanie vám umožňuje vybrať konštanty z adresného priestoru pamäte programu, ktoré sú výslovne uvedené v príkaze. Adresovanie nepriameho registra súčtom základných a indexových registrov Nepriame adresovanie registrov súčtom: základný register plus register registra (obsah akumulátora A) uľahčuje prezeranie tabuliek zapojených do pamäte programu. Akýkoľvek bajt z tabuľky je možné vybrať na adrese určenej súčtom obsahu DPTR alebo PC a obsahu A. Tabuľka symbolov a symbolov použitých v príkazovom systéme
Označenie, symbol Vymenovanie
ALE Batéria
Rn Registre aktuálne zvolenej registračnej banky
r Číslo načítaného registra uvedené v príkaze
priamy Priamo adresovateľná 8-bitová interná adresa dátovej bunky, ktorou môže byť vnútorná dátová RAM (0-127) alebo SFR bunka (128-255)
@Rr Nepriamo adresovateľná 8-bitová bunka vnútornej dátovej pamäte RAM
údaje8 8-bitové priame údaje idúce do CZK
údajeH Najvýznamnejšie bity (15-8) priamych 16-bitových údajov
údaje L. 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ý offset so znamienkom m
trocha Priamo adresovateľný bit, ktorého adresa obsahuje CPC umiestnenú vo vnútornej 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: sčítanie odčítania násobenie delenie logické násobenie (operácia AND) logické sčítanie (operácia ALEBO) modulo 2 sčítanie (exkluzívne ALEBO) inverzia prvku X

Funkčná mnemotechnika je jedinečne spojená so špecifickými kombináciami metód adresovania a dátových typov. V systéme príkazov je možné celkom 111 takýchto kombinácií. Tabuľka poskytuje zoznam príkazov zoradených podľa abecedy.

Mnemotechnika Funkcia Vlajky
Príkaz ACALL Absolútne podprogramové volanie
PRIDAŤ tím A,<байт-источник> Dodatok AC, C, OV
ADDC tím A,<байт-источник> Prenášanie AC, C, OV
Tím AJMP Absolútny prechod
ANL tím<байт-назначения>, <байт-источникa> Logické „A“
Tím ANL C,<байт-источникa> Logické „A“ pre variabilné bity
Tím CJNE<байт-назначения>, <байт-источник>, <смещение> Porovnávajte a skáčte, ak nie ste rovnakí C.
Príkaz CLR A. Reset batérie
Príkaz CLR Trochu sa vyjasňuje C, bit
CPL tím A Inverzia ak umul ora
Tím CPL Bitová inverzia C, bit
Tím DA A Desatinná oprava akumulátora na vloženie AC, C.
Tím DEC<байт> Zníženie
Tím DIV AB Divízia C, OV
Tím DJNZ<байт>, <смещение> Zníženie a prechod, ak nie nula
Tím INC<байт> Prírastok
Tím INC DPTR Prírastok dátového ukazovateľa
Tím JB , Skok, ak je nastavený bit
Tím JBC , Skočte, ak je bit nastavený, a odstráňte ho
Tím JC Skok, ak je nastavené prenášanie
Príkaz JMP @ A + DPTR Nepriamy prechod
Tím JNB , Skočte, ak nie je nastavený bit
Tím JNC Skočte, ak nie je nastavené prenášanie
Tím JNZ Skočte, ak je obsah batérie nenulový
Tím JZ Skočte, ak je obsah akumulátora 0
Príkaz LCALL Dlhý hovor
Tím LJMP Dlhý prechod
Príkaz MOV<байт-назначения>, <байт-источника> Odoslať bajtovú premennú
Príkaz MOV<бит-назначения>, <бит-источника> Odoslať dátový bit C.
Príkaz MOV DPTR, # data16 Načítať dátový ukazovateľ so 16-bitovou konštantou
Príkaz MOVC A, @ A + ( ) Odoslať bajt z pamäte programu
Príkaz MOVX<байт приемника>, <байт источника> Odosielanie údajov do externej pamäte (z externej pamäte)
Tím MUL AB Násobenie C, OV
Príkaz NOP Žiadna operácia PC
Tím ORL<байт-назначения>, <байт-источникa> Logické „ALEBO“ pre variabilné bajty
Tím ORL C,<бит источникa> Logické „ALEBO“ pre variabilné bity C.
Príkaz POP Čítanie zo stohu
PUSH príkaz Stohovanie
Príkaz RET Návrat z podprogramu
Tím RETI Návrat z prerušenia
RL A tím Posuňte obsah batérie doľava
Tím RLC A. Posuňte obsah batérie doľava pomocou vlajky na prenášanie
Tím RR A Posuňte obsah batérie doprava
Tím RRC A. Posuňte obsah batérie doprava pomocou vlajky na prenášanie C.
Príkaz SETB Nastav bit C.
Tím SJMP<метка> Krátky skok
SUBB A tím,<байт источника> Odčítanie pôžičkou AC, C, OV
SWAP Príkaz Výmena notebookov vo vnútri batérie
Tím XCH A,<байт> Výmena obsahu batérie za variabilný bajt
XCHD tím A, na R1 Výmena notebooku
Príkaz XRL<байт-назначения>, <байт-источникa> Logické EXKLUZÍVNE ALEBO pre variabilné bajty

UDC 681,5, 681,325,5 (075,8)

BBK 32,973,202-018,2 i 73

Shcherbina A.N.Výpočtové stroje, systémy a siete. Mikrokontroléry a mikroprocesory v riadiacich systémoch: cheb. príspevok / A.N. Shcherbina, P.A. Nechaev- SPb.: Z polytechniky. Univerzita, 2012.-226 s.

Zodpovedá obsahu štátneho vzdelávacieho štandardu pre oblasti výcviku a odborov v oblasti manažmentu v technických systémoch, elektrickej energii a elektrotechnike a obsahu vzorových učebných osnov pre disciplínu „Počítače, stroje a systémy“.

Na príklade základnej architektúry rodiny mikrokontrolérov MCS-51 od spoločnosti Intel sa uvažuje o základných otázkach logickej organizácie mikroprocesorových systémov. Je popísaná technológia programovania mikrokontrolérov v jazykoch Assembler a SI.

Môže byť užitočný pre študentov a učiteľov vyšších technických inštitúcií, špecialistov na automatizáciu technologických procesov a výrobných zariadení, ako aj pre projektantov mikroprocesorových systémov.

Vyhovuje aj obsahu štátneho vzdelávacieho štandardu odborov „Mikrokontroléry a mikroprocesory v riadiacich systémoch“ a „Elektronické zariadenia automatizácie“ bakalárske, inžinierske a magisterské vzdelávanie v smere 140400 „Elektrická energia a elektrotechnika“.

Dotlačené rozhodnutím Redakčnej a publikačnej rady

Štátna polytechnická univerzita v Petrohrade.

© Shcherbina A. N., Nechaev P. A., 2012

© Štát Petrohrad

Polytechnická univerzita, 2012

ISBN 978-5-7422-3553-8


Úvod .. 7

Kapitola 1. Architektúra rodiny MCS51. 10

1.1 Všeobecné charakteristiky 10

1.2 Blokový diagram 11



1.3 Účel záverov mikrokontroléra 8051 15

1.4 Organizácia pamäte 17

1.4.1 Programová pamäť (ROM) 18

1.4.2 Dátová pamäť (RAM) 19

1.4.3 Registre špeciálnych funkcií. dvadsať

1.4.4 Register vlajok (PSW) 23

1.5 Riadiace a synchronizačné zariadenie 26

1.6 Usporiadanie I / O portov 27

1.6.1 Všeobecné informácie. 27

1.6.2 Alternatívne funkcie. 27

1.7. Časovače / počítadlá pre mikrokontroléry 8051.28

1.7.1. Štruktúra časovačov. 28

1.7.2 Režimy činnosti časovačov a počítadiel. tridsať

1,8. Sériový port 32

1.8.1. Štruktúra sériového portu. 32

1.8.2. Register / stavový register transceiveru SCON .. 34

1.8.3. Register riadenia výkonu PCON .. 36

1.9. Systém prerušenia 37

1.9.1. Prerušiť štruktúru systému. 37

1.9.2 Vykonávanie rutín prerušenia. 40

Kapitola 2. Vlastnosti mikrokontroléra 80C51GB .. 42

2.1 Vlastnosti 42

2.2 I / O porty P0-P5 43

2.2.1 Fungovanie vstupno-výstupných portov. 43

2.2.2 Zápis do portu .. 46

2.3 Vlastnosti systému prerušenia 8XC51GB .. 49

Povoliť / zakázať prerušenia. päťdesiat

Prerušiť riadenie priority. 51

Externé prerušenia. 54

2.3. Uzol ADC 56

2.4. Hardvérový strážny pes 61

2.5. Detekcia zlyhania hodín 63

2.6. Matica programovateľných čítačov RSA 64

2.6.1. Štruktúra PCA .. 64

2.6.2. Register režimu počítadla PCA (CMOD) 66

2.6.3. Riadiaci register počítadla PCA (CON) 67

2.6.4. Porovnať / potvrdiť moduly. 68

2.7. Rozšírený sériový port 76

2.8. Časovače / počítadlá 79

Pinout skupiny mikrokontrolérov 8XC51GB .. 86

Kapitola 3. Programovanie MK 8051GB .. 89

3.1. Programovací model 89

3.2 Dátové typy 93

3.3 Metódy adresovania údajov 93

3.4 Systém príkazov 95

3.4.1 Všeobecné charakteristiky. 95

3.4.2 Typy príkazov. 96

3.4.3 Typy operandov. 97

3.4.4 Príkazy na prenos údajov mikrokontroléra. 98

3.4.5 Príkazy pre aritmetické operácie 8051.101

3.4.6 Príkazy logických operácií mikrokontroléra 8051.104

3.4.7 Príkazy na operácie s bitmi mikrokontroléra 8051.106

3.5 Ladiace programy 111

Kapitola 4. Programovací jazyk ASM-51. 112

4.2 Písanie textu programu 113

4.3 Abeceda jazyka. 114

4.4 Identifikátory. 115

4.5 Čísla 117

4.6 Smernice 118

4.7 Implementácia podprogramov v jazyku ASM51 122

4.7.1 Štruktúra podprogramového postupu v jazyku ASM51. 122

4.7.2 Prenos premenných parametrov do podprogramu. 123

4.7.3 Implementácia podprogramových funkcií v jazyku ASM51. 123

4.7.4 Implementácia rutín spracovania prerušení v jazyku ASM51. 124

4.8 Štruktúrované programovanie v montážnom jazyku. 125

4.9 Vlastnosti vysielania viacmodulových programov

4.10 Použitie segmentov 128

4.10.1 Rozdelenie pamäte MK na segmenty .. 128

4.10.2 Absolútne pamäťové segmenty. 129

4.10.2 Premiestniteľné pamäťové segmenty. 131

Kapitola 5. Programovací jazyk С-51. 134

5.1 Všeobecné charakteristiky jazyka 134

5.3 Štruktúra programu С-51 136

5.3. Prvky programovacieho jazyka C-51 138

5.3.1. Symboly .. 138

5.3.2. Lexikálne jednotky, oddeľovače a používanie medzier. 141

5.3.3 Identifikátory .. 142

5.3.4 Kľúčové slová. 143

5.3.5 Konštanty .. 143

5.4. Výrazy v jazykových operátoroch 146

programovanie C-51 146

5.5. Priority pre operácie 148

5.6. Prevádzkovatelia programovacieho jazyka C-51 149

5.6.1. Operátori vyhlásenia. 150

5.6.2 Spustiteľné operátory .. 150

5.6.3 Operátor priradenia. 151

5.6.4 Podmienený operátor. 151

5.6.5 Štruktúrovaný operátor (). 152

5.6.6 Operátor slučky pre. 152

5.6.7 Operátor slučky s kontrolou stavu až po telo slučky while. 153

5.6.8 Operátor slučky s kontrolou stavu za telom slučky urobí pričom. 154

5.6.9 Prestávka obsluhy. 155

5.6.10 Operátor pokračuje. 155

5.6.11 Prepínač obsluhy podľa výberu. 155

5.6.12 Prevádzkovateľ bezpodmienečnej pobočky. 157

5.6.13 Výraz operátora. 158

5.6.14 Prevádzkovateľ návratu z podprogramového návratu. 158

5.6.15 Prázdne vyhlásenie. 158

5.7. Deklarácia premenných v programovacom jazyku C-51. 159

5.7.1. Variabilné vyhlásenie. 159

5.7.3 Celočíselné dátové typy. 161

5.7.4 Čísla s pohyblivou rádovou čiarkou. 162

5.7.5 Premenné typu enumerácie. 162

5.7.6. Deklarácia polí v programovacom jazyku C-51. 164

5.7.7. Štruktúry .. 165

5.7.8. Kombinácie (zmesi) 166

5.8. Použitie ukazovateľov v C-51 167

5.8.1. Vyhlásenie ukazovateľov. 167

5.8.2. Netypové ukazovatele. 168

5.8.3. Ukazovatele závislé od pamäte. 169

5.9. Deklarácia nových typov premenných 169

5.10. Inicializácia údajov 170

5.11. Použitie podprogramov v programovacom jazyku C-51. 170

5.11.1. Definovanie podprogramov. 171

5.11.2. Parametre podprogramov. 173

5.11.3. Predbežná deklarácia podprogramov. 174

5.11.4 Vyvolávanie podprogramov .. 176

5.11.5 Rekurzívne volanie podprogramov. 176

5.11.6 Rutiny spracovania prerušenia. 177

5.11.7 Rozsahy premenných a podprogramov. 178

5.12. Multimodálne programy 179

Kapitola 6. Príprava programov v integrovanom vývojovom prostredí Keil μVision2. 182

6.1 Vytvorenie projektu v jazyku ASM-51 182

6.2 Príklad vytvorenia projektu v jazyku C pre školiaceho kontrolóra v integrovanom vývojovom prostredí Keil μVision2 188

Kapitola 7. Popis ovládača výcviku .. 199

7.1. Štruktúra ovládača 199

7.2. Adresný priestor 200

7.2.1. Vyhradenie pamäte. 200

7.2.2 Externá pamäť. 201

7.2.3. Interná dátová pamäť. 202

7.3. Mapovanie I / O portov 202

7.4. Sériový port ……………………………… ... 203

7.5. Práca s LCD 205

7.6. Panely ovládačov ………………………………………………… 213

DODATOK P2ŠTRUKTÚRA LABORATÓRNEJ SPRÁVY …… ..217

Príloha A3 Kódy pokynov k stroju. 217

Referencie ... 224


Úvod

Pri vývoji špecialít súvisiacich s automatizáciou technologických procesov a výroby je štúdium mikrokontrolérov jednou z dôležitých sekcií.

Vo svete neustále prebieha vývoj a vzniká stále viac 16- a 32-bitových mikrokontrolérov a mikroprocesorov, ale najväčší podiel na svetovom trhu s mikroprocesormi stále patrí 8-bitovým zariadeniam. Podľa všetkých predpovedí analytických spoločností na najbližšie obdobie si vedúce postavenie 8-bitových mikrokontrolérov na svetovom trhu zachová.

V súčasnosti je rodina MCS-51 spomedzi všetkých 8-bitových mikrokontrolérov nepochybným lídrom v počte odrôd a v počte spoločností, ktoré vyrábajú jej modifikácie. Názov dostal od prvého zástupcu tejto rodiny - mikrokontroléra 8051. Úspešná sada periférnych zariadení, flexibilný výber externej alebo internej programovej pamäte a rozumná cena zabezpečili tomuto mikrokontroléru úspech na trhu.

Výhody rodiny MCS-51:

· Architektúra, ktorá je de facto štandardom;

· Mimoriadna šírka rodiny a rozmanitosť možností;

· Dostupnosť vysokovýkonných a rozšírených verzií procesorov;

· Značný počet voľne dostupných softvérových a hardvérových vývojov;

· Jednoduché hardvérové ​​programovanie vrátane obvodového programovania;

· Nízke náklady a dostupnosť základných čipov;

Dostupnosť špecializovaných verzií ovládačov pre špeciálne podmienky použitia

· Dostupnosť verzií ovládačov so zníženou úrovňou elektromagnetického rušenia;

· Široko známy medzi vývojármi staršej generácie, vo svete aj v krajinách SNŠ;

· Podpora architektúry poprednými svetovými vzdelávacími inštitúciami.

A nakoniec, hlavná výhoda: po zvládnutí základného čipu rodiny môžete ľahko začať pracovať s takými počítačovými „príšerami“, akými sú mikrokontroléry Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

Rodina MCS-51 obsahuje celý rad mikroobvodov od najjednoduchších mikrokontrolérov po najzložitejšie. Dnes existuje viac ako 200 modifikácií rodiny mikrokontrolérov 8051, ktoré vyrába takmer 20 spoločností. Každý rok sa objavuje stále viac variantov zástupcov tejto rodiny.

Hlavné smery vývoja sú:

· Zvýšenie výkonu (zvýšenie taktovacej frekvencie a redizajn architektúry);

· Zníženie napájacieho napätia a spotreby energie;

· Zvýšenie množstva pamäte RAM a FLASH na čipe s možnosťou programovania v obvode;

· Zavádzanie komplexných zariadení, ako sú systémy riadenia pohonov, rozhrania CAN a USB atď. Do periférie mikrokontroléra.

Mikrokontroléry radu MCS-51 vám umožňujú vykonávať obe riadiace úlohy pre rôzne zariadenia a implementovať jednotlivé uzly analógového obvodu. Všetky mikroobvody tejto rodiny pracujú s rovnakou inštrukčnou sadou. Väčšina z nich je vyrobená v rovnakých prípadoch s rovnakým vývodom (číslovanie nôh pre puzdro). To umožňuje použiť pre vyvinuté zariadenie mikroobvody od rôznych výrobcov bez zmeny schémy zapojenia zariadenia a programu.

Hlavnými výrobcami odrôd 51. rodiny na svete sú Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems a množstvo ďalších.

Charakteristiky analógov mikrokontrolérov radu MCS-51 (Intel 8XC51FA, 8XC51GB, 80C152) s rozšírenými schopnosťami sú uvedené v tabuľke. V 1.

Tabuľka B.1

RAM ROM PCA ADC WDT T / C Po pôrode Kanály Zvláštnosti
Atmel: AT89C2051
- - - - UART Flash 2 Kb
AT89C4051 - - - - UART Flash 4Kb
AT89S4D12 128 tis - - - UART, SPI Flash 4Kb
Polovodič DALLAS: DS5000FP
- - - + UART Zavádzač bootstrapu
DS5001FP - - - + UART Zavádzač bootstrapu
DS8xC520 16K - - + 2xUART 2 DPTR
SIEMENS: C505C
16K - + + UART, KAN 8 DPTR
C515C 64 tis - + + UART + SSC + CAN 4 PWM, 8 DPTR
Philips: * 89C51RA +
- + - + UART 2 DPTR, 4 lv. prerušenie, vyradenie, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART 4 úrovne IRQ, vyradenie
8XC196KC 64 tis 16K - + - UART 3 PWM
80C196KB 64 tis 8K - + - UART PWM

Kapitola 1. Architektúra rodiny MCS51

Rodina 8-bitových jednočipových mikrokontrolérov MCS-51 si vďaka dobre navrhnutej architektúre získala veľkú obľubu medzi dizajnérmi mikroprocesorových riadiacich systémov. Architektúra mikrokontroléra je zbierka interných a externých hardvérových zdrojov prístupných k softvéru a sada inštrukcií. Architektúra rodiny MCS -51 je do značnej miery predurčená jej účelom - výstavbou kompaktných a lacných digitálnych zariadení. Mikrokontroléry, ktoré vykonávajú všetky funkcie mikropočítača pomocou jedného mikroobvodu, sa nazývajú jednočipové počítače (OEVM).

Spoločnosť Intel vydala asi 50 modelov založených na operačnom jadre mikrokontroléra Intel 8051. V rovnakom čase mnoho ďalších firiem, napríklad Atmel, Philips, začalo vyrábať vlastné mikrokontroléry vyvinuté v štandarde MCS-51.

Všeobecné charakteristiky

Hlavné charakteristiky rodiny:

· 8-bitová centrálna procesorová jednotka (CPU), zameraná na ovládanie výkonných zariadení;

· CPU má vstavaný obvod na 8-bitové násobenie hardvéru a delenie čísel;

· Prítomnosť veľkého počtu operácií na prácu s priamo adresovateľnými bitmi v inštrukčnom súbore umožňuje hovoriť o procesore na prácu s bitovými dátami (booleovský procesor);

· Interná (umiestnená na čipe) programová pamäť maskovaného alebo preprogramovaného typu, ktorá má pre rôzne kryštály objem 4 až 32 Kb, v niektorých verziách absentuje;

· Najmenej 128 bajtov rezidentnej dátovej pamäte RAM, ktorá sa používa na organizáciu, registráciu bánk, ukladanie a ukladanie používateľských údajov;

· Najmenej 32 obojsmerných liniek rozhrania (portov), ​​individuálne nakonfigurovaných na vstup alebo výstup informácií;

· Dva 16-bitové viacrežimové čítače / časovače používané na počítanie externých udalostí, organizovanie časových oneskorení a taktovanie komunikačného portu;

· Obojsmerný duplexný asynchrónny transceiver (UART), navrhnutý tak, aby organizoval komunikačné kanály medzi mikrokontrolérom a externými zariadeniami so širokým rozsahom rýchlostí prenosu informácií. Existujú nástroje na hardvérovú a softvérovú integráciu mikrokontrolérov do pripojeného systému;

· Dvojúrovňový prioritný prerušovací systém podporujúci najmenej 5 vektorov prerušení zo 4 interných a 2 externých zdrojov udalostí;

· Vstavaný generátor hodín.

Štrukturálna schéma

Blokový diagram ovládača je znázornený na obrázku 1.1 a pozostáva z nasledujúcich hlavných funkčných jednotiek: riadiaca jednotka, aritmetická logická jednotka, jednotka časovača / počítadla, jednotka sériového rozhrania a prerušenia, počítadlo programov, pamäť údajov a programová pamäť. Obojsmerná výmena sa vykonáva pomocou internej 8-bitovej dátovej diaľnice. Podľa tejto schémy sú postavení takmer všetci zástupcovia rodiny MCS-51. Rôzne mikroobvody tejto rodiny sa líšia iba v účelových registroch (vrátane počtu portov).

Časovacia a riadiaca jednotka- navrhnuté tak, aby generovalo synchronizačné a riadiace signály, ktoré zaisťujú koordináciu spoločnej prevádzky jednotiek OEVM vo všetkých prípustných režimoch jej prevádzky. Riadiaca jednotka obsahuje:

zariadenie na vytváranie časových intervalov;

Logika I / O;

register príkazov;

register kontroly spotreby elektrickej energie;

dekodér príkazov, logika riadenia počítača.

Ryža. 1.1. Bloková schéma ovládača I8051.

Zariadenie na tvarovanie časového úseku je určený na vytváranie a vydávanie vnútorných synchronizačných signálov fáz, hodín a cyklov. Trvanie vykonania inštrukcie určuje počet strojových cyklov. Takmer všetky príkazy OEVM sa vykonávajú v jednom alebo dvoch strojových cykloch, s výnimkou príkazov pre násobenie a delenie, ktorých doba vykonania sú štyri strojové cykly. Označme frekvenciu hlavného oscilátora pomocou F g. Trvanie cyklu stroja je 12 / F g alebo 12 periód signálu hlavného oscilátora. Logika vstupov a výstupov je navrhnutá na príjem a vydávanie signálov, ktoré poskytujú výmenu informácií s externými zariadeniami prostredníctvom vstupno -výstupných portov P0 -P3.

Register príkazov je určený na zaznamenávanie a ukladanie 8-bitového prevádzkového kódu vykonávaného príkazu. Operačný kód sa pomocou dekodéra príkazov a logiky riadenia počítača prevedie na mikroprogram na vykonanie príkazu.

Register kontroly spotreby (PCON) umožňuje zastaviť mikrokontrolér, aby sa znížila spotreba energie a znížila ú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. To sa dá dosiahnuť trochou preklopenia v registri kontroly spotreby PCON. Pre n-MOS (séria 1816 alebo cudzie integrované obvody bez písmena „c“ uprostred) obsahuje register riadenia spotreby PCON iba jeden bit na riadenie prenosovej rýchlosti sériového portu SMOD a neexistujú žiadne bity riadenia napájania.

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

akumulátorové registre, prídržné registre TMP1 a TMP2;

ROM konštánt;

sčítač;

dodatočný register (register B);

batéria (ACC);

register stavu programu (PSW).

Registrovať akumulátor a držiace registre- osembitové registre určené na príjem a ukladanie operandov počas trvania operácií s nimi. Tieto registre nie sú programovo prístupné.

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

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

Zaregistrujte sa B.- osembitový register používaný počas operácií násobenia a delenia. Pokiaľ ide o ďalšie pokyny, je možné ho považovať za dodatočný superoperačný register.

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

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

Vyrovnávacia pamäť PIP;

logika riadenia;

kontrolný register;

vyrovnávacia pamäť vysielača;

vyrovnávacia pamäť prijímača;

transceiver sériového portu;

register priority prerušenia;

register umožňujúci prerušenie;

logika spracovania príznaku prerušenia a obvod generovania vektorov.

Počítadlo programov je navrhnutý tak, aby tvoril aktuálnu 16-bitovú adresu vnútornej 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 inkrementálny obvod (zvýšenie obsahu o 1).

Dátová pamäť (RAM) je určený na dočasné uloženie 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ú navrhnuté tak, aby zaisťovali výmenu informácií medzi počítačom a externými zariadeniami a tvorili 32 vstupno-výstupných liniek.

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 pamäťou iba na čítanie (ROM). Rôzne mikroobvody používajú masku, UV-vymazateľné alebo FLASH ROM.

Register ukazovateľa údajov (DPTR) je určený na ukladanie 16 - bitovej adresy externej dátovej pamäte.

Ukazovateľ zásobníka (SP) je osembitový register určený na organizovanie špeciálnej oblasti dátovej pamäte (zásobníka), do ktorej je možné dočasne uložiť akúkoľvek pamäťovú bunku.

1.3 Obsadenie pinov mikrokontroléra 8051(obr. 1.2)

· U ss - potenciál spoločného vodiča („uzemnenie“);

· U cc - hlavné napájacie napätie +5 V;

· X1, X2 - vodiče na pripojenie kremenného rezonátora;

RST - vstup generálneho resetovania mikrokontroléra;

· PSEN - povolenie externej pamäte programu, vydané iba pri prístupe k externej ROM;

· ALE - strobovanie adresy externej pamäte;

· ЕА - deaktivovať vnútornú pamäť programu; úroveň 0 na tomto vstupe núti mikrokontrolér vykonávať program iba z externej ROM; ignorovanie interného (ak je k dispozícii);

Ryža. 1.2. Obsadenie pinov 8051.

· P1-osembitový kvázi-obojsmerný vstupno-výstupný port, každý bit portu je možné naprogramovať na vstup aj výstup informácií bez ohľadu na stav ostatných bitov;

P2-osembitový kvázi obojsmerný port, podobný P1, kolíky tohto portu slúžia na vydávanie informácií o adrese pri prístupe k externému programu alebo dátovej pamäti (ak ide o 16-bitové adresovanie). Okrem toho sa kolíky portu používajú počas programovania na vkladanie bitov vyššieho rádu adresy do mikrokontroléra;

РЗ-osembitový kvázi-obojsmerný port, podobný P1, kolíky tohto portu môžu vykonávať množstvo alternatívnych funkcií, ktoré sa používajú počas činnosti časovačov, sériového vstupno-výstupného portu, radiča prerušenia a externého programu a dátová pamäť;

· P0-multiplexovaný osembitový obojsmerný port informačného vstupu a výstupu, cez tento port v rôznych časoch sa vydáva bajt adresy a údajov nízkeho rádu.

Organizácia pamäte

Celá séria MCS-51 má harvardskú architektúru, to znamená oddelené adresné priestory pre programovú a dátovú pamäť. Štruktúra pamäte je znázornená na obr. 1.3.

Množstvo vnútornej (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), 8 kB, 16 kB alebo 32 kB. V prípade potreby môže užívateľ rozšíriť programovú pamäť inštaláciou externej pamäte ROM. Prístup k internej alebo externej ROM je určený hodnotou signálu na pine EA (externý prístup):

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

EA = V ss (potenciál zeme) - prístup k externej ROM.

Pri kryštáloch bez ROM (bez ROM) musí byť kolík EA trvale pripojený k V ss.

Ryža. 1.3. Organizácia pamäte rodiny MCS-51

Strobo čítania externej ROM - (Program Store Enable) je generované pri prístupe k externej pamäti programu a je neaktívne počas prístupu k ROM umiestnenej na čipe. Oblasť dolných adries programovej pamäte používa prerušovací systém. Architektúra základného čipu 8051 poskytuje podporu pre päť zdrojov prerušenia:

· Dve externé prerušenia;

· Dve prerušenia z časovačov;

· Prerušenie zo sériového portu.

Na obr. 1.4 ukazuje mapu spodnej oblasti programovej pamäte.

Ryža. 1.4. Nižšia mapa pamäte programu

Programová pamäť (ROM)

V mikrokontroléroch radu 8051 sú programová pamäť a dátová pamäť nezávislými a nezávislými zariadeniami, ktoré sú adresované rôznymi príkazmi a riadiacimi signálmi.

Vstavaná programová pamäť umiestnená na čipe mikrokontroléra 8051 má 4 KB (v rodine až 32). Pri prístupe k externej programovej pamäti všetky mikrokontroléry z rodiny 8051 vždy používajú 16-bitovú adresu, ktorá im poskytuje prístup k 64 KB ROM. Mikrokontrolér vstupuje do pamäte programu pri čítaní operačného kódu a operandov (pomocou počítadla inštrukcií PC), ako aj pri vykonávaní pokynov na kopírovanie bajtu z pamäte programu do batérie. Keď sa vykonávajú príkazy kopírovania údajov, adresovanie bunky programovej pamäte, z ktorej sa budú údaje čítať, je možné vykonať pomocou počítačového počítadla aj špeciálneho dvojbajtového registra ukazovateľov údajov DPTR.

Dátová pamäť (RAM)

Dátová pamäť na čipe je 128 bajtov. Externá dátová pamäť môže mať až 64 kB. Prvých 32 bajtov je usporiadaných do štyroch bánk univerzálnych registrov, označených ako banka 0 - banka 3. Každá z nich pozostáva z ôsmich registrov R0 - R7. Program je kedykoľvek k dispozícii s adresovaním registrov iba jednou bankou registrov, ktorých počet je obsiahnutý v treťom a štvrtom bite stavového slova programu PSW.

Adresy bitových oblastí pamäte mikrokontroléra 8051

Tabuľka 1.1

Bajtová adresa (hexadecimálna) Bitové adresy po bitových
D7 D6 D5 D4 D3 D2 D1 D0
2F 7F 7E 7D 7C 7B 7A
2E
2D 6F 6E 6D 6C 6B 6A
2C
2B 5F 5E 5D 5C 5B 5A
2A
4F 4E 4D 4C 4B 4A
3F 3E 3D 3C 3B 3A
2F 2E 2D 2C 2B 2A
1F 1E 1D 1C 1B 1A
0F 0E 0D 0C 0B 0A
20 hod

Zostávajúci priestor adries môže vývojár nakonfigurovať podľa vlastného uváženia: môže sa prispôsobiť oblasti zásobníka, systému a používateľských údajov. K bunkám dátovej pamäte je možné pristupovať dvoma spôsobmi. Prvým spôsobom je priame adresovanie pamäťovej bunky. V tomto prípade je adresa bunky operandom zodpovedajúcej inštrukcie. Druhou metódou je nepriame adresovanie pomocou registrov ukazovateľa R0 alebo R1: pred vykonaním zodpovedajúceho príkazu musí byť do jedného z nich zadaná adresa bunky, ktorej sa má adresovať.

Na prístup k externej dátovej pamäti sa používa iba nepriame adresovanie pomocou registrov R0 a R1 alebo pomocou 16-bitového registra ukazovateľa DPTR.

Súčasťou dátovej pamäte je bitová oblasť, v ktorej je možné pomocou špeciálnych bitových inštrukcií adresovať každý bit pamäťových buniek. Adresa priamo adresovateľných bitov môže byť tiež zapísaná ako (Bajtová adresa). (Bit). Korešpondenciu týchto dvoch spôsobov adresovania je možné určiť z tabuľky. 1.1.

Architektúra rodiny MCS -51 je do značnej miery predurčená jej účelom - stavbou kompaktný a lacné digitálne zariadenia. Všetky funkcie mikropočítača sú implementované pomocou jedného mikroobvodu. Rodina MCS-51 obsahuje celý rad mikroobvodov od najjednoduchších mikrokontrolérov po najzložitejšie. Mikrokontroléry radu MCS-51 vám umožňujú vykonávať obe 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úci pinout(číslovanie nôh pre telo). To umožňuje pre vyvinuté zariadenie použiť 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ý diagram ovládača K1830BE751

Blokový diagram ovládača 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, jednotka sériového rozhrania a prerušenia, počítadlo programov, pamäť údajov a programová pamäť. Obojsmerná výmena sa vykonáva pomocou internej 8-bitovej dátovej diaľnice. Pozrime sa podrobnejšie na účel každého bloku. Podľa tejto schémy sú postavení takmer všetci zástupcovia rodiny MCS-51.... Rôzne mikroobvody tejto rodiny sa líšia iba v účelových registroch (vrátane počtu portov). Veliaci systém všetky ovládače rodiny MCS-51 obsahuje 111 základných inštrukcií s formátom 1, 2 alebo 3 bajtov a pri prechode z jedného mikroobvodu na druhý sa nemení. To poskytuje vynikajúcu prenosnosť programov z jedného mikroobvodu na druhý.

Riadiaca a synchronizačná jednotka

Časovacia a riadiaca jednotka je navrhnutá tak, aby generovala synchronizačné a riadiace signály, ktoré zaisťujú koordináciu spoločnej činnosti jednotiek OEVM vo všetkých prípustných režimoch jej prevádzky. Riadiaca jednotka obsahuje:

  • zariadenie na tvarovanie časového úseku,
  • I / O logika,
  • register príkazov,
  • register kontroly spotreby elektrickej energie,
  • dekodér príkazov, logika riadenia počítača.

Zariadenie na tvarovanie časového úseku je určený na vytváranie a vydávanie vnútorných synchronizačných signálov fáz, hodín a cyklov. Trvanie vykonania inštrukcie určuje počet strojových cyklov. Takmer všetky príkazy OEVM sa vykonávajú v jednom alebo dvoch strojových cykloch, s výnimkou príkazov pre násobenie a delenie, ktorých doba vykonania sú štyri strojové cykly. Označme frekvenciu hlavného oscilátora pomocou F g. Potom je trvanie cyklu stroja rovné 12 / F g alebo 12 periód signálu hlavného oscilátora. Logika vstupov a výstupov je navrhnutá na príjem a vydávanie signálov, ktoré poskytujú výmenu informácií s externými zariadeniami prostredníctvom vstupno -výstupných portov P0 -P3.

Register príkazov je určený na zaznamenávanie a ukladanie 8-bitového prevádzkového kódu vykonávaného príkazu. Operačný kód sa pomocou príkazov a logiky riadenia počítača prevedie na mikroprogram na vykonanie príkazu.

Register kontroly spotreby (PCON) vám umožňuje zastaviť činnosť mikrokontroléra, aby sa znížila spotreba energie a znížila ú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. To sa dá dosiahnuť trochou preklopenia v registri kontroly spotreby PCON. Pre n-MOS (séria 1816 alebo cudzie integrované obvody bez písmena „c“ uprostred) obsahuje register riadenia spotreby PCON iba jeden bit na riadenie prenosovej rýchlosti sériového portu SMOD a neexistujú žiadne bity riadenia napájania.

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


http: //site/MCS51/tablms.php


http: //site/MCS51/SysInstr.php


http: //site/MCS51/port.php



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