4.0 Architektúra Intel 8051 a jej klony

 

            Úlohou tejto kapitoly je oboznámenie sa s architektúrou Intel 8051, jej stručný opis a vysvetlenie jednotlivých základných funkčných blokov.

V závere je uvedený prehľad zaujímavých klonov architektúry 8051 zotriedený podľa výrobcov. V prehľade sú uvedené základné parametre jednotlivých klonov.

 

4.1 Úvod do a architektúry Intel 8051

  

Intel 8051 je 8-bitový mikropočítač s Harvardskou architektúrou. Disponuje oddelenou pamäťou dát 128 B a 4 kB (prípadne viac) programovej pamäte PROM, alebo EEPROM. Taktovacia frekvencia je 12 MHz. Základná schéma mikropočítača je na obr.  4.1.

 

                               

 

Obr. 4.1: Bloková schéma 8051

 

 

4.1.1 Organizácia pamäte

 

Pamäťový systém oddelenej dátovej a programovej pamäte je možné ďalej rozdeliť na internú a externú pamäť dát a  internú a externú pamäť programu. Pamäťové oblasti externých a interných pamätí sa navzájom prekrývajú. Prístup k jednotlivým externým a interným pamätiam je realizovaný pomocou špecifických signálov a inštrukcií.

 

4.1.1.1 Programová pamäť

 

            Mikropočítač disponuje internou pamäťou programu s veľkosťou 4 kB, prípadne 8 kB alebo s inou kapacitou v závislosti od modifikácie typu procesora.

Po resete je čítač inštrukcií - PC nastavený na hodnotu 0000H predstavujúcu počiatočnú adresu programovej pamäte od ktorej sa začína výkon programu. Pomocou vývodu mikropočítača EA (External Acces), ktorý je buď pripojený na napájacie napätie UCC alebo zem, je nastavené použitie výlučne externej programovej pamäte (EA = 0), alebo využitie internej aj externej programovej pamäte (EA = 1).

- nastavením vývodu EA = VCC, v prípade 4 kB verzie PROM, je program spúšťaný od adresy 0000H po adresu 0FFFH z internej pamäte a pokračuje načítavaním z externej pamäte od adresy 1000H po jej maximálnu adresu, napríklad pri 64kB verzii externej pamäte je to adresa FFFFH

        - nastavením vývodu EA = VSS, je celý program spúšťaný z externej pamäte od adresy 0000H

 Spôsob pripojenia externej pamäte programu je na obr. 4.2.

 

                                                       

 

Obr. 4.2: Pripojenie externej pamäte EPROM ku mikropočítaču 8051

 

Pre komunikáciu mikroprocesora s externou pamäťou sú využité signály ALE a PSEN spolu s bránami P0 a P2 na ktoré je vyvedená 16-bitová adresová zbernica, pričom brána P0 je multiplexovaná s 8-bitovou dátovou zbernicou. Komunikácia prebieha v nasledujúcich krokoch znázornených graficky na ob. 4.3:

 

                                      

                                                                     

 

Obr. 4.3: Priebeh signálov pri komunikácii s externou programovou pamäťou

 

Pri požiadavke čítania programu z externej pamäte sú signály PSEN a ALE nastavené do hodnoty logickej 1. Na bránach P0 a P2 sa objaví 16-bitová adresa, obsah 16-bitového PC. Signálom ALE zabezpečíme zápis dolného polslova PCL adresy do LATCH obvodu, ktorý slúži ako vyrovnávací register. Výstup LATCH obvodu a brána P2 tak vytvárajú celú 16-bitovú adresu. Signál PSEN sa nastaví na hodnotu logickej 0, čím spustí proces čítania inštrukcie z pamäte. Signál PSEN je privedený na vstup pamäte OE (output enable) alebo CE (chip enable). Dáta privedené na výstup pamäte sú platné počas trvania tohto signálu.

Počas jedného inštrukčného cyklu je možné dvakrát zrealizovať čítanie z pamäte programu a tak zabezpečiť načítanie aj dvoj bytovej inštrukcie v jednom cykle.

 

 4.1.1.2 Dátová pamäť

 

            Mikropočítač disponuje internou dátová pamäťou pozostávajúcou z priamo adresovateľných 128 bajtov od adresy 00H po 7FH. Od adresy 128H je po adresu 255H oblasť takzvaných SFR špeciálnych funkčných registrov. Oblasť SFR registrov obsahuje konfiguračné registre periférií, register stavu procesora, dátové registre periférií a podobne. 

Interná priamo adresovateľná pamäť je delená do troch oblastí:

-         štyri  banky 0-3 registrov R0-R7, adresa od 00H po 1FH, celkovo 32B

-         oblasť bitovo adresovateľnej pamäte, adresa od 20H po 2FH

-         oblasť ľubovoľne využiteľnej pamäte od adresy 30H po 7FH

Vo všeobecnosti je celá pamäť, všetkých 128 bajtov voľne prístupná. Schéma rozdelenia internej RAM pamäte je na obr. 4.4.

 

                                           

 

Obr. 4.4: Mapa internej RAM mikropočítača 8051

 

Oblasť pamäte obsahujúca SFR je opísaná v nasledujúcej kapitole, v ktorej je vysvetlený aj zmysel jednotlivých SFR.

Rovnako ako môžeme pripojiť externú programovú pamäť, tak je možné k 8051 pripojiť aj externú dátovú pamäť RAM s maximálnou kapacitou 64 kB. Prístup ku externej pamäti dát je obdobný princípu použitému v prípade externej programovej pamäte. Spôsob pripojenia externej dátovej RAM pamäte je na obr.  4.5

 

                                                 

 

Obr. 4.5: Zapojenie 8051 a externej dátovej pamäte

 

Na prístup do externej RAM pamäte je opäť využitý signál ALE zabezpečujúci prepis adresy z portu P0 na adresovací vstup pamäte. Na adresovanie sú použité porty P0 a P2 tvoriace 16-bitovú adresovaciu zbernicu, pričom port P0 je multiplexovaný s 8-bitovou dátovou zbernicou. Pre voľbu režimu zápisu alebo čítania sú použité signály RD a WR. Priebehy signálov pre čítanie sú znázornené na obr. 4.6 a pre zápis sú na obr. 4.7.

 

 

                                                               

 

Obr. 4.6: Priebeh signálov pre čítanie dát z externej RAM

 

 

                                                                   

 

Obr. 4.7: Priebeh signálov pre zápis dát do externej RAM

 

Pre čítanie a zápis dát z externej pamäte dát je využitá inštrukcia MOVX. Cyklus čítania/zápisu sa začína privedením aktívnej ALE, ktorou je prepísaná adresa A0-A7 z portu P0 na adresový vstup pamäte RAM. Na výstupe P2 je trvalo počas celého cyklu prítomná adresa A8-A15 privedená na adresový vstup pamäte. Po zaadresovaní pamäte nasleduje v závislosti od operácie (zápis/čítanie) aktívny signál RD alebo WR, privedený na príslušný vstup RAM pamäte. RD (Read Data – čítanie dát) aktivuje vstup OE (Output Enable – povolenie výstupu) pri čítaní dát a pri zápise dát WR (Write – zápis) aktivuje vstup WE (Write Enable – povolenie zápisu).

 

 

4.1.2 Inštrukčná sada

 

            Inštrukčná sada obsahuje súbor všetkých inštrukcií známych mikropočítaču. Inštrukcie je možné deliť do viacerých skupín.

 

 4.1.2.1 Presunové inštrukcie

           

            Slúžia na presuny dát medzi vnútornou pamäťou dát a registrami navzájom, alebo medzi externými pamäťami dát a programu a internou pamäťou dát.

            MOV – presun bajtu medzi ACC a registrami, alebo priamo a nepriamo adresovateľnou pamäťou dát

Príklad: MOV A, R1 – presunie dáta uložené v registri R1 aktuálne nastavenej banky registrov do ACC

 

           MOVC – presun bajtu z programovej pamäte do ACC na základe adresy danej súčtom nepriamej adresy uloženej v A a obsahom registrov R0, R1, DPTR alebo PC

Príklad: MOVC A, @A+DPTR – presunie z programovej pamäte bajt a uloží ho do ACC

           

            MOVX – presun bajtu z akumulátora do externej pamäte dát alebo opačne, adesa bajtu je daná nepriamo, uložená v registri R0, R1 alebo DPTR

Príklad: MOVX A, @DPTR – presunie bajt z externej dátovej pamäte do ACC z adresy danej nepriamo v DPTR

 

            XCH – výmena obsahu akumulátora a registra Ri alebo adresovaného pamäťového miesta

Príklad: XCH A, 120 – vymení bajt uložený na adrese 100 s akumulátorom ACC

 

            XCHD – výmena dolného polbajtu medzi ACC a nepriamo adresovateľným miestom v internej dátovej pamäti

Príklad: XCHD A, @Rn

 

            PUSH – k ukazateľu zásobníka SP sa pričíta jednotka a dáta na uvedenej adrese s inštrukciou sú uložené na vrchol zásobníka

Príklad: PUSH 120 – do vrcholu zásobníka uloží dáta z adresy 120

 

            POP – od ukazateľa zásobníka je odčítaná jednotka, z vrcholu zásobníka sú vyzdvihnuté dáta uložené na adresu uvedenú pri inštrukcii

Príklad: POP 120 – z vrcholu zásobníka sú dáta presunuté na adresu 120

 

4.1.2.2 Aritmetické inštrukcie

 

            Slúžia na realizáciu základných aritmetických operácií ako sú sčítanie, odčítanie, násobenie a delenie.

 

            ADD – ku akumulátoru je pripočítaný obsah registra, nepriamo adresovaného miesta, hodnoty uloženej na priamej adrese alebo je ku akumulátoru pripočítaná priama hodnota

Príklad: nech v ACC je hodnota 10, ADD A, #149 – predstavuje pripočítanie priamej hodnoty 149 ku ACC, po ukončení operácie je výsledok uložený v ACC, čiže hodnota 159

 

            ADDC – je inštrukcia sčítania podobná ADD s tým rozdielom, že ku ACC je pripočítavaný aj príznak carry – C v registri  PSW

Príklad: Nech C=1, ACC=0, ADDC A, #255 – ku ACC je pričítané číslo 255 a C, súčet je 256, čo je číslo väčšie ako je možné uložiť do 8-bitového ACC, teda v ACC je uložená 0 a nastaví sa opäť bit C v PSW indikujúci prenos z nižšieho rádu

 

            SUBB – odčíta od ACC bajt uložený v Rn, nepriamo adresovateľný, priamo adresovateľný alebo priamu hodnotu vrátane príznaku C v PSW, ktorý v tomto prípade znamená výpožičku pri odčítaní binárnych čísel

Príklad: Nech C=0, Rn=5, ACC=10, SUBB A, Rn – odčíta od hodnoty 10, hodnotu 5 uloženú v registri Rn, výsledok je uložený v ACC

 

             DA – slúži na korekciu hodnoty uloženej v ACC pri operácii binárneho sčítavania dvoch dekadických čísel vyjadrených v BCD kóde, čím ako výsledok opäť dostaneme dve BCD čísla, realizuje sa to na základe nasledujúceho postupu:

 - ak je hodnota v ACC na nižších 4 bitoch väčšia ako 9 alebo C=1, ku ACC je pripočítaná hodnota 6

- ak je v ACC na vyšších 4 bitoch hodnota väčšia ako 9 alebo C=1, ku ACC sa pripočíta hodnota 60H

Príklad: nech v ACC je binárna hodnota 10101111b, dolný polbajt je rovný 15 a horný 10, čiže oba sú väčšie ako 9, po vykonaní inštrukcie DAA A bude v ACC hodnota 01110101b, ktorá predstavuje dekadické BCD číslo 75

 

            INC – inštrukcia inkrementuje, pričíta hodnotu jedna ku ACC, Rn, nepriamo a priamo adresovateľnému pamäťovému miestu alebo k DPTR

Príklad: nech v ACC je binárna hodnota 100b, INC A – v ACC po vykonaní inštrukcie bude hodnota 101b

 

           DEC - inštrukcia inkrementuje, pričíta hodnotu jedna ku ACC, Rn, nepriamo a priamo adresovateľnému pamäťovému miestu

Príklad: nech v ACC je binárna hodnota 101b, DEC A – v ACC po vykonaní inštrukcie bude hodnota 100b

 

            MUL – vynásobí dve 8-bitové čísla uložené v registroch A a B, po vykonaní inštrukcie je v B uložený dolný bajt a v A horný bajt výsledného 16-bitového výsledku

Príklad: nech A=10010=64H a B=310=3H, MUL AB – vynásobí tieto dve čísla bez znamienka, dostaneme 16-bitové číslo 300, v A je uložená hodnota

 

            DIV – vykoná celočíselné delenie obsahu ACC a registra B, celočíselný podiel je uložený v ACC a zvyšok po delení je uložený v B

Príklad: A=51, B=4, DIV AB – po vykonaní inštrukcie je v A uložené číslo 12 a v B číslo 3, čiže zvyšok po celočíselnom delení

 

 

 4.1.2.3 Inštrukcie logických operácií

 

            Logické inštrukcie umožňujú vykonať základné logické operácie s operandmi.

 

           ANL – inštrukcia vykoná logický súčin medzi akumulátorom a Rn, nepriamo alebo priamo adresovateľným operandom, priamou číselnou hodnotou, alebo medzi priamou adresou a akumulátorom alebo priamou číselnou hodnotou, výsledok je uložený do A

Príklad: A=10010110b, Rn=01101001b, ANL A, Rn – vykoná sa logický súčin, výsledok je uložený do A a je rovný A=00000000b

 

            ORL – inštrukcia vykoná logický súčet medzi rovnakými operandmi ako inštrukcia ANL, výsledok je uložený do akumulátora

Príklad: A=01010101b, Rn=10101010b, ORL A, Rn – vykoná logický súčet, výsledok je uložený do A, je rovný A=11111111b

 

            XLR – inštrukcia vykoná operáciu exkluzívneho súčtu EX-OR medzi rovnakými operandmi ako ANL inštrukcia, výsledok je uložený do A

Príklad: A=10101010b, Rn=00001111b, XLR A, Rn – vykoná EX-OR, výsledok je uložený do A, je rovný A=10100101b

 

            CPL – inštrukcia neguje obsah akumulátora A, vytvára tak jednotkový doplnok

Príklad: A=10010110b, CPL A – vykoná invertovanie každého bitu v akumulátore, potom A=01101001b

 

            CLR – inštrukcia nuluje obsah akumulátora A

Príklad: A=10010101b, CLR A – vynuluje obsah A, potom A=00000000b

 

            RL – inštrukcia rotácie akumulátora A doľava

            RC – inštrukcia rotácie akumulátora A doprava

            RLC -  inštrukcia rotácie akumulátora A doľava cez príznak C

RRC - inštrukcia rotácie akumulátora A doprava cez príznak C

Príklad použitia inštrukcií je znázornený na obr. 4.8. Majme v A uloženú hodnotu A=10010110b, vykonaním:

-         RL A je v A=00101101b

-         RR A je v A=01001011b

-         RLC A, je v A=00101100b a v C=1

-         RRC A, je v A=01001011b a v C=0

 

                       

 

Obr. 4.8: Inštrukcie rotácie A

 

SWAP – inštrukcia navzájom prehodí obsah horného a dolného polbajtu uložených v akumulátore

Príklad: A=11000011b, SWAP A – vykoná prehodenie polbajtov v akumulátore, výsledok je uložený v A=00111100b

 

4.1.2.4  Inštrukcie bitových operácií   

 

            Inštrukcie pre bitové operácie slúžia na základné manipulácie s jednotlivými bitmi.

             CLR – vykoná  nulovanie adresovaného bitu alebo príznaku C

            SETB – vykoná nastavenie adresovaného bitu alebo C na logickú jednotku

            CPL – vytvorí komplement k priamo adresovanému bitu alebo príznaku C

            ANL – vytvorí logický súčin medzi príznakom C a priamo adresovaným bitom, v prípade lomítka pred adresovaným bitom je tento najprv negovaný

Príklad: C=1, bit_x – predstavuje adresu bitu v bitovo adresovateľnej pamäti a hodnota bit_x=0, ANL C,/bit_x – vykoná log. súčin negovaného bitu bit_x a C, výsledok je uložený do C

 

            ORL – vykoná logický súčet medzi príznakom C a priamo adresovateľným bitom

            MOV – inštrukcia umožňujúca presun jednotlivých bitov z priamej adresy bitu do C a opačne

 

 4.1.2.5 Skokové inštrukcie  

 

            Sú to inštrukcie pomocou ktorých je možné vykonať podmienené a nepodmienené skoky s určitou dĺžkou.

 

            AJMP – inštrukcia vykoná skok na adresu v rozsahu 2 kB, používa sa 11-bitová adresa

            LJMP – inštrukcia vykoná skok na adresu v rozsahu 64 kB, čiže celého adresovateľného priestoru, používa sa 16-bitová adresa

            SJMP – inštrukcia vykoná skok v rozsahu 256 B, používa sa 8-bitová adresa

            JMP – inštrukcia vykoná skok na adresu danú súčtom DPTR s obsahom akumulátora

 

            JZ – inštrukcia vykoná skok na danú adresu v prípade, že obsah akumulátora je rovný nule

Príklad: JZ 0023H – vykoná skok na adresu 0023H, ak je akumulátor rovný nule

 

           JNZ - inštrukcia vykoná skok na danú adresu v prípade, že obsah akumulátora nie je rovný nule

           JC - inštrukcia vykoná skok na danú adresu v prípade, že bit C indikujúci prenos je rovný nule

          JNC - inštrukcia vykoná skok na danú adresu v prípade, že bit C indikujúci prenos nie je rovný nule

           JB – inštrukcia vykoná skok na danú adresu v prípade, že testovaný bit nastavený na logickú 1

           JBC - inštrukcia vykoná skok na danú adresu v prípade, že testovaný bit nastavený na logickú 1 a daný bit následne nuluje

          CJNE – inštrukcia porovnáva obsah akumulátora alebo registra Rn s priamou adresou alebo číselnou hodnotou, v prípade nerovnosti je vykonaný skok na relatívnu adresu

Príklad: nech A=20H, CJNE A, #21H, 36H – inštrukcia porovná obsah akumulátora s priamou číselnou hodnotou, keďže sa nerovnajú, vykoná sa skok na adresu 36H

 

           DJNZ – inštrukcia dekrementuje obsah registra Rn alebo priamo adresovaného pamäťového miesta a ak hodnota na danej adrese je rôzna od nuly, vykoná sa skok na danú adresu

Príklad: nech R1=01H, DJNZ R1, 040H – dekrementuje sa obsah registra R1, je rovný nule, čiže sa nevykoná skok na adresu 040H, pokračuje sa výkonom nasledujúcej  inštrukcie

 

 4.1.2.6 Inštrukcie pre podprogramy

 

            Inštrukcie pre podprogramy slúžia na zabezpečenie volania a návratu s podprogramu.

 

           ACALL – volanie podprogramu v rozsahu 2 kB, používa sa 11-bitová adresa, pri volaní podprogramu je do vrcholu zásobníka uložená adresa posledne vykonanej inštrukcie hlavného programu

           LCALL - volanie podprogramu v rozsahu 64 kB, používa sa 16-bitová adresa

            RET – inštrukcia, ktorou je ukončený volaný podprogram, obsah zásobníka sa prepíše do PC, čím sa dostaneme na miesto v odkiaľ bol volaný podprogram, čím sa pokračuje v ďalšom výkone programu

            RETI – inštrukcia pre návrat z podprogramu obsluhujúceho  prerušenie

 

 4.1.2.7 Iné inštrukcie

 

            Medzi iné inštrukcie patrí inštrukcia NOP – prázdna operácia, použitím tejto inštrukcie sa nevykoná žiadna operácia počas jedného strojového cyklu, NOP inštrukcia je vhodná na realizáciu časového oneskorenia pri synchronizácii rôznych procesov

 

4.1.3 Časovanie mikroprocesora

 

            Časovanie mikropočítača je realizované na základe synchronizačných impulzov odvodených od vnútorného oscilátora. Frekvencia oscilátora je menená na základe pripojeného kryštálu od 1,2 MHz d 12 MHz. Pre synchronizáciu je možné použiť aj externý oscilátor. Na obr. 4.9a je spôsob pripojenia kryštálu a na obr. 4.9b zdroja externých synchronizačných impulzov.

 

 

                             

 

Obr. 4.9: Zdroje hodinových impulzov pre 8051

 

Na základe schémy na nasledujúcom obr. 4.10 je definovaný termín strojový cyklus.

 

 

                               

 

Obr. 4.10: Časovanie inštrukcií

 

 

Strojový cyklus je najkratší možný časový okamžik za ktorý je vykonaná inštrukcia. Inštrukcia môže trvať aj dva strojové cykly. Strojový cyklus je rozdelený do šiestich stavov S1 až S6. Každý stav trvá dva takty, P1 a P2. Z toho vyplýva, že strojový cyklus trvá 12 taktov oscilátora, rovnako aj inštrukcia trvajúca jeden strojový cyklus, pričom sa vykoná za čas t = 1ms ak použijeme taktovaciu frekvenciu fCLK 12 MHz.

            Spustenie jednocyklovej inštrukcie trvá jeden strojový cyklus. Načítanie operačného kódu je počas stavu S1. Druhý výber nasleduje počas stavu S4. Prevedenie inštrukcie je úplné počas stavu S6 toho istého strojového cyklu.

            Inštrukcia MOVX je dvojcyklová, trvá dva strojové cykly.     

 


 

4.2 Špeciálne funkčné registre SFR mikropočítača 8051

 

SFR sú umiestnené v internej dátovej RAM pamäti od adresy 80H po 7FH. Prístupné sú iba priamym adresovaním. SFR obsahujú registre súvisiace s konfiguráciou a nastavením mikropočítača a jeho periférií, prípadne registre s inou špecifickou funkciou.

            Zoznam SFR spolu z ich adresami je v nasledujúcej tab. 4.1.

 

                                                       

 

Tab. 4.1:Zoznam SFR 8051

 

4.2.1 Hlavné SFR

 

4.2.1.1 A - ( Accumulator - ACC) – Akumulátor

 

            ALU (Arithmetic Logic Unit – aritmeticko-logická jednotka) mikropočítača 8051 je akumulátorovo orientovaná. Znamená to, že všetky aritmeticko-logické operácie sú realizované pomocou akumulátora. Akumulátor obsahuje stále jeden operand, alebo výsledok aritmetickej alebo logickej operácie. Akumulátor je bitovo adresovateľný.

 

Príklad: SUBB A,#data – po odčítaní je výsledok uložený do akumulátora

  

4.2.1.2 B – register

 

            Pri realizácii operácií násobenia a delenia slúži B register na uloženie jedného z operandov a súčastne po zrealizovaní týchto operácií obsahuje spolu s akumulátorom aj ich výsledok.

 

Príklad: DIV AB – po vydelení čísel uložených v A a B je do A uložený celočíselný podiel a do B zvyšok po celočíselnom delení

 

4.2.1.3 PSW – (Program Status Word) – Stavové slovo mikroprocesora

 

            Bitovo adresovateľný register slúžiaci na indikáciu stavu ALU po zrealizovaní výpočtu, alebo na nastavenie aktuálnej banky registrov R0-R7.

Rozloženie jednotlivých bitov je znázornené na obrázku.

 

                                                               

 

Obr. 4. 11: Register PSW

 

Význam jednotlivých bitov je nasledovný:

C -  prenos (Carry) indikuje pri aritmetických operáciách prenos z ôsmeho bitu do deviatého

AC – (Auxiliary Carry) – čiastočný prenos, nastavuje sa pri indikácii prenosu medzi 4. a 5. bitom akumulátora A, príznak sa využíva jedine pri inštrukcii DAA – dekadickej korekcie pri počítaní s číslami vyjadrenými v BCD kóde

F0 – je príznakom, ktorý môže užívateľ ľubovoľne využívať

RS0,RS1 – (Register Select) – slúžia na nastavenie banky 0-3 registrov R0-R7, ktoré budú momentálne používané, spôsob nastavenia je v nasledujúcej tab. 4.2.

 

                                        

 

Tab. 4.2: Nastavenie banky registrov

 

OV – (Overflow) je príznakom pretečenia a nastavuje sa pri aritmetickej operácii sčítania alebo odčítania v prípade práce so znamienkovými číslami, ak 8. bit predstavuje znamienko.

Pri sčítaní sa bit nastaví ak pri sčítaní dvoch záporných čísel dôjde k prenosu medzi 8. a 7. bitom a nedošlo k prenosu medzi 7. a 6. bitom, čiže výsledok je kladný. Pri sčítaní dvoch kladných čísel, ak je výsledok záporný, čiže došlo k prenosu medzi 7. a 6. pričom nedošlo k prenosu medzi bitmi 8. a 7.

OV sa taktiež využíva pre indikáciu delenia nulou pri delení a pri násobení.

P – (Parity Flag) – logickou jednotkou indikuje párny počet jednotiek v akumulátore A

 

4.2.1.4  SP (Stack Pointer) – Ukazateľ zásobníka

 

            Ukazateľ zásobníka - SP je 8-bitový register, v ktorom je uložená adresa na ktorej je umiestnený začiatok zásobníka. Zásobník sa môže nachádzať kdekoľvek v internej  dátovej pamäti. Po resete je SP implicitne nastavený na hodnotu 07H, čiže začiatok zásobníka sa začína od registra R0 banky 1.

            Zápisom do zásobníka sa SP automaticky inkrementuje, alebo pri vyberaní zo zásobníka sa zas automaticky dekrementuje. V zásobníku je uložená návratová adresa po vykonaní podprogramu, takže SP stále ukazuje na miesto kde je uložená aktuálna návratová adresa.

 

4.2.1.5 DPTR – (Data Pointer)

 

           DPTR je 16-bitový register slúžiaci na nepriame adresovanie externej dátovej RAM pamäte alebo aj externej programovej pamäte. Pozostáva z dvoch 8 bitových registrov DPL – dolné polslovo a DPH – horné polslovo.

Príklad: MOVX A, @DPTR

 

4.2.1.6 PC – (Program Counter) – Čítač inštrukcií

 

            PC je 16-bitový register, programovo nie je priamo prístupný.  Po resete je implicitne nastavený na hodnotu 00000H. PC určuje adresu od ktorej je  začaté načítavanie programu z programovej pamäte. Obsah PC je možné meniť inštrukciami volania podprogramu, alebo inštrukciami skoku, keď je nutné zmeniť miesto od ktorého pokračuje výkon programu.

 

4.2.1.7 Čítače – časovače

           

Mikropočítač 8051 obsahuje dva 16-bitové čítače/časovače. Sú to dva identické obvody, čítač/časovač 0 a čítač/časovač 1 (ďalej už iba ako C/T0 a C/T1). V závislosti od nastavenia majú dvojakú použiteľnosť, buď na meranie času, alebo na počítanie impulzov.

Činnosť C/Ti, (i=0,1) je konfigurovaná pomocou SFR TMOD a TCON. TCON slúži na konfiguráciu režimu a TMOD na nastavenie príslušného módu činnosti.

 TMOD je SFR slúžiaci na nastavenie módov C/Ti. Je rozdelený na dve polovice pre každý C/Ti jedna. Význam jednotlivých bitov TMOD je nasledovný: 

 

                                                           

 

Obr. 4.11: Register TMOD

 

GATE – je riadenie C/Ti buď výlučne programovo pomocou bitu TRn v TCON ak je GATE=0, alebo ak GATE = 1 je riadenie doplnené o možnosť riadenia softvérovo, ale aj vonkajším signálom na vstupe INTi, i=0,1.

C/T – voľba režimu prevádzky, ak C/T = 0, tak je nastavený režim časovača so synchronizačným signálom odvodeným od hodinového vydeleného hodnotou 12. V prípade, že C/T=1, nastavený je režim čítača impulzov z externého vstupu Ti.

M0,M1 – dva bity slúžiace na nastavenie módu C/Ti

 

                                   

 

Tab. 4.3: Nastavenie módov časovačov 0 a 1

 

 

SFR TCON riadime prevádzku C/Ti. Rovnako ako TMOD, aj TCON obsahuje konfiguračné bity pre oba C/Ti a ich význam je nasledovný:

 

                                                   

    

Obr. 4.12: Register TCON

 

TF0, TF1 – indikujú pretečenie C/Ti, sú nastavené prechodom C/Ti z maximálnej hodnoty na nulu. Spustením obslužného podprogramu pre prerušenie sa automaticky bit TFi nuluje.

TR0, TR1 – bity zabezpečujúce softvérové spúšťanie a zastavenie činnosti C/Ti. V prípade ak GATE = 1, riadenie je kombinované so vstupom INTi.

IE0, IE1 – tieto bity sú automaticky nastavené pri zostupnej hrane alebo logickej 0 na vstupe externého prerušenia INTi v závislosti od nastavenia bitu ITi. Bity sa automaticky nulujú pri skokudo obslužného podprogramu prerušenia.

IT0, IT1 – nastavenie bitu ITi na log.0 spôsobí aktiváciu prerušenia na vstupe INTi pri úrovni log. 0. Pri dostatočne dlhom trvaní danej logickej úrovne na vstupe INTi, teoreticky sa môže obslužný podprogram vyvolať aj viackrát za sebou. Ak však je         ITi = 1, tak prerušenie sa vyvolá iba v prípade detekcie zostupnej hrany signálu na vstupe INTi, zabezpečíme tak spustenie obslužného podprogramu iba raz v momente prechodu signálu z log.1 do log.0 na vstupe INTi. Prerušenie sa opäť vyvolá až pri rovnakej zmene signálu.

  Obsah C/Ti je uložený v ďalších SFR a to v TLi a THi, i = 0,1. TLi je dolné 8-bitové polslovo a THi je horné 8-bitové polslovo.

V závislosti od nastavenia hodnôt v TMOD a TCOM rozlišujeme štyri módy činnosti:

 

Mód 0: sa nastavuje pomocou M0 = 0, M1 = 0 a predstavuje 13-bitový C/Ti, pozostáva s 8-bitového čítača THi a 5-bitového TLi, číta vzostupne, pri pretečení sa vyvolá prerušenie a nastaví sa príznakový bit TFi v TCON

 

 

                     

 

Obr. 4.13: Mód 0 čítača/ časovača

 

Mód 1: sa nastavuje pomocou M0 = 1 a M1 = 0, je identický ako mód 0 až na to, že oba čítače THi a TLi sú 8-bitové, tvoriace tak spolu 16-bitový čítač

 

                     

 

 

Obr. 4.14: Mód 1 čítača/ časovača

 

 

Mód 2: M0 = 0, M1 = 1, pracuje v režime s prednastavením, čítač TLi počíta vzostupne až do pretečenia, keď sa vyvolá prerušenie, po obslúžení prerušenia sa prepíše obsah  THi, ktorý slúži na uloženie hodnoty prednastavenia do TLi od ktorej opäť TLi počíta až do pretečenia.

 

 

                           

 

Obr. 4.15: Mód 2 čítača/ časovača

 

            Mód 3: využíva TH0 a TL0 ako dva samostatné 8-bitové čítače. Čítač TL0 je riadený signálmi C/T, GATE, TR0, INT0 a TF0. Čítač TH0 pracuje ako časovač riadený iba signálom TR1, pri pretečení nastavuje TF1, tým pádom sú využité obe prerušenia a tak C/T1 môže byť využitý iba ako generátor prenosovej rýchlosti pre sériový kanál

 

 

                                           

 

Obr. 4.16: Mód 3 čítača/ časovača

 

4.2.1.8 Prerušovací systém

 

            Na zvýšenie efektivity spolupráce mikropočítača s perifériami slúži systém prerušení. 8051 disponuje celkom piatimi zdrojmi prerušení konfigurovateľnými pomocou registra IE. Tento SFR slúži na globálne povolenie alebo zakázanie prerušení a na povolenie a zakázanie toho konkrétneho prerušenia. Význam jednotlivých bitov v IE je následovný:

 

                                                           

 

Obr. 4.17: Register IE

 

EA – pre EA=0, zakážeme všetky prerušenia, ak je EA=1, všetky prerušenia sú povolené

Nasledujúce bity v prípade, že sú nastavené, tak povoľujú prerušenia pre jednotlivé periférie

ES – sériová linka

ET1 – čítač/časovač 1

EX1 – externý vstup 1

ET0 – čítač/časovač 0

EX0 - externý vstup 1

 

 Prerušenia sa vykonávajú s prioritou v nasledujúcom poradí:

 

                                                                                      

 

Tab. 4.4: Priorita prerušení

 

Význam spočíva v tom, že nadradené prerušenie s vyššou prioritou môže prerušiť obsluhu prerušenia s nižšou prioritou, nie však opačne. V prípade, že potrebné danú prioritu zmeniť, systém disponuje dodatočnou možnosťou zmeny priority v dvoch úrovniach nastavením v SFR IP. Priradením logickej 1 je zvýšená priorita príslušného zariadenia.

 

 

                                                           

 

Obr.4.18: Register IP

 

Význam príslušnosti jednotlivých bitov nastavujúcich prioritu príslušného zariadenia v IP je nasledovný:

 

PS – sériový kanál

PT1 - čítač/časovač 1

PX1 - externý vstup 1

PT0 - čítač/časovač 0

PX0 - externý vstup 1

 

Vektor prerušenia – je adresa ukazujúca na miesto v pamäti, kde je uložený obslužný podprogram pre dané prerušenie. Pri mikropočítači 8051 má každé prerušenia pevne pridelenú adresu v pamäti programu na ktorú sa uloží skoková inštrukcia s  adresou príslušného obslužného podprogramu. Znázornenie je na obr. 4.19:

 

                                                                   

 

Obr. 4.19: Vektory prerušenia mikropočítača  8051

 

Na adrese 000H je uložená skoková inštrukcia JMP START, ktorá vykoná skok na začiatok programu po štarte mikropočítača. Prvé prerušenia začína od adresy 003H, kde je uložená skoková inštrukcia JUMP na podprogram pre obsluhu prerušenia 0 a každé ďalšie je s odstupom 8 pamäťových miest. V nasledujúcej tabuľke sú uvedené prerušenia spolu s príslušnými adresami.

 

                                                                          

 

Tab. 4.5: Adresy prerušení 8051

 

 4.2.1.9 Sériový kanál

 

            Integrovaný, plne duplexný sériový kanál s možnosťou nastavenia viacerých režimov činnosti umožňuje prepojenie daného mikropočítača s inými zariadeniami ako je napríklad PC. Sériový kanál umožňuje voľbu 8 alebo 9 bitového režimu v synchrónnom aj asynchrónnom móde prevádzky. Ako ostatné periférie je aj sériový kanál prístupný skrz príslušné SFR. Na nastavenie a riadenie prevádzky slúži SCON a na príjem a vysielanie dát SBUF. Register SCON je zobrazený na nasledujúcom obrázku.

 

                                                          

 

Obr. 4.20:Register SCON

 

SFR SCON obsahuje konfiguračné bity s nasledovným významom:

            SM0, SM1 – sú konfiguračné bity na nastavenie jedného zo štyroch módov činnosti sériového kanálu, možnosti sú:

 

                                           

 

Tab. 4.6: Možnosti nastavenia sériovej linky

 

SM2 – nastavením tohto bitu povoľujeme multiprocesorovú komunikáciu, čo znamená prepojenie viacerých mikroprocesorov skrz sériový kanál, daný bit má význam iba v nastavení v móde 2 a 3

            REN – povolenie príjmu ak REN=1

            TB8 – je 9. bitom pri vysielaní v móde 2 a 3, nastavuje sa programovo

            RB8 – je 9. bitom pri prijímaní v móde 2 a 3,  pri nastavení SM2=1 v móde 1 má význam STOP bitu

            TI – je bit nastavený bezprostredne po odvysielaní posledného bitu s vyrovnávacieho registra SBUF pre sériový kanál v synchrónnom režime alebo po vyslaní STOP bitu v ostatných asynchrónnych režimoch

            RI – je bit nastavený po príjme posledného bitu dát v synchrónnom režime alebo po prijatí STOP bitu v asynchrónnom režime

             Po nastavení bitov RI a TI  sa vyvolá prerušenie od sériového kanála, je nutné programovo detekovať či sa jednalo o prenos alebo príjem a to priamo zistením stavu týchto bitov.

 Sériový kanál môže pracovať v týchto módoch:

 

           Mód 0: 8 bitový synchrónny sériový kanál s prenosovou rýchlosťou odvodenou od hodinového, ako 1/12 frekvencie tohto signálu.

 

           Mód 1: 8 bitový asynchrónny sériový kanál s prenosovou rýchlosťou danou vzťahom

 

 

   

   

SMOD bit je umiestnení v SFR PCON. Vysielanie začína štart bitom a končí STOP bitom uloženým v RB8 registra SCON, takže celkovo sa prenesie 10 bitov.

 

             Mód 2: 9-bitový asynchrónny sériový kanál, vyslaným 9. bitom je bit TB8 s registra SCON, ktorý sa na prijímacej strane uloží opäť do registra SCON ale na miesto bity RB8. Prenosová rýchlosť je daná ako 1/32 alebo 1/64 taktovacej frekvencie mikropočítača v závislosti od nastavenia bitu SMOD v PCON.

           

            Mód 3: je totožný s módom 2 až na možnosť riadenia prenosovej rýchlosti pomocou čítača/časovača 1 a hodnotou bitu SMOD

           

Princíp vysielania a príjmu prostredníctvom sériového kanála spočíva pri vysielaní v zápise dát do registra SBUF a pri prijímaní zas z čítania dát uložených po príjme v registri SBUF.

 

 4.2.1.10 Riadenie príkonu procesora

 

            Pomocou SFR registra PCON môžeme riadiť spotrebu mikropočítača v dvoch režimoch.

 

                                                           

           

Obr . 4.21: Register PCON

 

Režim IDLE – sa aktivuje nastavením bitu IDL v PCON. Bezprostredne na to je zastavená činnosť jadra procesora, pričom periférie ako sériový kanál, čítače/časovače a podobne ostávajú aktívne. Taktiež sa zachováva obsah registrov ako SP, PC a obsah internej RAM pamäte. Vstupne/výstupné brány majú nastavený posledný stav. Tento stav procesora je možné zrušiť vyvolaním nemaskovateľného prerušenia, napríklad prijatím dát po sériovom kanále keď je bit IDL nulovaný, alebo resetovaním procesora.

            Režim Power Down spustený nastavením bitu PD v PCON úplne zastaví činnosť procesoru vrátane periférií. Obsah SFR a RAM ostáva uchovaný. Návrat z tohto režimu je možný jedine signálom reset, čím stratíme všetky údaje v SFR, no obsah RAM sa uchováva.

 


 

4.3 Fyzické zapojenie mikroprocesora

 

           

            Mikropočítač disponuje 40 vývodmi, ktorých význam je znázornený na obr.  4.22.

 

                                                                                   

 

Obr. 4.22: Zapojenie mikropočítača 8051

 

Na brány P0 a P2 je vyvedená adresová zbernica pre prístup do externých pamätí, pričom P0 je navyše multiplexovaná s externe vyvedenou dátovou zbernicou. Brána P3 je zdieľaná s externe vyvedenými signálmi a sériovou linkou. Brána P1 je univerzálne použiteľná. Samostatne sú vyvedené signály PSEN, ALE, EA, RESET a vývody na pripojenie externého kryštálu oscilátora.  

RESET signál spôsobí reštart mikropočítača, čiže znovuspustenie systému. Čítač inštrukcií PC je nastavený na nulovú hodnotu, program sa vykonávať opäť od počiatočnej adresy 0000H.

            Signálom RESET je možné ošetriť aj takzvané „zablúdenie“ programu, ak mikropočítač prestane korektne vykonávať program. Táto chyba môže nastať napríklad v dôsledku rušenia okolitými elektronickými zariadeniami alebo vplyvom  iných negatívnych vplyvov pôsobiacich na mikropočítačový systém. Signál RESET v tomto prípade generuje externe pripojený dohliadací obvod (watchdog).

            Signál RESET je možné generovať manuálne (obr. 4.23) alebo elektronickým obvodom (obr. 4.24).

 

 

                                                           

 

Obr. 4.23: Obvod signálu reset

 

Po pripojení napájacieho napätia je generovaný signál RESET pomocou RC článku zloženého z odporu 8,2 kW a elektrolytického kondenzátora 10 mF. V prípade pomalého nárastu napájacieho napätia môže dôjsť k prípadu, že RESET signál sa nevygeneruje. Odstránenie tohto javu je možné použitím špecializovaných obvodov zabezpečujúcich korektné spustenie mikropočítača po pripojení napájacieho napätia. Tieto obvody sú opísané bližšie v kapitole venujúcej sa periférnym obvodom mikropočítačových systémov.

                                                                                    

             

 

Obr. 4.24: Zapojenie 8051 a obvodu watchdog - MAX609A

 

Na obr. 4.24 je praktické zapojenie 8051 spolu s watchdog obvodom MAX690A. Počas normálnej prevádzky, vhodne vytvorený program v pravidelných intervaloch vysiela impulz na príslušný vstup WDI obvodu  watchdog, čím je potvrdená správna funkcia systému. Ak tento impulz nedôjde včas, watchdog generuje signál RESET a mikropočítač je reštartovaný. Pripojená externá CMOS RAM pamäť umožňuje uchovanie obsahu pomocou záložnej batérie pripojenej k obvodu watchdog.

 


 

4.4 Klony architektúry 8051

  

Architektúra Intel 8051 aj napriek tomu, že bola na trh uvedená už v roku 1980 je doposiaľ podporovaná mnohými výrobcami. Vyrábané sú hlavne rôzne modifikácie, u ktorých došlo k nasledovným zmenám:

 

 V nasledujúcich kapitolách sú uvedení niektorí výrobcovia klonov mikropočítačov založených na jadre 8051. V krátkosti sú uvedené niektoré ich špecifické vlastnosti alebo vylepšenia oproti pôvodnej architektúre, ktoré je vhodné si povšimnúť.

 

4.4.1   Analog Devices – AduC8xx  

 

            Analog Devices nazýva svoje mikropočítače aj mikrokonvertormi vzhľadom na periférie integrované na čipe. V závislosti od konkrétneho typu tieto mikropočítače disponujú integrovanými viackanálovými AD prevodníkmi s rozlíšením 12, 16 alebo až 24 bitov s autokalibráciou a jedno alebo dvoj kanálovými 12-bitovými DA prevodníkmi, čo im umožňuje ľahkú implementáciu do aplikácie spracovávajúcej analógové veličiny ako sú napríklad inteligentné senzory. Na jeden zo vstupov AD prevodníkov je pripojený interný teplotný senzor.

Štandardne je implementovaný PWM/sigma - delta – pulzne šírkovo modulovaný výstup.

            Pamäťový systém disponuje 62 kB FLASH/EE programovou pamäťou a 2 kB dodatočnou, užívateľovi neprístupnou pamäťou v ktorej je umiestnený firmware – programové vybavenie, zabezpečujúce autokalibáciu prevodníkov a možnosť programovania mikropočítača v systéme pomocou ISP rozhrania. Výhodou je existencia 4 kB FLASH/EE dátovej pamäte. RAM pamäť je 2304 B, 128 B priamo 128 B nepriamo adresovatelnej RAM a 2048 B XRAM pamäte .

            Na zabezpečenie spoľahlivej činnosti ADuCxxx obsahuje WDT (Watch Dog Timer) – časovač dohliadacieho obvodu, umožňujúci správnu chod mikropočítača spolu PSM (Power Supply Monitor) kontrolujúcim napájacie napätie.

            TIC (Time Interval Counter) zvyšuje aplikačné nasadenie mikropočítača o možnosť využiť daný čítač ako:

Okrem univerzálnych vstupne/výstupný brán ADuCxxx disponuje aj sériovými rozhraniami UART, SPI a I2C umožňujúcimi pomocou týchto štandardizovaný rozhraní bez problémov pripájať ďalšie periférne zariadenia alebo  pomocou nich realizovať prepojenie jednotlivých mikropočítačov a vytvárať tak možnosť stavby rozsiahlejšieho systému.

Generovanie taktovacích impulzov prebieha interne pomocou PLL obvodu na základe externe pripojeného 32 kHz kryštálu. Eliminujeme tak EMI, čiže rušenie okolitých zariadení ako aj možnosť rušenia samotného mikropočítača.

Pri obvodoch rady ADuC83x je dĺžka inštrukčného cyklu 12 hodinových impulzov, čo znamená výkon pri maximálnej taktovacej frekvencii 16 MHz/12=1,3 MIPS. Obvody rady ADuC84x majú dĺžku inštrukčného cyklu iba 1 hodinový impulz a pri taktovacej frekvencii 16 MHz dosahujú špičkový výkon 16 MIPS.

Ako príklad je uvedený ADuC836.

 

Stránka výrobcu: (http://www.analog.com/)

 

4.4.2 Atmel

 

            Táto firma ponúka široké spektrum modifikácií architektúry 8051. Jednotlivé typy sú od seba odlišné rýchlosťou výkonu inštrukcií, integrovanými perifériami, veľkosťou pamäťového systému a inými vlastnosťami. Podľa možnosti programovania jednotlivých typov môžeme tieto rozdeliť do skupín ako udáva výrobca na:

 - ISP Flash – obsahujúce FLASH pamäť s možnosťou programovať obvod v aplikácii ( rada 89C5xxx, 89LS5xxx a 89S5xxx )

 - FLASH reprogramovateľné s možnosťou viacnásobného reprogramovania 1.000 – 100.000 krát ( rada 89C5x a 89LV5x )

 - OTP – raz programovateľné ( rada 87Fxx a 87C51Rxx )

 - ROM – obsahujú ROM pamäť (rada 83C5xxx a 80C5xxx )

 - FLASH reprogramovateľné s redukovaným počtom vývodov, väčšinou chýba brána P0 a P2, takže neumožňujú pripojenie externých pamätí ( rada 89C1051/2051/4051 – s 1, 2 a 4kB Flash pamäte)

            Architektúru majú plne statickú, čo umožňuje prispôsobovať taktovaciu frekvenciu prakticky od nulovej hodnoty až po hraničnú frekvenciu v závislosti od toho daného typu. Zaujímavosťou sú obvody s vylepšením X2 umožňujúce skrátenie inštrukčného cyklu z 12 na 6 hodinových impulzov. Taktovacia frekvencia závisí priamo od napájacieho napätia, ktoré tieto obvody majú od 2,7V po 5,5 až 6V a umožňujú tak použitie aj v systémoch s 3,3V logikou. Nižšie napájacie napätie umožňuje zníženie odber pre menej náročné aplikácie, ktoré nevyžadujú plný výkon mikropočítača.

            Mikropočítače štandardne obsahujú štyri - P0-P3 vstupne/výstupné brány, v špeciálnych prípadoch viac a to 6 brán ( 89C51RD2 ) alebo menej - 2 brány ( 89Cx051 ). Ako štandardné sériové rozhranie je UART, niektoré obvody obsahujú aj SPI rozhranie.

            Z integrovaných periférií je to ešte Watch Dog a iba u 3 typov 10 bitový 8 kanálový AD prevodník.

            Ďalším vylepšením u niektorých typov je PCA ( Programable Counter Array )  - programovateľné pole čítačov umožňuje ich variabilnejšie využitie oproti klasickým čítačom/časovačom. Príkladom je AT89C5131, ktorý navyše obsahuje USB rozhranie.

            Dvojitý DPTR – Data Pointer zas umožňuje efektívnejší prístup do externých pamätí.

            Jednotlivé typy disponujú viacerými prerušeniami v niekoľkých úrovniach priority.

            Ako príklad je uvedený typ AT89C51RD2.

 

Stránka výrobcu: (http://www.atmel.com/products/8051/)

 

4.4.3 Silicon Laboratories

            

            Klony tohoto výrobcu poskytujú vysoký výkon do 20, 25, 50 a 100MIPS podľa typu. Štandardom celej rady je ISP rozhranie umožňujúce programovanie priamo v aplikácii a JTAG rozhranie slúžiace na testovanie funkcie obvodu. Široké spektrum typov zahŕňa miniatúrne obvody s rozmermi 3x3mm s 11timi vývodmi a výkonom 20MIPS  po typy s výkonom 100MIPS a 16x16 bitovou MAC jednotkou.

            Všetky typové rady disponujú vysokorýchlostnými viackanálovými AD prevodníkmi s rýchlosťou vzorkovania od 100 ksps (kilo vzoriek za sekundu) do 1 Msps, FLASH pamäťou programu od 4096 bajtov po 131072 bajtov, operačná pamäť RAM od 256 bajtov do 8448 bajtov, troma  až piatimi čítačmi/časovačmi a jedným alebo dvoma napäťovými komparátormi. Variabilne sú obvody vybavené napäťovou referenciou, teplotným senzorom a  dvoj kanálovým 12-bitovým DA prevodníkom.            

            Obvody obsahujú okrem klasických paralelných portov v počte až do 8 brán po 8  vstupno/výstupných liniek aj rôznymi sériovými rozhraniami ako UART, SPI, CAN 2.0B a SMBus. Naskytá sa tak možnosť v prípade CAN zbernice využiť tieto obvody v automobilovom priemysle, pre ktorý táto zbernica je určená.

            S prihliadnutím k možnostiam obvodu a porovnaním s cenou akú udáva výrobca, sú to veľmi atraktívne obvody pre rôzne aplikácie.

            Ako príklad je uvedený typ C8051F124.

 

Stránka výrobcu: (www.silabs.com/products/microcontroller/index.asp)

 

4.4.4 Dallas Semiconductors

 

            Táto firma vyrába klony architektúry 8051 v týchto aplikačných vyhotoveniach:   

Stránka výrobcu: (www.dalsemi.com/Microcontrollers.cfm)

 

4.4.5 Goal Semiconductors

 

Ďalšie vylepšenie architektúry 8051 založené na RISC architektúre s možnosťou výkonu inštrukcie v jednom hodinovom cykle. Podľa charakteristických rysov delíme dané mikropočítače do skupín na:

Stránka výrobcu: (www.goalasic.com/products.html)

 

4.4.6 Philips

 

Táto firma taktiež disponuje širokou ponukou mikropočítačov založených na architektúre 8051, či už bežných štandardných obvodov alebo výrazne upravených s pridaním rôznych periférií a iných možností. Podľa vlastností sú výrobcom tieto mikrokontroléry delené do rodín na:

-          P89LPC900 – vysokovýkonné mikroprocesory z jadrom 8051 schopné vykonať inštrukciu počas 2 alebo 4 hodinových impulzov a pri maximálnej taktovacej frekvencii dosahujú až 6MIPS, majú nízky príkon, čím sú určené pre zariadenia napájané z batérií. Ďalšou z výhod je systém až 15 prerušení z toho 3 externé. Príkladom je typ P89LPC934

 

-         P89LPC90x – rodina mikropočítačov s 8 vývodmi určenými pre aplikácie s ohľadom na cenu a rozmery systému, mikropočítače sú štandardne vybavené 1 kB Flash programovej pamäte, 128 B RAM a systémom 6 až 9 zdrojov prerušení. Príkladom je typ P89LPC901

 

-         P89LPC91x – rodina mikropočítačov so vývodmi s rovnakým určením ako predchádzajúca rada. Navyše obsahujú SPI rozhranie. Príkladom je typ P89LPC912

 

-         51MX – architektúra 8051, plne statická s trvaním strojového cyklu 6 taktov. Možnosť adresovania 8 MB dátovej a 8 MB programovej externej pamäte. Príkladom je typ P89C669

 

-         8051 – 6 a 12 taktové strojové cykly, obsahujú štandardné vlastnosti 8051. Doplnené o väčšie RAM, alebo programové pamäte, I2C rozhranie, PWM a watchdog. Príkladom je typ P80C554

 

Stránka výrobcu:(http://semiconductors.philips.com)

 

4.4.7 STMicroelectronics

 

Rada mPSD disponuje dvoma typovými sériami kompatibilnými s 8051, mPSD3200 a mPSD3300.

 

 Stránka výrobcu:(http://www.st.com/micropsd/)

 

4.4.8 Infineon

 

Od tohto výrobcu je uvedený konkrétny typ mikropočítača v súvislosti s ukážkou možnosti akými je možné vylepšovanie architektúry 8051.

-SAB80C517  - disponuje taktovacou frekvecniou 18 MHz s 12 taktovým strojovým cyklom. Hlavným vylepšením je MDU (Multiplication/Division Unit) – jednotka pre násobenie a delenie umožňujúca rýchle 32-bitové delenie, 16-bitové násobenie, posun a normalizáciu výsledku. Napríklad súčin dvoch 16-bitových čísel je schopná vykonať za 4 strojové cykly.

            Ďalším vylepšením je až 8 DPTR registrov pre prístup do externej  pamäte. Systém 17 zdrojov prerušení nastaviteľných do 4 úrovní priority umožňuje účinne a efektívne využiť jednotlivé periférie integrované na čipe. 

Bližšie informácie o jednotlivých ďalších mikropočítačoch sú na stránke výrobcu (www.infineon.com).

 

 

4.4.9 Ostatné klony

 

Odkazy na ďalších výrobcov mikropočítačov založených na architektúre 8051 je možné nájsť na stránke Keil – vývojového prostredie, ktoré dané mikropočítače podporuje: http://www.keil.com/dd/8051chips.asp.