Mikrokontrolery řady 8051
Tyto obvody představují vlastně velmi jednoduchý, ale kompletní mikropočitačový systém. Ustálil se pro ně název jednočipové mikropočitače nebo též mikrokontrolery. Jejich vnitřní skladba mimo CPU obsahuje všechny potřebné bloky (na př. oproti procesoru 8080) jako generátor hodin, paměť ROM i RAM, obvody vstupů a výstupů, čítače/časovače a sériovou linku. U dalších typů například 16bitových procesorů 8096 navíc i A/D převodníky atd.
Rozsah pamětí je poměrně malý, ale dostatečný pro úkoly, pro které jsou obvody používány - především pro menší rozsahy regulace, řadiče periferií a podobné jednodušší aplikace. Vyznačují se nízkou cenou, vysokou spolehlivostí, malými rozměry a malou energetickou náročností.
Mikrokontroléry řady 8051 V dalším zde budeme probírat hojně používanou skupinu 8bitových procesorů Vyráběná řada těchto procesorů má následující vlastnosti : 8bitová binární paralelní ALU kapacita vnější paměti programu 64 kB kapacita vnější paměti dat 64 kB počet čitačů 2-3 podle typu dvě prioritní úrovně pro 5 žádostí o přerušení duplexní sériový kanál oscilátor a generátor hodinového kmitočtu v procesoru
kapacita vnitřních pamětí viz tabulka nemá společnou operační paměť pro program i data typickou pro von Neumannův typ počítače
Přehled mikrokontrolérů
Význam jednotlivých vývodů P0.0-P0.7 - obousměrná 8bitová datová brána P0 použitelná pro dolní část multiplexované adresové sběrnice a 8bitové datové sběrnice v průběhu přístupu do systémových pamětí. Přes tuto bránu se provádí též programování vnitřní paměti EPROM. P1.0-P1.7 - obousměrná 8bitová datová brána P1. Při programování vnitřní paměti EPROM definuje spodní část adresy paměti EPROM.
P2.0-P2.7 - obousměrná 8bitová brána P2. Při přístupu k vnější paměti definuje horní část adresy stejně jako při programování vnější paměti. P3.0-P3.7 - obousměrná 8bitová datová brána P3. Mimo funkce brány lze jednotlivé bity přepnout jako řídící signály speciálních funkčních registrů SFR.
Přehled těchto registrů je v tabulce a za ní bližší popis. P3.0 - RXD - sériový vstup dat P3.1 - TXD - sériový výstup dat P3.2 - INT0 - vstupy vnějších žádostí o přerušení P3.3 - INT1 - vstupy vnějších žádostí o přerušení P3.4 - T0 - vstup čítače/časovače 0 P3.5 - T1 - vstup čítače/časovače 1 P3.6 - WR - zápisový signál pro přenos dat do vnější paměti P3.7 - RD - signál pro čtení dat z vnější paměti
RST - vstup signálu RESET pro inicializaci procesoru ALE/PROG - výstupní signál ALE slouží pro zápis dolní části adresové sběrnice do vyrovnávací paměti dolní části adresy. Používá se při přístupu do vnější paměti programu nebo dat. Vstupním signálem PROG se provádí zápis datového slova do vnitřní paměti EPROM při programování jejího obsahu. PSEN - výstupní signál sloužící pro čtení obsahu vnější paměti programu. Je vyvoláván v každém strojním cyklu 2x. Pokud je zpracováván program uložený v procesoru, signál se negeneruje.
EA/VVP - vstupní signál EA slouží k přepnutí vnitřní a vnější paměti programu. Je-li EA = L je načítán program z vnější paměti. Pro EA = H bude paměť v rozsahu FFF z procesoru, vyšší adres mimo procesor ve vnější paměti programu Vstup VVP se při programování používá jako zdroj programovacího napětí 21V. XTAL1 - vstup budiče generátoru hodinového kmitočtu je buď připojen na krystal, nebo se vývod uzemní. XTAL2 - je připojen na krystal nebo na zdroj vnějšího kmitočtu.
Zapojení vývodů procesorů 8051 a 8052
Struktura Vnitřní uspořádání je na následujícím obrázku. Je zde rozdíl mezi typy 8051 a 8052, u kterých další vybavení je označeno hvězdičkou. Blok ALU zahrnuje vlastní ALU, dva dočasné registry, střadač a stavový registr který nastavuje svůj obsah podle výsledků operace ALU. Datové brány jsou čtyři a s výjimkou brány P1 mohou nabývat ještě dalšího významu. Zdrojem adresy je buď programový čítač PC nebo též 16bitový registr DPTR, který se používá pro adresování vnější paměti dat.
Přehled speciálních funkčních registrů (SFR)
Časovače, sériový kanál UART a přerušovací obvody jsou v bloku speciálních funkčních registrů (SFR) uprostřed schematu. K těmto vnitřním blokům je umožněn přístup jen pomocí SFR. Všechny vnitřní funkce se řídí a testují pomocí bitů, bytů či slov adresovaných z tohoto bloku. Registry SFR zahrnují nejen řídící a stavová slova, ale i brány pro paralelní i sériový vstup a výstup dat.
Řadič procesoru zajišťuje časování po strojních cyklech, při čemž strojní cyklus má 6 stavů (t.j. 12 period oscilátoru) označených S 1 až S 6. Každý stav se dělí na 1/2 patřící fázi 1 (P 1 ) kdy se provádějí typicky aritmetické a logické operace a na 1/2 patřící fázi 2 (P 2 ) kdy se provádějí vnitřní přesuny mezi registry. Strojový cyklus je pak tvořen celkem 12 periodami s označením S 1 - P 1 až S 6 - P 2, při čemž každá fáze trvá 1 periodu oscilátoru a každý stav 2 periody.
Přehledové blokové schéma
Blokové schéma procesoru 8051
Časování přístupu k vnitřní paměti programu Časování, výběr a provedení instrukce je na následujícím obrázku. Vnitřní hodiny nejsou pro nás dostupné a proto jsou znázorněny průběhy oscilátoru na vstupu a průběh signálu ALE. Signál ALE je aktivován 2x během jednoho strojního cyklu. Tím je vlastně strojní cyklus dělen na dvě 1/2 po 3 stavech. Jeho způsob práce připomíná chování 16bitových procesorů.
Provádění 1bytové 1cyklové instrukce začíná S 1 - P 2, kdy operační znak je uložen do registru instrukcí. Ve stavu S 4 je také výběr, ale přečtený byte se ignoruje a obsah programového čítače se nezvýší.
V případě 2bytové 1cyklová instrukce se čte 1 byte ve stavu S1 a druhý ve stavu S4 téhož strojového cyklu. Jak je vidět z obrázku, pak časování je nejlépe přizpůsobeno 2bytovým operacím, protože se oba byty přečtou během jednoho strojního cyklu.
1bytová 2cyklová instrukce, kde se provádí čtení operačního znaku ve stavu S1 v prvém strojovém cyklu, při čemž se ostatní stavy S4 prvého cyklu, S1 a S4 druhého cyklu provádí naprázdno.
Většina instrukcí se provádí v 1 strojovém cyklu. Jedinými instrukcemi, které potřebují pro svou realizaci více než 2 strojové cykly jsou instrukce MUL (násobení) a DIV (dělení). Oba vyžadují 4 strojové cykly. V průběhu každého strojového cyklu se vybírají z paměti programu 2 byty a to operační znak instrukce a druhý buď (ignorovaný) operační znak nebo druhý byte instrukce.
Prakticky jedinou výjimkou je instrukce MOVX, která používá vnější paměť dat. V této 1bytové 2cyklové instrukci se ve druhém strojovém cyklu přeskakují 2 výběry v čase adresování a zápisu nebo čtení dat z vnější paměti dat.
Přehled časování instrukcí obvodů 8051
Časování přístupu k vnější paměti programu i dat Při časování přístupu k vnější paměti programu i dat určuje brána P2 vyšší řády adresy vnější paměti, brána P0 nižší řády. Při čtení jednotlivých bytů instrukce se generuje signál PSEN. Při přenosech dat se využívají signály RD a WR. Dolní část adresy v tomto případě může tvořit obsah některého 8bitového registru a její horní část je definována obsahem datové brány P2. Z výše uvedeného vyplývá, že do vnější paměti lze vstupovat buď přes 16bitový registr DPTR nebo přes nepřímé adresování registrem R0 či R1 a horní část adresy je opět určena obsahem datové brány P2.
Časování přístupu k vnější paměti programu a dat
Přehled registrů speciálních funkcí Mikrořadiče 8051 a 8052 mají paměťové prostory rozdělené a to na paměť dat a paměť programu. Paměť programu může mít rozsah do 64 kB z nichž nejnižší 4 kB mohou být umístěny na čipu. Paměť dat je typu RAM jejíž rozsah vně čipu může být až 64 kB. Přímo na čipu je kromě vnější paměti dat 128 B vnitřní paměti dat a navíc určitý počet registrů speciálních funkcí (Special Function Registers).
Adresy bitů ve vnitřní paměti dat
Adresy bitů v registrech SFR ve vnitřní paměti dat
Konfigurace paměti programu
Registry speciálních funkcí
Střadač Střadač ACC je registr se všemi funkcemi střadače. Při operandových operacích se střadačem se označuje A.
Registr B Používá se při aritmetických operacích násobení a dělení. Pro ostatní operace se může použít jako jiný registr zásobníkové paměti.
Registr stavového slova Registr stavového slova programu PSW je 8 bitový a obsahuje 7 bitů PSW. Jednotlivé bity mají význam : CY - příznak přenosu AC - příznak pomocného přenosu F0 - uživatelský příznak RS0 - řídící bit pro výběr sady registrů RS1 - řídící bit pro výběr sady registrů (nastavují a nulují se programově a určují banku registrů) OV - příznak přetečení P - parita
V tomto okamžiku je třeba si uvědomit, že k dispozici jsou 4 sady registrů, to je 32 8bitových registrů. Pracovat však lze jen s jednou jedinou a to otevřenou sadou registrů! Ostatní registry jsou nepřístupné. Změnou RS0 a RS1 v PSW lze opět pracovat s jinou osmicí registrů, protože nové nastavení zavírá dosud používané registry a otevírá nové.
Stavové slovo programu PSW
Určení sady registrů
Ukazatel zásobníku SP Ukazatel zásobníku SP je 8bitový a může adresovat kteroukoliv buňku vnitřní paměti dat. Jeho obsah je inkrementován dříve než dojde k uložení dat. Provedením funkce RESET se nastaví jeho obsah na hodnotu 07H a data budou ukládána do zásobníku od adresy 08H.
Ukazatel dat DPTR Registr ukazatele dat, též bázový registr uchovává 16bitovou adresu vnější paměti dat. Může být používán buď jako 16bitový nebo jako dva nezávislé 8bitové registry.
Brány 0 až 3 P0, P1, P2 a P3 jsou registry speciálních funkcí, které obsahují záchytné klopné obvody příslušných bran.
Vyrovnávací paměť sériových dat Vyrovnávací paměť sériových dat SBUF tvoří 2 oddělené vyrovnávací registry. Jsou to registry pro vysílání a příjem.
Časovače Jsou to registrové páry THO-TLO, TH1-TL1 a TH2-TL2 pracující buď jako čítače či časovače.
Záchytné registry Registrový pár RCAP2 - RCAL2 je pár záchytných registrů určených pro čítač/časovač 2 (8052) pracující v záchytném režimu. Je to režim při kterém se v závislosti na změně na vývodu T2EX zkopírují obsahy TH2 a TL2 do výše uvedených registrů.
Hodinový generátor Hodinový generátor je tvořen Piercovým oscilátorem s frekvencí MHz a jeho zapojení je na následujícím obrázku.
Připojení krystalu a vnější hodinová synchronizace
Časování přístupu k vnější paměti programu i dat Při časování přístupu k vnější paměti programu i dat určuje brána P2 vyšší řády adresy vnější paměti, brána P0 nižší řády. Při čtení jednotlivých bytů instrukce se generuje signál PSEN. Při přenosech dat se využívají signály RD a WR. Dolní část adresy v tomto případě může tvořit obsah některého 8bitového registru a její horní část je definována obsahem datové brány P2. Z výše uvedeného vyplývá, že do vnější paměti lze vstupovat buď přes 16bitový registr DPTR nebo přes nepřímé adresování registrem R 0 či R 1 a horní část adresy je opět určena obsahem datové brány P2.
Paměť systému Paměť je rozdělena na paměť programu a paměť dat. Z žádné adresy paměti dat nelze spustit program a též do paměti programu nelze zapsat jediné slovo.
Paměť programu Jsou možné dvě konfigurace a to buď s využitím vnitřní paměti, kterou lze doplnit pamětí vnější do kapacity 64 kB, nebo jen s využitím paměti vnější. K vnější paměti je pak přístup zásadně pomocí signálu PSEN.
Paměť dat Vnitřní paměť dat je ve všech procesorech s kapacitou 256 bytů. Mimo to může každý procesor adresovat 64 kB vnější paměti dat pomocí registru DPTR nebo nepřímo registry R0 či R1.
Členění paměťových prostorů obvodů 8051
Členění paměťových prostorů obvodů 8052
Členění paměťového prostoru vnitřní paměti dat
Procesor používá celkem 5 adresovacích režimů : adresování přímé s registrem adresování přímé adresování nepřímé s registrem adresování s přímým operandem nepřímé adresování s bázovým registrem DPTR a indexovým registrem
Paměťovým blokem může být : nižších 128 bytů vnitřní paměti dat vyšších 128 bytů vnitřní paměti dat (jen u 8052 a 8032) 256 bytů vnitřní paměti dat : bytů vlastní paměti bytů SFR registrů
Adresování
Adresování přímé s registrem Je to základní adresování, při kterém se poslední 3 bity operačního kódu využívají jako adresa jednoho z registrů R 0 - R 7 z vybrané banky registrů 0 až 3. Mimo to lze jako registry adresovat střadač, registry B, AB, DPTR a CY. Například MOV A, R5.
Přímé adresování Používá se pro přístup ke 128 bytům dolní části vnitřní paměti dat a ke všem speciálním funkčním registrům SFR. Operand 2bytové instrukce obsahuje adresu v rozmezí 0 - FFH. Například MOV A, data adr.
Adresování nepřímé s registrem Toto adresování je určeno pro rozsah 0000H - 00FFH a to pro přístup do vnitřní či vnější paměti RAM. Pro tuto adresaci se využívá registru R 0 nebo R 1 z vybrané banky. Takto je dostupných jen 128 byte vnitřní paměti RAM u procesorů 8051 a 8031 nebo 256 bytů u procesorů 8052 a Přístup do dalších stránek 64 kbytů paměti se provádí pomocí 16bitového datového registru DPTR. Jako další instrukce pro nepřímé adresování jsou instrukce pro ukládání a naplňování adresového registru a to PUSH a POP. SFR registry nejsou přístupné pro nepřímé registrové adresování. Například A.
Adresování s přímým operandem Tento způsob adresování nám umožňuje obsah operandu přepsat do registru nebo paměťového místa. Tím lze definovat nejen 8bitové, ale i 16bitové konstanty programu. Například MOVX
Nepřímé adresování s bázovým registrem Umožňuje nám vždy relativně adresovat buď data v paměti programu vzhledem k programovému čítači jako bázovému registru nebo data v paměti vzhledem k bázovému registru DPTR. Adresovaný byte z paměti programu je pak uložen do střadače místo 8bitového posunu adresy, což umožňuje vybírat data z tabulek umístěných v paměti programu. Například MOVC
Bitové adresování Bitové adresování tvoří soubor instrukcí pro vybrané bity ve vnitřní paměti dat obvodů 8051 a 8052, tzv. Booleovský procesor. Instrukce dovolují bit nastavit do H, nulovat, negovat, provádět větvení atd. Tímto bitovým adresováním lze ovlivnit nejen příznak přetečení CY ale v oblasti vnitřní paměti dat celý blok adres 20H - 2FH. Například MOV 26H.7,C.
Jednotlivé bity bloku lze samostatně nulovat nebo nastavovat.
Mimo těchto bytů lze bitově ovlivnit obsah většiny SFR registrů (viz obrázek dole). Například SET bit adr. Do této skupiny patří též instrukce podmíněných skoků, které větví program podle hodnoty adresového bitu. Pokud je příslušný bit nastaven, provede se odskok v programu a tento bit se vynuluje. Například CJB bit adr, kód adr.
Rezervované adresy procesoru Procesor rezervuje několik adres na nulté stránce paměti programu jako systémové adresy (viz následující tabulku).
Rezervace adres v paměti programu
Systém přerušení procesoru Procesor rozlišuje 5 zdrojů žádosti o přerušení. Vnější žádosti o přerušení mohou být aktivovány buď úrovní nebo spádovou hranou podle nastavených bitů IT0 a IT1 řídícího registru TCON.
Časovače/časovače 0 a 1 generují žádosti o přerušení TF0 a TF1 a nulují se jako jediné automaticky. Ostatní žádosti je nutno nulovat programově. Sériový kanál žádá o přerušení společnou žádostí od vysílače i přijímače. Každá žádost o přerušení má pevně stanovenou prioritu.
Priorita žádostí o přerušení
Zvýšení priority u dvou vstupů vnějšího přerušení lze nastavit registrem IP. Nastavením bitu do H se zvýší priorita o 1, nastavením do L zůstává původní. Dále je zde možnost práce s bity masky přerušení v SFR registru. Je to vlastně obdoba instrukcí EI a DI procesoru 8080, kterými lze povolit či zakázat přerušení. Stejných výsledků se dosáhne nastavením bitu EA v registru IE.
Je-li EA = L je přerušení zamaskováno, EA = H je přerušení uvolněno. Potřebujeme-li jen jedno nebo dvě přerušení pak je postup následující. Nastaví se EA do H a potřebné bity dle tabulky 19 se nastaví do H. Tím budou zamaskována všechna přerušení s výjimkou těch, která jsou do H.
Registr IP
Registr IE
Při generování požadavku na přerušení je prováděn skok do podprogramu instrukcí LCALL, při kterém se ukládá programový čítač do zásobníku. Do uvolněného programového čítače se ukládá adresa přerušení s nejvyšší prioritou. Je-li třeba pokračovat v původním programu je nutno podprogramem zajistit úschovu registrů, zásobníků a před ukončením podprogramu obnovit obsah registrů a ukončit vše instrukcí RETI. Tato instrukce jednak obnoví obsah programového čítače a současně oznamuje procesoru ukončení podprogramu. Pokud se návrat zrealizuje instrukcí RET nepovolí se činnost přerušovacího systému procesoru.
Délka trvání požadavku přerušení závisí na nastavení typu přerušení. Při přerušení spádovou hranou žádosti INT0 a INT1 je nutné, aby po dobu nejméně 1 cyklu byl požadavek v H před změnou do L. Poté stačí již na vstupu udržet L po dobu jednoho strojního cyklu a provede se zápis do vnitřní paměti. Při úrovňovém vstupu je třeba na vstupu udržet ve stavu L požadavek do té doby, než dojde k obsloužení přerušení.
Čítače/časovače Procesor má dva 16bitové čítače/časovače. Procesory 8032 a 8052 mají celkem 3 tyto čítače/časovače. Rozdíl mezi čítačem a časovačem je ten, že čítače čítají vnější události ze vstupů T0 a T1 a časovače čítají vnitřní hodiny procesoru f/12. Vnější události na vstupu čítačů mohou mít maximálně frekvenci strojních cyklů. V každém stavu S5 (1x za 24 period) se provádí vzorkování vstupu čítačů a při každé změně z H do L se provede přičtení 1 k obsahu čítače. Z toho vyplývá, že pro krystal 12 MHz je maximální vstupní frekvence 0,5 MHz. Minimální frekvence není omezena.
Pokud je zvolena funkce časovače, inkrementuje se obsah čítače každých 12 period. Z toho vyplývá maximální vstupní frekvence 1 MHz. Nastavení režimu čítačů/časovačů určuje SFR registr TMOD. Čítač/časovač 0,1 Režim čítání nebo časování je u obou čítačů/časovačů dán řídícím slovem, které je v SFR registru TMOD. Řízení obou čítačů/časovačů ve všech režimech určuje řídící registr TCON.
Registr TMOD a režimy činnosti
Módy činnosti čítače/časovače
Registr TCON
Mód 0 V tomto režimu pracuje obvod jako 13bitový s tím, že vlastní čítač/časovač je 8bitový, který je tvořen registrem THx. Před ním je předřazen 5bitový dělič dělící 1:32 tvořený registrem TLx. Čítání nebo časování vnějších událostí je řízeno signály TRx, xG a INTx. Řídícím bitem xG v SFR registru TMOD se řídí čítání bez či s blokovací funkcí signálem INTx.
Mód 1 Mód 1 je stejný jako mód 0 jen s tím rozdílem, že pro čítání se využívá všech 16 bitů registru časovače. Čítač/časovač 0 má v režimu 1 shodnou strukturu s čítačem/časovačem 1.
Mód 2 Mód 2 je určen pro periodické žádosti o přerušení, kde se využívá dolní část registru TLx jako počítacího registru a horní část THx slouží jako paměť předvolby.
Mód 3 V tomto módu se liší chování obou čítačů/časovačů a to tak, že v době kdy pracuje čítač/časovač 0 nemůže plně pracovat čítač/časovač 1. Čítač/časovač 0 se dělí na dva 8bitové čítače/časovače, při čemž je každý samostatný a vybavený řídícími signály a bity.
Část TL0 používá řídící signály čítače/časovače 0 včetně příznaku přetečení a část TH0 využívá ze stojícího čítače/časovače 1 dva řídící signály a to TR1 pro spuštění a zastavení a příznak přetečení TF1. Tento mód se používá tam, kde je potřeba dalšího samostatného čítače/časovače. V době činnosti čítače/časovače 0 lze použít i čítač/časovač 1, ale jen jako generátor rychlosti přenosu sériového kanálu, či tam kde není třeba příznak přetečení TF.
Čítač/časovač 2 U procesorů 8032 a 8052 je tento čítač/časovač navíc. Pro jeho řízení je určen SFR registr T2CON.
Sériový kanál Je to plně duplexní kanál, který může nezávisle vysílat a přijímat. Přijímač obdobně jako vysílač je vybaven vyrovnávací pamětí jednoho znaku. Oba jsou adresovány jedinou adresou SFR registru označeného SBUF. Zápisem do tohoto registru se plní vysílač a jeho čtením se odebírá slovo z přijímače. Řízení sériového kanálu se provádí bity SFR registru SCON. O aktivaci přijímače rozhoduje bit REN. Sériový kanál může pracovat ve 4 módech a to
Registr SCON
Mód 0 Sériová data v tomto módu vstupují a vystupují linkou RxD. Druhým vývodem TxD vystupují ze zdroje dat synchronizační impulsy, jichž je právě 8. To z toho důvodu, že stejný počet bitů má i datové slovo. První se vysílá nejnižší bit LBS. Data zůstávají platná po celou dobu, kdy TxD = L. Tento režim není duplexní. Maximální rychlost přenosu je 1/12 frekvence oscilátoru.
Mód 1 Je určen pro přenos 10bitových slov, kde délka dat je 8 bitů. Slova jsou vysílána přes TxD a přijímána přes RxD v duplexním provozu. Slovo má 1 start bit a 1 stop bit. Byte dat se přepisuje do vstupního registru SFR registru SBUS. Stop bit se zapisuje do stavového bitu RB8 v SFR registru SCON.
Mód 2 Umožňuje přenos 11bitových slov. Mimo start a stop bitu je datové slovo doplněno devátým bitem TB8 z registru SCON sloužícím jako paritní bit. Při příjmu se zapíše do RB 8. Rychlost přenosu se volí ze dvou pevných rychlostí a lze nastavit 1/32 nebo 1/64 frekvence oscilátoru bitem SMOD v registru PCON.
Mód 3 Jediný rozdíl mezi módem 2 a 3 je ve způsobu generování přenosové rychlosti. Ta může být generována přetečením čítače/časovače 1 nebo 2.
Nastavení přenosové rychlosti čítačem/časovačem 1 pro módy mód 0 Přenosová rychlost v 0 je pevná v 0 = f osc /12 mód 2 přenosová rychlost může nabývat dvou hodnot a to v 2 = (2 SMOD /64) x f osc
Nastavení přenosové rychlosti čítačem/časovačem 1 pro módy mód 1 a 3 Přenosová rychlost je dána frekvencí přeplňování registru ve funkci čítače 1 vnějších událostí v 1,3 = (2 SMOD /32) x (přeplnění čítače 1) při funkci časovače 1 bude pro jeho mód 2 platit v 1,3 = (2 SMOD /32) x f osc /((12x256) - TH1)
Multiprocesorová komunikace Jsou-li mikropočítače zapojeny do sítě, pak jedno z jejich možných zapojení odpovídá hvězdicové struktuře MASTER - SLAVE. Master zde rozesílá zprávy podřízeným mikropočítačům. Každý podřízený mikropočítač nastaví mód svého sériového kanálu na 2 nebo 3. Mikropočítač Master uloží do prvého vysílaného slova adresu příjemce a devátý bit nastaví do H.
Vysíláním tohoto slova naplní přijímače všech mikropočítačů. Následkem toho podřízené mikropočítače provedou přerušení od přijímače a každý přijímač pak porovná vlastní přidělenou adresu s adresou příjemce získanou přijatým 8bitovým datovým slovem. Při shodě adres přejde adresovaný podřízený mikropočítač do stavu odebírání přicházejících sériových znaků.
Všechny podřízené mikropočítače pro které zpráva určena není čekají na další přerušení způsobené devátým bitem H. Po ukončení přenosu zprávy musí přejít adresované podřízené mikropočítače zpět tak, aby jejich přijímače mohly žádat o přerušení s příchodem adresového slova.
Paralelní vstup a výstup dat Procesor obsahuje čtyři obousměrné datové brány, které obsahují výstupní vyrovnávací paměť adresovanou jako SFR registr, vstupní hradlo a výstupní budič.
Brána P0 Výstupní budiče těchto bran mohou být připojeny na vnitřní datovou a adresovou sběrnici řídícím signálem CTRL. Z toho důvodu se tyto brány používají pro připojení vnějších pamětí programu a dat. Brána P0 vytváří vnější multiplexovanou adresu a datovou sběrnici, při čemž brána P2 generuje horní část adresové sběrnice (jedná se časové sdílení sběrnice mezi nižšími řády adresy a daty, přičemž má každá část jiný směr toku.
S výjimkou režimu budiče datové brány má definované úrovně H i L. Ve výše uvedeném případě nemá definovanou úroveň H a pracuje jako budič s otevřeným kolektorem, ke kterému je třeba dodat odpory připojené na +5V.
Brána P2 Brána P2 generuje horní část adresové sběrnice. Výstupní budič P2 kolektorové rezistory již obsahuje.
Brána P3 Jedná se o datovou bránu či alternativní funkce odpovídající vývodům. Je-li do vnitřního klopného obvodu vývodu přepsána úroveň H, pak se v SFR registru P3 mění výstup dle tabulky.
Rozložení řídících bitů na bráně 3
Brána P1 Je určena výhradně pro práci s datovým slovem. Jen u procesoru 8032 a 8052 jsou její 2 bity P1.0 a P1.1 využity k ovládání čítače/časovače 2.
Krokování programu U těchto obvodů nelze normálně provádět krokování jako u starších typů procesorů Nejjednodušší je využít vstup externí žádosti o přerušení INT0 z toho důvodu, že má nejvyšší prioritu. Využívá se zde toho, že přerušení stejné úrovně nemůže přerušit ošetření stejného přerušení do té doby, dokud se neprovede instrukce RETI následovaná alespoň jednou instrukcí.
Způsob krokování programu
Způsob krokování programu dle výše uvedeného obrázku je následující. Po přivedení signálu L na vývod P3.2 přejde procesor do obslužného programu vnějšího přerušení a zůstane v tomto stavu do té doby, dokud se na vývodu neobjeví impuls.Poté se provede instrukce RETI a přejde zpět do zkoumaného programu, kdy se provede jedna instrukce a znovu spustí obslužný program vnějšího přerušení 0, který pak čeká na další impuls na špičce.
Režim sníženého příkonu V aplikacích, kde je třeba úspory energie se mohou procesory jako verze CHMOS tak i výjimečně verze HMOS provozovat v režimu se sníženým příkonem.
Procesory verze HMOS Do režimu sníženého příkonu lze přejít generováním signálu RST s úrovní alespoň 2,4 V. Poté po uplynutí cca 2 strojových cyklů lze odpojit napájení U CC. Toto napětí (na RST) pak stačí pro udržení obsahu vnitřní paměti dat. Protože bychom ale přišli o obsah SFR registrů, musíme nejprve uložit jejich obsah do vnitřní paměti dat a poté provést celou operaci. Ukončení tohoto stavu se provede opětným připojením napájení U CC a po nasazení oscilátoru lze odpojit signál z RST.
Procesory verze CHMOS Mohou využít snížení příkonu dvěma způsoby při čemž se oba liší rozsahem chráněné oblasti v procesoru. Jsou to : čekání (Idle mode) se sníženým napájením (Power Down) Pomocné napájení je na špičce U CC. V režimu čekání (IDL = H) běží dále oscilátor časující bloky přerušení, sériové brány a časovačů. Hodinový signál pro CPU je zablokován. V režimu sníženého napájení (PD = H) se oscilátor zastaví. Režimy se nastavují a spouštějí pomocí registru PCON.
Registr PCON
Inicializace Inicializace nebo též okamžité přerušení aktivity procesoru a počáteční nastavení procesoru se provádí signálem RESET (nulování). To se děje na vývodu procesoru RST, která je vstupem Schmittova klopného obvodu.
Nulování se provádí tak, že nejméně po dva strojní cykly (24 period oscilátoru) držíme úroveň H. Pokud tento stav trvá déle, opakují se 2cyklové inicializační sekvence až do okamžiku, kdy RST = L. Po skončení nulování jsou obsahy vnitřních registrů nastaveny dle tabulky. Při zapnutí mikropočítače se provádí automatické nulování dle obrázku.
Nastavení obsahu registrů po funkci RESET
Procesor programování Procesor 8751 má 4 kB vnitřní paměti EPROM, kterou je možno naprogramovat a opět vymazat UV zářením. Naprogramování se provede v zapojení dle obrázků. V režimu programování musí být frekvence hodin MHz.
Naprogramování dat Adresa programovaného bytu je přivedena na port P1 a spodní část portu P2. Při programování jsou části brány (P2.4 - P2.6) včetně vstupu PSEN na úrovni L a P2.7 včetně vstupu RST na úrovni H. Datové slovo musí být na portu P0. Vstupní signál EA/VPP se v okamžiku programování
mění z +5 V na + 21 V. Uvnitř tohoto intervalu (trvání napětí + 21 V) je generován na vstupu ALE/PROG vlastní programovací impuls do L s délkou 50 ms. Hrozí zde však nebezpečí zničení procesoru při překročení hodnoty napětí 21,5 V !
Kontrola naprogramovaných dat Pokud není naprogramován ochranný bit, lze snadno přečíst obsah vnitřní paměti EPROM. Zapojení je pak shodné se zapojením pro programování s malými změnami a to na vstupech ALE/PROG a EA/VPP, které jsou připojeny na úroveň H a na portu P2.7 kam je přiveden signál READ.
To z toho důvodu, aby se uvolnil výstup brány P0. Datová sběrnice na portu P0 však vyžaduje připojení odporů na +5 V (to je zajištění úrovně v H).
Naprogramování zabezpečovacího bitu Pokud je nutno ochránit obsah paměti programu před okopírováním, pak lze naprogramováním ochranného bitu zabránit v přístupu k vnitřní paměti. K paměti se pak nelze žádným způsobem dostat a lze ji již jen vymazat UV zářením !
K tomu stačí na P2.4 a P2.5 přivést signál L a na P2.6 a P2.7 signál H. Následně se změní na vstupu EA/VPP napětí z +5 V na +21 V a poté generuje signál L na vstupu ALE/PROG o délce 50 ms.