Koncom šesťdesiatych a začiatkom sedemdesiatych rokov sa objavil nový druh elektronickej súčiastky,
ktorý zásadným spôsobom ovplyvnil počítačovú techniku - mikroprocesor.
Stal sa hlavnou časťou mikropočítača, ktorá určuje charakter a ovplyvňuje výkon celého systému.
Neskôr bolo možné s postupnou integráciou zlúčiť všetky obvody mikropočítača do jedného integrovaného obvodu,
a tým vznikla rada jednočipových mikropočítačov. V tejto skupine počítačov prebiehal najintenzívnejší vývoj
pri ktorom sa zväčšovala kapacita pamäte programu, aj dát a rozširovala sa zostava periférnych zariadení.
Jednočipové mikropočítače vhodné na riadenie v reálnom čase museli byť rozšírené o dôležité moduly ako napríklad časovače,
prevodníky a modulátory. Takýmto mikropočítačom hovoríme riadiace mikropočítače (microcontroller). Je možné povedať,
že riadiaci mikropočítač je užšie špecializovaný, menej univerzálny jednočipový mikropočítač. Jednočipová verzia riadiaceho mikropočítača,
ktorá býva zabudovaná na čipe do zložitejších číslicových štruktúr, sa nazýva vnorený mikropočítač (embedded microcontroller). [16.1, 16.2, 16.4]
Ako univerzálna štruktúra mikropočítača sa najčastejšie používa jednozbernicová štruktúra počítača,
pretože zmena funkcie tohto systému sa dosiahne len zmenou programu (zmení sa len algoritmus – postupnosť inštrukcií)
pri minimálnej zmene štruktúry siete obvodu.
Mikropočítač, ktorého bloková schéma je na obr.16.1 obsahuje tieto hlavné časti
RJ – riadiaca jednotka (Control Unit) – koordinuje činnosť modulov zoskupených okolo vnútornej zbernice. RJ obsahuje mikroprogramovú pamäť (v nej sa nachádza postupnosť príkazov na realizáciu jednotlivých inštrukcií programu), programové počítadlo PC (Program Counter), register inštrukcií IR (Instruction Register) a ďalšie obvody.
ALJ – aritmeticko-logická jednotka Arithmetic-Logic Unit) – vykonáva v počítači aritmetické a logické operácie, uskladňuje medzivýsledky pri operáciách v pracovných registroch, zaznamenáva stav charakterizujúci výsledky operácií v tzv. príznakových registroch.
CP – centrálny procesor (Central Processing Unit) - je model počítača v ktorom sa fyzicky nachádza RJ spolu s ALJ.
OP – operačná pamäť (Memory) – uchováva program mikropočítača a údaje. Čítané alebo zapisované údaje majú najčastejšie dĺžku 8, 16, 32, ... bitov
PV/V – paralelný vstup/výstup (Parallel Input/Output) – nám sprostredkováva prenos údajov medzi periférnym zariadením PZ a CP. V jednom takte diskrétneho času sa naraz prenáša napríklad 8-bitový údaj.
SV/V – sériový vstup/výstup (Serial Input/Output) – nám sprostredkováva prenos údajov medzi periférnym zariadením PZ a CP.
V jednom takte diskrétneho času sa prenáša 1-bitový údaj. Známe sú dva spôsoby sériového prenosu:
asynchrónny (synchronizačný znak má každá informačná jednotka ),
synchrónny (synchronizačný znak má skupina informačných jednotiek ).
DMA – priamy prístup do pamäti (Direct Memory Access) – nám sprostredkováva prenos medzi V/V obvodom a operačnou pamäťou OP bez účasti CP. Využíva sa pre zrýchlenie prenosu (blokový prenos údajov), procesor môže vykonávať inú úlohu. Spôsob DMA prístupu je na nasledujúcom obr.16.2 .
Zbernica (Bus) – systémová zbernica je skupina vodičov, ktorá jednotným spôsobom spája jednotlivé časti mikropočítača,
a tým umožňuje výmena informácií medzi nimi.
Základné delenie zberníc podľa ich funkcie:
adresová – je jednosmernou zbernicou sprostredkovávajúcou prenos adries a tým selekciu zariadenia alebo pamäťovej bunky,
z ktorých sa dáta budú čítať, respektíve do ktorých sa dáta budú zapisovať,
riadiaca – distribuje riadiace signály zabezpečujúce riadenie a spoluprácu jednotlivých blokov mikroprocesora,
alebo aj externých zariadení pripojených k mikroprocesoru,
dátová – je obojsmernou zbernicou prenášajúcou dáta medzi jednotlivými blokmi mikroprocesora.
Poznáme aj ďalšie delenie zberníc. [16.1]
Časti a funkcie mikropočítača
Mikropočítač môžeme rozdeliť na niekoľko základných častí, medzi ktoré patria mikro-procesor, pamäť programu,
pamäť dát a periférne obvody.
Prepojenie týchto častí je v mikropočítači prevedené pomocou sústavou zberníc ako vidíme na obr.16.3 .
Pri takejto koncepcii pomocou zberníc je výhodné to, že môžeme rozširovať mikropočítač o ďalšie jednotky a to bez zmien vo vnútornom zapojení jednotiek.
Nevýhodou tohto zapojenia je, že v jednom okamihu ,môže byť pripojený len jeden zdroj dát. Potom nemôžme súčasne predávať dáta z dvoch zdrojov
k dvom príjemcom. V jednom okamihu je činnosť zbernice riadené jednou z jednotiek, ktorá je väčšinou mikroprocesor,
ale v niektorých prípadoch to môže dočasne prebrať aj iná jednotka.
Dátová zbernica je určená na prenos dát a jej šírka je väčšinou násobkom ôsmych. Jednotka pripojená na zbernicu môže byť zdrojom dát, vtedy sa z nej číta,
príjemcom dát, a vtedy sa do nej zapisuje alebo striedavo zdrojom aj príjemcom dát. Smer čítanie/zápis sa vždy rozlišuje z pohľadu od procesora.
Adresná zbernica je potrebná pre adresovanie pamätí a pre rozlišovanie medzi jednotkami pripojených na dátovú zbernicu.
Šírka adresnej zbernice určuje maximálny počet adries. Najvyššie bity adresy sú vedené do adresného dekóderu z ktorého výstupy vyberajú jednu
z jednotiek a povolujú jej činnosť. Pokiaľ je jednotkou integrovaný obvod tak sa jedná o jeho vstup CS. Nižšie bity adresy sú využité pre adresovanie
vo vnútri obvodu v rámci jednotky.
Čítanie a zápis sú riadené a presne časované prostredníctvom signálov riadiacej zbernice. Čítanie je označené ako RD a zápis je WR.
Väčšina riadiacich signálov je generovaných mikroprocesorom, ale niektoré môžu byť generované aj ostatnými jednotkami,
ktoré tak ovplyvňujú činnosť mikroprocesora. [16.2]
Adresné priestory
Adresný priestor je množina adries, na ktorú môžeme dosiahnuť jedným typom zbernicového cyklu. Potom môže existovať programový priestor,
dátový priestor, vstupný priestor, výstupný priestor a atď. Usporiadanie adresného priestoru súvisí s architektúrou počítača, so zložením riadiacej
zbernice a s inštrukčným súborom počítača. Adresný priestor môžeme znázorniť tak, ako to je na obr.16.4a,b.
V týchto prípadoch máme dva druhy adresného priestoru.
Počítač s jedným adresným priestorom do ktorého sú vložené podpriestory - programový, dátový a periférny.
Obvodové riešenie je navrhnuté tak aby všetky obvody boli zahrnuté do jedného priestoru a to je docielené jedným adresným dekóderom,
ktorý aktivuje vždy len jednu skupinu obvodov a spoločným rozvodom riadiacich signálov RD a WR do všetkých obvodov.
Existujú vlastne len dva zbernicové cykly - čítanie a zápis.
Počítač s viac adresným priestorom (napr. programový, dátový, periférny). V týchto priestoroch môže existovať rovnaká adresa a preto k rozlíšeniu priestoru
nemôže slúžiť adresa, ale typ zbernicového cyklu. Máme tieto cykly: čítanie inštrukcie, čítanie dát, zápis dát, čítanie z periférnych obvodov,
zápis do periférnych obvodov, prípadne aj niektoré ďalšie. Väčší počet zbernicových cyklov využíva aj väčší počet riadiacich signálov. [16.2]
Logický integrovaný obvod, ktorý obsahuje najmenej aritmeticko-logickú jednotku ALJ a riadiacu jednotku RJ sa nazýva mikroprocesor a tento integrovaný obvod je začlenený v štruktúre mikropočítača ako vidíme na obr.4.21.5 .
Ak integrovaný obvod obsahuje mikroprocesor (ALJ + RJ), pamäť a vstupné /výstupné obvody nazývame ho jednočipový mikropočítač.
K tomuto mikropočítaču môžeme pripojiť rôzne periférne zariadenia ako sú tlačiareň, klávesnica, myš a iné. [21.1]
generácie mikroprocesora.
Na obrázku 4.21.6 sú dve základné architektúry pripojenia mikroprocesora k pamäťovému systému.
Architektúra Von Neumann je charakteristická tým, že má spoločnú pamäť pre dáta a aj pre program. Výhodou tejto architektúry je jednoduché riadenie a nevýhodou je, že v spoločnej pamäti sídlia dáta a program súčasne, a preto v jednom okamihu môže prebiehať len výber inštrukcie z pamäte alebo presun dát z a do pamäte.
Harvardská architektúra je charakteristická tým, že má oddelenú pamäť pre program a pamäť pre dáta. Výhodou tejto architektúry je vyššia rýchlosť systému, pretože pri výbere inštrukcie z programovej pamäti môže prebiehať naraz aj presun dát z dátovej pamäte. Dátová pamäť je pripojená obojsmernou a pamäť programu jednosmernou dátovou zbernicou. Harvardská architektúra sa používa s výhodou v rôznych modifikáciách, ktoré sú rozdelené na:
a, modifikácia 1 - nám umožňuje súčasné uloženie dát a inštrukcií v pamäti programu , ak musíme načítať dvojoperandovú inštrukciu použijeme pamäť, ktorá má polovičnú dobu prístupu ako celkový inštrukčný cyklus. Počas prvej polovice inštrukčného cyklu je načítaný operačný kód inštrukcie z programovej pamäte a prvý operand z dátovej pamäte. Počas druhej polovice inštrukčného cyklu je načítaný druhý operand z dátovej pamäte, prípadne ešte tretí operand súčastne z programovej pamäte v prípade trojoperandovej inštrukcie,
b, modifikácia 2 - dátová pamäť je viacportová a umožňuje tak niekoľkonásobný prístup do dátovej pamäte v rámci jedného inštrukčného cyklu,
c, modifikácia 3 - v prípade nutnosti súčasného prístupu k dátam a inštrukcii doplníme modifikáciu 1 o vyrovnávaciu pamäť. Inštrukciu z programovej pamäte načítame do vyrovnávacej pamäte, čím môžeme následne načítať operandy súčasne z dátovej aj programovej pamäte. Takéto riešenie je použité v systémoch, kde sa využívajú opakovane krátke slučky bez nutnosti načítavania inštrukcie použitej opakovane v slučke a uloženej vo vyrovnávacej pamäti,
d, modifikácia 4 - nazývaná aj ako duálna harvardská architektúra kvôli použitiu dvoch dátových pamätí a jednej programovej pamäti,
umožňuje v jednom inštrukčnom cykle načítať naraz dva operandy. [21.3]
Organizácia mikroprocesora
Mikroprocesor je jadrom mikropočítača a vo veľkej miere ovplyvňuje jeho výkon.
Model osembitového mikroprocesora na obr.16.8 obsahuje tieto základné bloky zoskupené okolo riadiacej jednotky:
- riadiaca jednotka,
- aritmeticko-logická jednotka,
- akumulátor,
- registre na všeobecné použitie,
- registre inštrukcií,
- programové počítadlo,
- vnútorné údajové a riadiace zbernice.
Akumulátor ACC je osobitný register, ktorý obyčajne obsahuje jeden operand spracovávaný ALJ jednotkou. Druhý operand sa najčastejšie nachádza v bloku pracovných registrov, ale aj mimo procesora v operačnej pamäti. Výsledok aritmetickej (logickej) operácie (napríklad aritmetický súčet) sa ukladá do akumulátora. Akumulátor považujeme za hlavný pracovný register mikroprocesora. Obsah programového počítadla (PC - Program Counter) reprezentuje adresu inštrukcie. Programové počítadlo vysiela adresy inštrukcií v takom poradí, aby ich mohol mikroprocesor postupne vyberať z operačnej pamäte a potom následne aj vykonať.
Inštrukcie, ktoré tvoria program sú zakódované v strojovom kóde mikroprocesora. Kódy sú uložené v programovej časti operačnej pamäti. Obsah programového počítadla sa mení zložitým spôsobom v závislosti na druhu aktuálne vykonávanej inštrukcie. Ak sa napríklad vykonáva inštrukcia skok do podprogramu, musí sa adresa nasledujúcej inštrukcie uložiť do zásobníkovej pamäti (procesor musí totiž po skončení podprogramu pokračovať vo vykonávaní pôvodného programu). Potom sa do programového počítadla vloží adresa prvej inštrukcie podprogramu.
Obsadenie zásobníkovej pamäti (zvolená časť operačnej pamäte, ktorá pracuje metódou LIFO) indikuje špeciálny register nazývaný ukazovateľ vrcholu zásobníka. Je označovaný skratkou SP (Stack Pointer).
Register inštrukcií slúži na dočasné ukladanie obsahu strojového kódu inštrukcie, neskôr sa tento obsah dekóduje. Jednoduché mikroprocesory môžu mať napríklad osembitový inštrukčný kód. Táto dĺžka umožní vytvoriť inštrukčný súbor s počtom 2x8 = 256 odlišných inštrukcií. Inštrukcie však mávajú aj dĺžku 2x8 bitov alebo 3x8 bitov. Takéto inštrukcie majú okrem zakódovanej operácie špecifikovanú zdrojovú a cieľovú adresu operandov.
Dekóder inštrukcií má za úlohu dekódovať inštrukciu tak, že odčlení časť operačnú (aký druh operácie má mikroprocesor vykonať) od adresnej, čo znamená adresy operandov kde sú uložené zdrojové údaje a kde sa uložia cieľové údaje (výsledok operácie).
Aritmeticko-logická jednotka je časť mikroprocesora, ktorá vykonáva rôzne operácie, ako sú sčítanie, odčítanie, násobenie, delenie, inkrementácie, dekrementácie, logický súčet, logický súčin, porovnanie čísel a podobne. Na obr.16.9 je príklad aritmeticko-logickej jednotky.
V mikroprocesore sa nachádzajú aj tzv. jednobitové príznakové registre, ktoré zaznamenávajú stavy mikroprocesora ako napríklad prenos v najvyššom ráde ALJ, príznak nulového obsahu akumulátora, príznak preplnenia ALJ, príznak aktivity signálu prerušenia atď.
Riadiaca jednotka predstavuje zložitý sekvenčný logický obvod, ktorý generuje súbor vnútorných a vonkajších riadiacich signálov mikroprocesora. Priebeh týchto signálov určuje najmä dekódovaná inštrukcia. Dekódovaná inštrukcia a stav mikroprocesora aktivujú mikroprogramovú jednotku, ktorá vykoná zodpovedajúci sled mikrooperácií s cieľom realizovať dekódovanú inštrukciu. Sled mikrooperácii je synchronizovaný generátorom hodinových impulzov mikroprocesora.
Niektoré mikroprocesory používajú na adresovanie operačnej pamäti indexové číslo, ktoré sa nachádza v indexovom registri.
Fyzická adresa pamäti sa potom určí ako súčet obsahu programového počítadla a obsahu indexového registra. [16.1, 16.2]
Základné charakteristiky jednočipového mikropočítača 8-bitovej architektúry rodiny 8051 sa dajú opísať nasledovne:
- aritmeticko-logická jednotka prevádza operácie s 8-bitovými číslami (operandmi),
- na čipe mikropočítača sa môže nachádzať maximálne 4 kB pamäti programu (ROM),
- pamäť dát (RAM) má kapacitu 128 bajtov, ďalších 128 bajtov sa používa na umiestnenie tzv. registrov špeciálnych funkcií (SFR),
- štyri 8-bitové porty sa dajú ovládať obojsmerne,
- mikroprocesor môže adresovať 64 kB pamäti programu a tiež 64 kB pamäti dát,
- mikropočítač obsahuje dva 16-bitové časovače/čítače,
- program mikropočítača je možné prerušiť z piatich zdrojov prerušenia,
- na sériový prenos údajov slúži plný duplexný sériový port,
- mikroprocesor dokáže realizovať aj jednobitové logické operácie,
Na obr.16.10 je bloková schéma mikropočítača rodiny 8051. ACC je 8-bitový register nazývaný akumulátor. Je nepriamo napojený k ALJ cez dočasný register TMP1. Slúži na ukladanie hodnoty jedného operandu a spravidla sa tu ukladá aj výsledok aritmetickej alebo logickej operácie. Register B sa používa hlavne pri aritmetických operáciách násobenia a delenia.
Ukazovateľ zásobníkovej pamäti (SP) je osembitový register. Jeho obsah sa najprv inkrementuje, až potom sa ukladajú dáta do zásobníkovej pamäti (vyhradená časť pamäti RAM). Pri vyberaní dát sa dáta najprv presunú na požadované miesto, až potom sa dekrementuje obsah SP. Po počiatočnom spustení mikropočítača sa jeho obsah nastaví na 07H.
Ukazovateľ dát (DPTR) je rozložený na dve 8-bitové časti:
- vyšší bajt DPH,
- nižší bajt DPL.
DPTR register si uskladňuje 16-bitovú adresu najmä na nepriame adresovanie dát v externej pamäti RAM.
Porty P0, P1, P2, P3 sú vybavené potrebnými logickými obvodmi na individuálne ovládanie vstupu/výstupu programom. K nim sa pripájajú prostredníctvom rozhrania rôzne prídavné zariadenia. Jednotlivé porty majú rôzny funkčný význam.
Programové počítadlo PC je 16-bitový čítač ktorý generuje adresu nasledujúcej inštrukcie. Z adresného registra sa táto adresa prenáša na porty P0 a P2.
Register PSW (Program Status Word) združuje jednobitové príznakové stavy ALJ.
Na riadenie vonkajších operácií s pamäťou ROM slúži signál PSEN/, potvrdenie najnižšieho bajtu adresy sa uskutočňuje signálom ALE.
Signál EA/ je určený na výber vnútornej alebo vonkajšej pamäti programu. RST signál spôsobí počiatočné nastavenie mikropočítača. [16.1]
Pamäťový priestor mikropočítača 8051
Mikropočítače rodiny 8051 majú podľa obr.4.16.11 tieto základné pamäťové priestory:
- vnútorný pamäťový priestor programu s kapacitou 4kB, alebo vonkajší priestor pamäti programu s kapacitou do 64kB,
- vonkajší priestor pamäti dát s kapacitou do 64kB,
- vnútorný priestor pamäti dát s kapacitou 128 bajtov.
Adresný priestor pamäti programu (ROM) má kapacitu 64 kB a je variabilný. Ak je na vstupný vývod mikropočítača EA/ pripojená hladina H (1),
mikroprocesor vykonáva program podľa vnútornej pamäti programu v intervale 0000h÷0FFFh. Ak je program dlhší ako vnútorná pamäť, tak sa vykonáva
od adresy 1000h÷0FFFFh ale už z vonkajšej pamäti ROM. Ak je na vstupný pin mikropočítača EA/ pripojená hladina L, vyberá mikroprocesor inštrukcie
z vonkajšej ROM pamäti programu. Pamäťové miesta v ROM pamäti 0000h÷0023h sú vyhradené na programový prechod do obslužných programov prerušení.
Adresný priestor pamäti RAM dát sa skladá z vnútorného a vonkajšieho priestoru. Vnútorná pamäť obsahuje dve časti:
- registre špeciálnych funkcií,
- segmentovaný priestor RAM pamäti od adresy 00h÷7Fh. [16.1]
Inštrukcie sú najmenšie jednotky, z ktorých je zložený program. Základné časti inštrukcie môžeme rozdeliť na tri prípady, ako je to znázornené na obr.16.12 . Vo všetkých prípadoch je hlavná časť operačný kód, ktorý presne definuje ďalšiu činnosť pri vykonávaní inštrukcie.
V prvom prípade (obr.16.12a) obsahuje inštrukcia len operačný kód. V týchto prípadoch sú vykonávané len vnútorné operácie v procesore ako napr. "inkrementuj obsah vnútorného dátového registra".
V druhom prípade (obr.16.12b) obsahuje inštrukcia okrem operačného kódu aj adresu operandu. Operandy sú uložené v dátovej pamäti. Príkladom môžu byť inštrukcie typu "presuň obsah vnútorného dátového registra do dátovej pamäti na adresu ...".
V treťom prípade (obr.16.12c) obsahuje inštrukcia okrem operačného kódu ešte aj priame dáta. Jedná sa vždy o konštanty, ktoré sú súčasťou programu. Príkladom môže byť inštrukcia "naplň vnútorný dátový register číslom ...".
Existujú aj zložitejšie inštrukcie obsahujúce dve alebo tri adresy, adresu aj dáta a podobne. Inštrukcie teda majú všeobecne rôznu dĺžku.
Celá inštrukcia sa skladá z dvoch fáz a to
prečítanie inštrukcie a prevedenie inštrukcie . [16.2]
Typy inštrukcií
V nasledujúcich tabuľkách je uvedený prehľad všetkých inštrukcií mikropočítača rodiny 8051. Je rozdelený na nasledujúce skupiny:
- inštrukcie aritmetických operácií,
- inštrukcie logických operácií,
- inštrukcie operácií presunu dát,
- inštrukcie jednobitových operácií,
- inštrukcie operácií vetvenia.
Každá inštrukcia má vyjadrený symbolický zápis, opis činnosti, nastavovanie príznakových registrov, počet bytov strojového kódu inštrukcie,
počet strojových cyklov potrebných na vykonanie inštrukcie, ako je to názorne ukázané na obr. 4.16.13 .
Použité sú aj rôzne skrátené označenia. [16.1]
Časovanie mikropočítača sa odvíja od taktov oscilátora mikropočítača. Časový priebeh vykonávania inštrukcií v zjednodušenej podobe je znázornený na obr.16.14 .
Inštrukčný cyklus je čas potrebný na vykonanie istej operácie mikroprocesorom z množiny inštrukcií a obsahuje jeden alebo viac strojových cyklov.
Strojový cyklus mikropočítača má šesť stavov označených S1÷S6 (12 periód oscilátora). Každý stav sa rozkladá na dve fázy označené P1÷P2.
Fáza trvá jednu periódu oscilátora (signál OSC). Signál ALE je aktívny v intervale strojového cyklu dvakrát. Prvýkrát v čase S1-P2 až S2-P1,
druhýkrát v čase S4-P2 až S5-P1. Od neho môžeme sledovať vykonávanie inštrukcií rôzneho typu.
Prevedenie inštrukcie, ktorá trvá jeden strojový cyklus je na obr.16.15, začína v stave S1. Strojový kód inštrukcie sa prečíta z pamäti programu a uloží do registra inštrukcií mikroprocesora (prípravná fáza inštrukčného cyklu mikroprocesora). Ak je inštrukcia dlhá dva bajty, potom sa druhý bajt strojového kódu inštrukcie prečíta z pamäti programu v stave S4 a ak je inštrukcia dlhá len jeden bajt potom sa v stave S4 prečíta inštrukcia naprázdno.
Na obr.16.16 je prevedenie inštrukcie s dvomi strojovými cyklami. Pre inštrukcie, ktoré spolupracujú s dátami vonkajších pamätí je treba vymedziť potrebný čas na presun dát, pretože v tomto čase sa výber z programovej pamäti nedá uskutočniť.
Väčšina inštrukcií mikropočítača sa vykonáva v intervale jedného alebo dvoch strojových cyklov.
Výnimku tvoria náročnejšie operácie násobenia a delenia (MUL AB, DIV AB), ktoré potrebujú na vykonanie operácií štyri strojové cykly. [16.1]
Prerušenie systému mikropočítača rodiny 8051
Mikropočítač svojimi technickými prostriedkami môže reagovať na vznik mimoriadnych udalostí, ktoré vznikajú vo vnútri alebo okolí mikropočítača
(prekročenie medznej hodnoty monitorovanej veličiny, výpadok napájania, pretečenie časovača, požiadavka na prečítanie prijatých dát, atď.).
Tieto udalosti mikropočítač vníma prostredníctvom aktivity zdrojov prerušenia.
Na obr. 4.16.17 je päť zdrojov prerušenia mikropočítača rodiny 8051:
- vonkajšie prerušenie označené INT0 a INT1 (tieto vývody integrovaného obvodu mikropočítača sa dajú ovládať logicky buď hladinou, alebo hranou),
- vnútorné prerušenie od časovačov/čítačov T0 a T1 označené ako signály TF0 a TF1 (prerušenie vyvoláva pretečenie obsahu čítačov T0 resp. T1),
- vnútorné prerušenie od sériového portu (toto prerušenie iniciuje naplnenie alebo vyprázdnenie registra prijímača/vysielača sériových dát a zdroje signálu prerušenia sú TI a RI).
Každý zo zdrojov prerušenia sa môže jednotlivo povoliť alebo zakázať. Na to slúži register špeciálnych funkcií IE. Zdroje prerušenia sa dajú aj samostatne naprogramovať na jednu z dvoch hladín priority prerušenia, ktorá sa nastavuje v registri špeciálnych funkcií IP.
Zdroje prerušenia sa testujú v okamžiku S5-P2 strojového cyklu mikropočítača. Prerušovací systém generuje operáciu volanie podprogramu LCALL,
ktorá spôsobí odloženie obsahu programového čítača PC do zásobníka a súčasne naplní PC vektorovou adresou,
ktorá je závislá na akceptovanom zdroji prerušenia. Na týchto adresách začínajú obslužné programy, ktoré sa vykonávajú tak dlho,
pokým sa nedekóduje inštrukcia návratu RETI. Obsah PC sa obnoví a program pokračuje ďalej od miesta, kde bol prerušený. [16.1]
Jazyk symbolických adries (JSA), tiež označovaný ako assembler je kompilačným typom jazyka a používa sa na programovanie mikropočítača na úrovni strojového kódu inštrukcií. Zásady písania programu spočívajú v symbolickom vyjadrení adries a inštrukcií. Všeobecný tvar každého riadku písaného v programe JSA je nasledujúci:
Hranaté zátvorky znamenajú, že dané pole programového riadku nie je povinné. Povinným polom je 2. POLE,
kde sa nachádza mnemokód inštrukcie na riadenie programu alebo mnemokód pseudoinštrukcie na riadenie prekladača.
Počet a typ operandov závisí od operačného kódu inštrukcie. Typy operandov môžu byť nasledovné:
- špeciálne symboly rezervované ASM51,
- nepriame adresy,
- priame údaje,
- adresy údajov na čipe,
- bitové adresy,
- kódové adresy (adresy v programovom segmente).
Výrazy vyhodnocované počas prekladu zdrojového programu predstavujú kombináciu čísel,
znakových reťazcov, symbolov a
operátorov, ktoré sa vyhodnotia ako dvojkové čísla.
Výrazy môžu byť absolútne alebo relatívne.
Príkazy assemblera
Pri písaní programu v JSA používame niekoľko príkazov na riadenie činnosti prekladača a sú to tieto príkazy:
- definovanie mien symbolov,
- definovanie konštánt,
- definovanie rezervácie miesta v pamäti,
- definovanie riadenia prekladu,
- definovanie spájania programových modulov.