Historie osmibitových mikroprocesoru a mikroradicu ZILOG.



Podobné dokumenty



PROCESOR. Typy procesorů

Microchip. PICmicro Microcontrollers

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Mikroprocesory Z8Encore! firmy ZiLOG

Architektura počítače

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

1. Programování PLC. Programovatelné automaty II - 1 -

MIKROPOČÍTAČOVÉ SYSTÉMY

Zkouška z předmětu Počítačové systémy

Způsoby realizace paměťových prvků

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Alfanumerické displeje

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Operační paměti počítačů PC

Paměti a jejich organizace

Metody připojování periferií BI-MPP Přednáška 2

Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Obvody a architektura počítačů. Jednoprocesorové počítače

MSP 430F1611. Jiří Kašpar. Charakteristika

Přerušovací systém s prioritním řetězem

Technické prostředky počítačové techniky

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

Informační a komunikační technologie


Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

A0M38SPP - Signálové procesory v praxi - přednáška 10 2

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

Systém řízení sběrnice

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

CHARAKTERISTIKY MODELŮ PC

Rozšiřující modul s protokolem MODBUS

PROGRAMÁTOR "WinProg-1" Návod k obsluze

Uživatelský návod. PRESET - COUNTER 302 Elektronický čítač se dvěma předvolbami

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Maturitní témata - PRT 4M

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

Procesor z pohledu programátora

PROTOKOL O LABORATORNÍM CVIČENÍ

MCP BIOS řídicí jednotky Kit386EXR

Architektury CISC a RISC, uplatnění v personálních počítačích

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností, budoucností a hlavními parametry.

ŘÍDÍCÍ ČLEN GCD 411. univerzální procesorový člen pro mikropočítačové systémy. charakteristika. technické údaje

24 bitový AD USB modul AD24USB. Návod k použití

Grafické adaptéry a monitory

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1


Generátor pulsů GP1v2. Stavební návod.

Rozhraní mikrořadiče, SPI, IIC bus,..

Počítače Didaktik. Jan Lorenz. Semestrální projekt z X31SCS

Zvyšování kvality výuky technických oborů

Typ Napětí Hmotnost kg

Ne vždy je sběrnice obousměrná

ZDROJE MĚŘÍCÍHO SIGNÁLU MĚŘÍCÍ GENERÁTORY

Úvod do architektur personálních počítačů

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.


Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Periferní operace využívající přerušení

LOGIC. Stavebnice PROMOS Line 2. Technický manuál


Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

) informace o stavu řízené veličiny (předávaná řídícímu systému) - nahrazování člověka při řízení Příklad řízení CNC obráběcího stroje

uz80 Embedded Board ver. 1.0 uz80 Vestavná Řídící Deska ver. 1.0

4.2 Paměti PROM NiCr. NiCr. Obr.140 Proudy v naprogramovaném stavu buňky. Obr.141 Princip PROM. ADRESOVÝ DEKODÉR n / 1 z 2 n

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.

Univerzální modulový stmívac 1400 VA e

PAMĚTI ROM, RAM, EPROM, EEPROM

Univerzální jednočipový modul pro řízení krokových motorů

RE8USB modul s 8 vstupy a 8 výstupy ovládaný z USB

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Periferní operace využívající přerušení

HW počítače co se nalézá uvnitř počítačové skříně

Obsah. Zobrazovací a ovládací prvky na čelním panelu. Účel použití. Elektrické zapojení. Obr : Analogový vstupní modul 07 AI 91

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

L A B O R A T O R N Í C V I Č E N Í

Principy činnosti sběrnic

Komunikace procesoru s okolím

ORGANIZACE A REALIZACE OPERAČNÍ PAMĚTI

XXXIII Celostátní olympiáda znalostí elektriky a elektroniky Krosno 25. března 2010 TEST PRO ELEKTRONICKOU SKUPINU

GEN 230-3u-3i-X-ADE-USB

Konfigurace portů u mikrokontrolérů

Procesor. Procesor FPU ALU. Řadič mikrokód

Integrovaná střední škola, Sokolnice 496

POKLADNÍ DISPLEJ LCD. hotline: strana 1

Periferní operace využívající přerušení

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Strojový kód. Instrukce počítače

Zemní ochrana rotoru generátoru ve spojení proudové injektážní jednotky PIZ 50V a ochrany REJ 521

Mikrořadiče řady 8051.

Úloha- Systém sběru dat, A4B38NVS, ČVUT - FEL,

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

Transkript:

Historie osmibitových mikroprocesoru a mikroradicu ZILOG. Americká firma ZILOG vstoupila na trh mikroprocesoru v roce 1973. V dobe, kdy svet dobývaly obvody Intel 8080, se objevil obvod s typovým oznacením Z80. Osmibitový mikroprocesor s odlišnou architekturou, zalozenou na sade univerzálních registru, které mohly slouzit pro jakoukoliv funkci, tedy i jako stradac. Architektura umoznovala pruznejší prístup k registrum, optimální vyuzití instrukcí a tím i rychlejší chod programu nez u procesoru jiných výrobcu pri stejném hodinovém kmitoctu. Ješte dríve, nez IBM dala svetu osobní pocítace, museli se spokojit první pocítacoví nadšenci s címsi, co je dnes mozno srovnávat s PC jen velmi stezí. Dodnes však jméno Sinclair predstavuje pojem. A Sinclair obsahoval mikroprocesor Z80 CPU! Postupem casu byl mikroprocesor Z80 CPU (Central Processor Unit) následován obvody Z80 CTC (Counter-Timer Circuit), Z80 PIO (Parallel Input/Output), Z80 SIO (Serial Input/Output), Z80 DMA (Direct Memory Access) a dalšími. S rozvojem technologie se jednak menila struktura obvodu od TTL pres NMOS az po CMOS, jednak se zvetšovala hustota integrace a v jednom pouzdre se slucovalo stále více obvodu drívejší stavebnice. Na konci vývoje stál obvod Z80 IPC (Intelligent Peripheral Controller), který obsahoval nejen procesor, ale paralelní i sériové vstupne/výstupní obvody (Porty), oscilátor, cítace. Tedy podle dnes zavedené terminologie - mikroradic. Obvody rady Z80, prestoze dnes jiz typování obvodu smazalo príslušnost k rade Z80 (napr. Z84C0010PEC je novodobý CMOS procesor Z80), tvorí znacný podíl na svetové produkci mikroprocesoru. Az na výjimky, obvody rady Z80 nikdy neobsahovaly zádnou pamet krome základní registrové výbavy. Ani soucasní pokracovatelé rady, obvody Z180 a šestnáctibitový Z380 nemají na cipu pamet. To je v tvrdé konkurenci nevýhoda. Musel se objevit nový obvod. Obvody rady Z8 jsou 8 bitové CMOS mikroradice. Vycházejí z principu univerzální sady registru, na cipu je však techto registru pro všeobecné pouzití (General Purpose Register) az 256, takze uz je mozno hovorit o pameti RAM. Navíc cip obsahuje i pamet pro ulození programu v provedení PROM ( pouzívá se zkratka OTP - One Time Programmable ) a to nejméne 512 Bytu ale také az 32 KBytu. Dále cip obsahuje dva 14 bitové cítace, dva analogové komparátory, oscilátor a nejméne 14 vstupu / výstupu. Cip dále obsahuje Watch Dog Timer (preklad tohoto termínu do ceštiny se stále nedarí ), Power On Reset (ceský termín nulování pri zapnutí napájení je mozný, ale anglický je lepší) a další obvody. Všechny obvody rady Z8 mají jeden shodný instrukcní soubor. Mnemonicky pripomíná instrukcní soubor Z80, funkcne je však jiný. Presto prechod od programování obvodu Z80 k rade Z8 je snadný. Pro efektivní programování je k dispozici assembler, pro podporu vývoje je pouzíván hardwarový emulátor rízený osobním pocítacem. Rada Z8 v roce 1998 obsahuje více jak stovku jednotlivých typu, lišících se velikostí pameti, poctem vstupu a výstupu, rychlostí, dovolenou pracovní teplotou, pouzdry pro klasickou i povrchovou montáz. Speciální obvody obsahují i AD a DA prevodníky, sériový komunikacní kanál (UART), jádro Z8 tvorí základ mnoha jednoúcelových obvodu pro rízení klávesnic osobních pocítacu nebo obvodu pro infracervené dálkové ovládání. Tato ucebnice nemuze a ani nechce popsat funkci všech obvodu rady Z8. Chce pouze na nekolika málo obvodech vysvetlit vlastnosti spolecné celé rade Z8. Ucebnice popisuje architekturu rady Z8, instrukcní soubor, práci s assemblerem a emulátorem. S pomocí ucebnice je tedy mozno navrhnout aplikaci s nejrozšírenejšími obvody rady Z8 a postup pak uplatnit, po akceptování konkrétních parametru, na kterýkoliv obvod rady Z8. Text ucebnice predpokládá, ze ctenár je seznámen s obecnou teorií mikroprocesoru a mikroradicu a ovládá pouzívanou terminologii. Autor se omlouvá za castejší pouzívání originálních anglických termínu všude tam, kde se jejich pouzívání vzilo, kde ceský preklad je méne výstizný nebo smešný a predevším tam, kde je to nutné (procesor bude vzdy rozumet pouze instrukci DJNZ - Decrement and Jump if Non Zero a nikoliv ZSNN - Zmenši o jednu a Skákej kdyz Není Nula).

Obsah. 1. Všeobecné parametry mikroradicu Z8. 3 1.1. Mikroradice typu Z86 E30, Z86 E31, Z86 E33, Z86 733 3 1.2. Mikroradice typu Z86 E02, Z86 E04, Z86 E08 4 1.3. Elektrické parametry mikroradicu Z8. 5 2. Adresní prostor mikroradicu Z8. 6 2.1. Pamet RAM. 6 2.1.1.Standardní sada registru. 7 2.1.2. Rozšírená sada registru, banka F. 7 2.2. Pamet PROM. 8 2.3. Zásobník (Stack). 8 2.4. Rídící registry pro prístup do pameti. 9 2.5. Registry, jejich adresy a identifikátory. 10 3. Oscilátor mikroradicu Z8. 11 4. RESET mikroradicu Z8. 12 4.1. Definovaný stav rídících registru a portu. 12 4.2. RESET pri zapnutí napájení (POR - Power On Reset). 12 4.3. WDTMR - Watch Dog Timer. 13 5. Vstupní / výstupní porty. 14 5.1. Port 0. 15 5.2. Port 2. 16 5.3. Port 3. 17 5.4. Analogové komparátory. 18 5.5. Rezim snízeného vyzarování rušivých napetí. 18 6. Cítace, casovace. 19 6.1. Rízení cítacu. 20 6.2. Výstupní módy cítacu (pouze u typu Z86E30/31/33/733). 21 6.3. Vstupní módy cítace T1. 21 6.3.1. Pocítání vnejších impulsu. 21 6.3.2. Hradlování vnitrního signálu SCLK vnejšími impulsy. 21 6.3.3. Monostabilní rezim jednorázový. 22 6.3.4. Monostabilní rezim opakovatelný. 22 6.3.5. Zapojení cítacu T0 a T1 do kaskády. 22 6.3.6. Nastavení cítacu po signálu RESET. 22 7. Prerušení. 23 7.1. Zdroje prerušení. 24 7.2. Priorita prerušení. 24 7.3. Maskování prerušení. 24 7.4. Programové prerušení. 25 7.5. Vektorové prerušení. 25 7.6. Prerušení na dotaz. 25 8. Úsporné rezimy. 26 8.1. Rezim HALT. 26 8.2. Rezim STOP. 26 8.2.1. Ukoncení rezimu STOP signálem Power On Reset. 26 8.2.2. Ukoncení rezimu STOP casovacem WDT. 26 8.2.3. Ukoncení rezimu STOP signálem z urceného zdroje. 27 9. Registr volitelných funkcí. 28 10. Programování mikroradicu Z8. 29 10.1. Príznak výsledku operace. 29 10.2. Notace pouzívaná pro popis instrukcí. 30 10.3. Ctyrbitová adresa na míste osmibitové adresy. 30 10.4. Instrukcní soubor Z8. 31

- 1-11. ZMASM - Zilog Macro Cross Assembler. 46 11.1. Instalace ZDS vcetne ZMASM. 46 11.2. Struktura ZMASM. 47 11.3. Formát zdrojového textu pro ZMASM. 48 11.3.1. Príkazový rádek 48 11.3.2. Pole náveští (label). 48 11.3.3. Pole instrukce. 49 11.3.4. Pole operandu. 49 11.3.5. Pole komentáre. 49 11.3.6. Konstanty. 49 11.3.7. Symboly. 50 11.3.8. Operátory. 50 11.3.9. Výrazy. 50 11.4. Direktivy assembleru. 51 12. Vývojové prostredí ZiLOG. 53 12.1. Sestava vývojového prostredí pro mikroradice Z8. 53 12.1.1. Napájecí zdroj. 53 12.1.2. Propojení emulátoru s osobním pocítacem. 53 12.1.3. Prizpusobení emulátoru pro pozadovaný typ mikroradice. 53 12.1.4. Prizpusobení emulátoru k umístení krystalu oscilátoru. 54 12.1.5. Prizpusobení emulátoru ke zpusobu napájení aplikace. 54 12.1.6. Pripojení emulátoru k aplikaci. 54 12.2. Spuštení emulátoru. 55 12.2.1. Instalace GUI. 55 12.2.2. Spuštení GUI. 55 12.3. Konfigurace emulátoru pro pozadovaný typ mikroradice. 56 12.4. Spuštení programu na emulátoru. 56 12.4.1. Vlození programu do pameti emulátoru. 56 12.4.2. Zobrazení souboru v pameti emulátoru. 57 12.4.3. Zobrazení obsahu registru emulovaného mikroradice. 58 12.4.4. Ladení programu. 58 12.4.5. Ulození rozpracovaného programu. 60 12.4.6. Ulození obsahu pameti emulátoru. 61 12.5. Programování OTP verzí mikroradicu. 62 13. Zilog Developer Studio ZDS 1.00 s assemblerem ZMASM. 63 13.1. Instalace ZDS 1.00. 63 13.2. Spuštení ZDS. 63 13.3. Otevrení projektu. 63 13.4. Sestavení projektu. 64 13.5. Konfigurace assembleru pro projekt. 64 13.6. Konfigurace linkeru pro projekt. 65 13.7. Vytvorení spustitelného souboru.ld 65 13.8. Vyuzití chybového hlášení pri oprave zdrojového textu. 66 13.9. Ulození a otevrení rozpracovaného projektu. 66

- 2-1. Všeobecné parametry mikroradicu Z8. 1.1. Mikroradice typu Z86 E30, Z86 E31, Z86 E33, Z86 733 Technické parametry: typ obvodu Z86E31 Z86E30 Z86E33 Z86 733 velikost RAM (B) 125 237 237 237 velikost ROM (kb) 2 4 4 8 pocet I / O 24 24 24 24 cítace 2 2 2 2 komparátory 2 2 2 2 prerušení 6 6 6 6 max. kmitocet (MHz) 16 16 12 12 Icc, rezim RUN (ma) 7 7 15 15

- 3-1.2. Mikroradice typu Z86 E02, Z86 E04, Z86 E08 Technické parametry: typ obvodu Z86E02 Z86E04 Z86E08 velikost RAM (B) 61 125 125 velikost ROM (kb) 0.5 1 2 pocet I / O 14 14 14 cítace 1 2 2 komparátory 2 2 2 prerušení 5 6 6 max. kmitocet (MHz) 8 12 12 Icc, rezim RUN (ma) 3.8 6.8 6.8

- 4-1.3. Elektrické parametry mikroradicu Z8. Napájecí napetí Ucc 5 ± 0.5 V Pracovní teplota Standard 0 az +70 o C Extended - 40 az + 105 o C Maximální napetí pinu proti GND - 0.6 az +7 V Maximální ztrátový výkon celého obvodu *1 0.46 / 1.65 / 1.21 W Maximální proud do vstupu ± 600 µa Maximální proud z výstupu / otevrený kolektor ± 600 µa Maximální proud kazdého I / O pinu 20 ma Maximální soucet proudu všech I / O kazdého portu 60 ma Vstupní napetí, úroven H > 2.8 V Vstupní napetí, úroven L < 1.5 V Výstupní napetí, úroven H > 4.8 V Výstupní napetí, úroven L < 0.4 V Napájecí proud v rezimu RUN Icc *1 3.8 / 7 / 15 ma Napájecí proud v rezimu HALT Icc1 *1 2.5 / 2.5 / 3.7 ma Napájecí proud v rezimu STOP Icc2 *1 1 / 1 / 3 µa Perioda hodinových impulsu TpC *2 125 / 83 / 62 az DC ns Doba nástupné / sestupné hrany hodinových impulsu < 15 ns Doba nástupné /sestupné hrany vstup. impulsu cítacu < 100 ns Doba nábehu napájecího napetí pro Power On Reset 12 az 100 ms Poznámky: *1 Tri údaje platné zleva pro typy Z86E 02 / 04 + 08 / 30 + 31 + 33 *2 Tri údaje platné zleva pro kmitocty 8 / 12 / 16 MHz Elektrické parametry jsou v zanedbatelné míre zjednodušeny, aby jejich výcet byl strucný a prehledný. Dodrzením uvedených hodnot nebude zádný z obvodu ohrozen. Typové znacení obvodu Zilog.

- 5-2. Adresní prostor mikroradicu Z8. Mikroradice Z8 mohou vytváret adresy pro prístup do ctyr adresních prostoru: Standardní sada registru. Obsahuje rídící registry, registry vstupne/ výstupních portu a registry pro všeobecné pouzití (GPR - General-Purpose Register). Muze obsahovat az 256 registru RAM. Rozšírená sada registru. Obsahuje rídící registry pro nadstandardní funkce. Obvody 30/31/33/733 mají 3 registry RAM rozšírené sady F, obvody 02/04/08 rozšírenou sadu nemají vubec. Pamet pro program. Cip obsahuje nejméne 512B a nejvíce 32KB pameti PROM (také je pouzívána zkratka OTP - One Time Programmable) nebo ROM. Do této pameti je ukládán program a datové konstanty. Vnejší pamet. Mikroradice Z8 mají 16-bitový cítac programu (PC-Program Counter) a mohou tedy adresovat az 64kB pameti. Cip obsahuje nejvýše 32kB, obvykle jen 2 nebo 4 kb. Pamet nad tuto velikost muze být pripojena jako vnejší pamet RAM nebo ROM a mohou do ní být ulozeny jak program tak data. Vnejší pamet mohou adresovat pouze obvody, které mají plne vybavené Porty 0 a 1. Obvody v této ucebnici vnejší pamet adresovat nemohou. 2.1. Pamet RAM. Nejvetší pamet RAM, kterou by mohl cip obvodu Z8 obsahovat, je slozena ze Standardní sady registru a Rozšírené sady registru. Standardní sada registru (nebo její cást) je na cipu obsazena vzdy (ale v ruzné velikosti). Rozšírená sada registru muze obsahovat specializované registry a je implementována jen u nekterých typu mikroradicu. Mikroradice typu Z86E02 / 04 / 08 nemají zádné registry rozšírené sady, typy Z86E30 / 31/ 33 / 733 mají implementovány nekteré registry Banky F.

- 6-2.1.1. Standardní sada registru. Sada je delena do 16 skupin po 16 registrech. Pro kazdou ze 16 skupin se pouzívá název Pracovní skupina (Working Register Group). Cip obvodu rady Z8 obsahuje vzdy alespon Pracovní skupiny 0 az 3 (tj. 64 registru) a Pracovní skupinu F, kde jsou umísteny rídící registry. Pracovní skupiny 1 az E obsahují pouze registry pro všeobecné pouzití (GPR - General Purpose Register) a jejich poctem je pro jednotlivé typy urcena velikost pameti RAM. Registry oznacené WO (Write Only) jsou urceny jen pro zápis, jejich ctení dává výsledek FF. 2.1.2. Rozšírená sada registru, banka F. Banky 1 az F, které tvorí rozšírenou sadu registru, jsou na cipu implementovány podle speciálních funkcí, kterými je konkrétní typ mikroradice vybaven Typy Z86E02 / 04 / 08 neobsahují zádné registry rozšírené sady. Typy Z86E30 / 31 / 733 obsahují banku F rozšírené sady.

- 7-2.2. Pamet PROM. 16-bitový cítac programu (PC-Program Counter) muze adresovat az 64kB pameti. Obvody rady Z8 obsahují nejméne 512 B pameti typu PROM, pro kterou je uzíván název OTP (One Time Programmable). Prvních 12 adres 0000H az 000BH je rezervováno pro ulození šesti dvoubytových vektoru prerušení, první instrukce programu musí být ulozena na adrese 000CH. Pri behu programu je po kazdé instrukci zvýšen obsah PC (Program Counter). Pri chybne sestaveném programu muze obsah PC presáhnout nejvyšší adresu pameti. Program poté pokracuje výkonem instrukcí NOP (No Operation) az do vynulování obsahu PC. Pak je ovšem obsah adresy 0000H povazován za instrukci, coz zpusobí zhroucení programu. 2.3. Zásobník (Stack). Zásobník je pamet LIFO (Last In - First Out) kterou program automaticky pouzívá pro ukládání návratových adres pri volání podprogramu (instrukce CALL), návratových adres a obsahu registru príznaku (FLAGS) pri prerušení. Do zásobníku také mohou být ulozena jakákoliv data (instrukce PUSH) a ze zásobníku zase vyzvednuta (instrukce POP). Zásobník muze pouzívat pouze registry GPR. Dno zásobníku je obvykle umísteno na nejvyšší implementovanou adresu GPR. Napr. U Z86E02 je to adresa 3FH, u Z86E30 je to adresa EFH. Zásobník je zalozen definováním obsahu registru SPL (Stack Pointer).

Instrukce CALL a PUSH nejprve snízí (dekrementuje) obsah registru SPL, poté ulozí urcená data na adresu, kterou SPL obsahuje (na kterou SPL "ukazuje"). Instrukce RET, IRET a POP nejprve data ze zásobníku vyzvednou a poté zvýší (inkrementují) obsah SPL. Pri chodu programu tedy zásobník "roste" od definovaného dna smerem k nizším adresám a "ubývá" smerem k vyšším. Registr SPL stále "ukazuje" na "vrchol" zásobníku. Nesprávné definování dna zásobníku a predevším nesprávné pouzívání instrukcí PUSH a POP muze zpusobit prepsání dat nebo stavových registru zásobníkem nebo registr SPL muze obsahovat neexistující adresu. Tím vzdy dojde ke zhroucení programu. Proti temto situacím nejsou mikroradice nijak chráneny a správné pouzívání zásobníku musí zajistit programátor. Zásobník muze být umísten i do vnejší pameti, ukazatel zásobníku je pak tvoren dvojicí registru SPL a SPH. Obvody v této ucebnici nemohou pouzívat vnejší pamet a tedy nemohou pouzívat ani vnejší zásobník. Obsah registru SPH (adresa FEH) je proto ignorován, registr SPH muze být pouzit jako GPR. - 8-2.4. Rídící registry pro prístup do pameti. Registr SPL DEC HEX Název Popis 255 FF SPL Stack Pointer Low Byte Ukazatel zásobníku, nizší byte Registr obsahuje pri chodu programu vzdy adresu vrcholu zásobníku. Na zacátku programu, který zásobník pouzívá, musí být SPL nastaven na adresu, která pak tvorí dno zásobníku. Obsah registru je menen instrukcemi CALL, PUSH, POP, RET, IRET a pri prerušení (Interrupt). Po signálu RESET není obsah registru SPL definován. Registr SPH DEC HEX Název Popis 254 FE SPH Stack Pointer High Byte Ukazatel zásobníku, vyšší byte Pri umístení zásobníku do vnejší pameti registr SPH obsahuje vyšší byte ukazatele zásobníku. Pri vnitrním zásobníku je SPH ignorován. Obvody v této ucebnici nemohou SPH vyuzít. Registr RP DEC HEX Název Popis 253 FD RP Register Pointer Ukazatel banky a pracovních registru Registr obsahuje adresu Banky - bity D3 az D0 a adresu Pracovní skupiny (Working Group) - bity D7 az D4. Obsah registru je mozno nastavit instrukcí SRP (Set Register Pointer).

Po signálu RESET je obsah registru 00H, registr adresuje Standardní sadu, pracovní skupinu 0. - 9-2.5. Registry, jejich adresy a identifikátory. Kazdý z registru standardní a rozšírené sady je jednoznacne identifikovatelný 12 bitovou absolutní adresou. Všechny rídící registry mají pridelen identifikátor (8 bitová adresa) 000H P0 Registr standardní sady, Port 0 0FDH RP Registr standardní sady, Registr Pointer F0FH WDTMR Registr rozšírené sady F, Watch Dog Timer Registr 045H - Registr standardní sady, GPR, pracovní skupina 4 Registry pro všeobecné pouzití (GPR) nemají absolutní identifikátor, uvnitr pracovní skupiny mají prideleny relativní identifikátory R0 az R15 (ctyrbitová adresa). Instrukcní soubor Z8 pouzívá 8 bitové nebo 4 bitové adresy. Osmibitová adresa je doplnena bity D3-D0 registru RP, ctyrbitová adresa je doplnena obsahem celého RP registru. Bity D7-D4 adresují vzdy pracovní skupinu. Bity D3-D0 urcí, která banka rozšírené sady nahradí banku 0 standardní sady.

- 10-3. Oscilátor mikroradicu Z8. Všechny mikroradice obsahují Piercuv oscilátor, který je pouzíván jako zdroj hodinových impulsu pro casování všech obvodu na cipu. Výhodou tohoto rešení je nízká cena, vysoká úroven výstupního signálu, malé zatezování krystalu, stabilita kmitoctu se zmenou napájecího napetí i teploty. Výstupní kmitocet oscilátoru CLK (Clock) je tvarován a soucasne delen dvema na signál SCLK (System Clock), coz je kmitocet pro casování procesoru. Delicku dvema je mozno vyradit nastavením bitu D1 registru SMR (F0BH) na hodnotu 1. Obsah harmonických kmitoctu v signálu SCLK a tím vyzarování procesoru se snízí na cca 25%. Kmitocet oscilátoru pak muze být maximálne 4MHz. Pin X1 je vstupem oscilátoru, pin X2 je výstupem. Z pinu X2 muze být signál CLK vyveden pro synchronizaci jiného obvodu (mikroprocesoru). Mikroprocesor Z8 muze pracovat s kmitoctem casování od 0 Hz do maximálního kmitoctu podle typu obvodu.

Oscilátor je nutno navrhnout tak, aby vodice, spojující krystal, kondenzátory C1 a C2 a piny X1 a X2 byly tak krátké a široké jak jen je mozné. Soucástky musí být umísteny co nejblíze k k pinum X1 a X2 oscilátoru. Pin X1 je pouzíván také jako programovací pin nebo pin pro vstup do speciálního testovacího rezimu. Pro tyto funkce je na pin X1 privádeno napetí o cca 2V vyšší nez je napájecí napetí Ucc. Pin X1 proto není chránen uvnitr pouzdra diodou, pripojenou na pin Ucc a je proto náchylný na vnejší rušivé signály. V prostredí s vysokou úrovní rušivých signálu je doporuceno pripojit vnejší diodu mezi pin X1 a Ucc. Tato dioda nemá zádný vliv na funkci oscilátoru. Obvody Z86C30/31/33/733 a Z86E02...1925 mohou být naprogramovány tak, ze oscilátor je rízen RC obvodem. Výhodou RC oscilátoru je nízká cena, nevýhodou je horší stabilita kmitoctu. RC oscilátor je vhodný pro levné a nenárocné aplikace. 4. RESET mikroradicu Z8. - 11-4.1. Definovaný stav rídících registru a portu. Po pripojení napájecího napetí (funkce POR - Power On Reset), a po aktivaci obvodu WDT v rezimu RUN a rezimu HALT je generován signál RESET, který nastaví rídící registry a porty mikroradice do definovaného stavu. Soucasne je nastaven obsah PC (Program Counter) na hodnotu 000CH. Obvody popisované v této ucebnici nemají RESET pin a nemohou být nastaveny do výchozího stavu vnejším signálem. Obsah rídících registru po signálu RESET. Adresa Ident. D7 D6 D5 D4 D3 D2 D1 D0 0FF SPL U U U U U U U U 0FE SPH U U U U U U U U 0FD RP 0 0 0 0 0 0 0 0 0FC FLAGS U U U U U U U U 0FB IMR 0 U U U U U U U prerušení zakázáno 0FA IRQ 0 0 0 0 0 0 0 0 všechny pozadavky na prerušení vynulovány 0F9 IPR U U U U U U U U 0F8 P01M 0 1 0 0 1 1 0 1 vnitrní zásobník, P0 všech osm vstupu 0F7 P3M 0 0 0 0 0 0 0 0 P3 vstupy digitální, P2 výstupy otevrený kolektor 0F6 P2M 1 1 1 1 1 1 1 1 P2 všech osm vstupu 0F5 PRE0 U U U U U U U 0 T0 jednorázový rezim 0F4 T0 U U U U U U U U 0F3 PRE1 U U U U U U 0 0 T1 jednorázový rezim, vnejší vstup

0F2 T1 U U U U U U U U 0F1 TMR 0 0 0 0 0 0 0 0 citace zastaveny 0F0 SIO U U U U U U U U 003 P3 1 1 1 1 U U U U digitální rezim 002 P2 U U U U U U U U všech osm vstupu, výstupy (po nastavení) otevr. kolektory 001 P1 U U U U U U U U 000 P0 U U U U U U U U všech osm vstupu, výstupy (po nastavení) push-pull GPR U U U U U U U U F0F WDTMRU U U 0 1 1 0 1 WDT cca 10ms, WDT povolen ve STOP a HALT F0B SMR 0 0 1 0 0 0 0 0 SCLK=CLK / 2 F00 PCON 1 1 1 1 1 1 1 0 P0 výstupy push-pull, P3 výstupy digitální 1 - bit nastaven na 1 0 - bit nastaven na 0 U - nedefinovaná hodnota 4.2. RESET pri zapnutí napájení (POR - Power On Reset). Mikroradice Z8 obsahují komparátor, který sleduje úroven napájecího napetí Ucc. Pokud je napetí Ucc menší nez cca 2.7 V, je aktivován obvod POR. Pokud se napetí Ucc zvýší na úroven zajištující spolehlivou funkci mikroradice, je generován signál RESET. Signál RESET je synchronizován s casováním procesoru a je zpozden o cca 10 ms + 18 TpC pro stabilizaci podmínek pro chod procesoru po ustálení napájecího napetí. Po signálu RESET jsou všechny rídící registry a porty nastaveny na definovaný obsah (cl.4.1.), cítac programu je nastaven na hodnotu 000CH. Obvod POR je aktivován i pri chodu mikroradice, pokud napájecí napetí Ucc poklesne pod úroven cca 2.7 V a to i na dobu nekolika ns. Proti nezádoucí aktivaci POR je vhodné pripojit filtracní kondenzátory na napájecí napetí co nejblíze pouzdru mikroradice. - 12-4.3. WDTMR - Watch Dog Timer. Watch Dog je cítac, který pri nacítání predvolené hodnoty generuje signál RESET. Je-li WDT v chodu v rezimu RUN nebo HALT, má RESET dusledky jako POR, tedy nastavuje rídící registry a cítac programu. Po signálu RESET není WDT v chodu, do cinnosti je uveden první instrukcí WDT v programu. Kazdá další instrukce WDT nastaví casovac do výchozího stavu. Je-li casovac WDT spušten, není mozno ho z funkce vyradit. Nedosáhne-li program další instrukce WDT vcas, je generován RESET. Tím je zabráneno bloudení programu v dusledku poruchových stavu. Programátor musí umístit instrukce WDT do vhodných míst programu, aby dosáhl pozadované funkce. Casovac WDT je rízen vlastním RC oscilátorem na cipu. Obvody Z86E30/31/33/733 mohou volit rízení WDT bud vnitrním RC oscilátorem nebo hodinovým kmitoctem CLK. Délku cítání casovace WDT není mozno menit u obvodu Z86E02/04/08, které nemají registr WDTMR. Doba cítání je závislá na hodnote napájecího napetí a teplote okolí, není závislá na kmitoctu CLK a muze být v mezích cca 10 az 70 ms. Casovac WDT muze být v chodu i v úsporných rezimech HALT a STOP. Obvody, které mají registr WDTMR (Z86E30/31/33/733), mohou volit chod casovace obsahem tohoto registru. Obvody bez registru WDTMR (Z86E02/04/08) mohou programove umoznit chod casovace v rezimu HALT instrukcí WDH. Po této instrukci je casovac spoušten a nastavován instrukcemi WDT. V rezimu STOP muze být chod casovace WDT umoznen naprogramováním tzv. Option registru (clánek 9.). DEC HEX Název Popis Registr WDTMR Write Only

F0F WDTMR Watch Dog Timer Register Registr nastavení WDT Registr WDTMR je prístupný pouze po dobu 60 cyklu po RESET. Poté nemuze být zádným zpusobem menen jeho obsah. Pokud je WDT v cinnosti v rezimu HALT, jeho aktivace má za následek signál RESET a uvedení rídících registru a portu do výchozího stavu. Pokud je pozadován chod casovace v rezimu STOP, musí být jako oscilátor nastaven vnitrní RC oscilátor, protoze signál SCLK je v rezimu STOP odpojen. Aktivace WDT bezícího v rezimu STOP nenastavuje výchozí stavy všech rídících registru. Prehled volby funkcí WDT pro ruzné typy mikroradicu Z8: Z86E02/04/08 Z86E30/31/33/733 oscilátor pro WDT vnitrní RC vnitrní RC nebo SCLK, bit D4 WDTMR délka cítání WDT pevná cca 10ms volitelná, bity D1a D0 WDTMR funkce v HALT povoluje instrukce WDH volitelná, bit D2 WDTMR funkce v STOP Option Register volitelná, bit D3 WDTMR - 13-5. Vstupní / výstupní porty. Mikroradice Z8 mohou mít az 32 vstupu / výstupu, které jsou usporádány do ctyr osmibitových portu. Všechny porty i jejich rídící registry jsou soucástí pameti RAM a jsou prístupné jako kterýkoliv GPR registr, bez speciálních instrukcí. Kazdý z portu P0, P1 a P2 má oddelený vstupní a výstupní registr. Zápis do bitu, které jsou konfigurovány jako vstupy, ukládá data do výstupního registru, odkud nemohou být ctena. Jsou-li bity prekonfigurovány na výstupy, data ulozená ve výstupním registru jsou prenesena na piny a mohou

být ctena. Tento mechanismus dovoluje uzivateli výstupní signály nejdríve nastavit a poté pripojit na výstupní piny. Vstupní signály nepricházejí synchronne s casováním procesoru a jejich ctení by mohlo dávat nestabilní výsledky. Úrovne vstupních signálu jsou proto po dobu dvou hodinových cyklu ulozeny ve vyrovnávací pameti a teprve poté cteny. Kazdý pin portu P0, P1 a P2 je zapojen jako obousmerný CMOS vstup/výstup. Signál /OUT Enable konfiguruje pin jako výstup, signál /Open-Drain uzavírá horní tranzistor a konfiguruje pin jako otevrený kolektor. Všechny piny jsou chráneny dvema diodami proti napetím vyšším nez Ucc a nizším nez GND. Na kazdý pin je zapojen obvod Auto-Latch, který nastaví definované úrovne na pinu v následujících prípadech: - pin, konfigurovaný jako vstup, není pripojen na zádný signál, je "ve vzduchu" - pin, jako vstup, je pripojen na trístavový signál ve vysokoohmovém stavu - pin jako výstup Open - Drain se zapsanou úrovní "1", oba hlavní tranzistory jsou uzavreny Po signálu RESET se úrovne všech pinu nastaví do náhodných stavu, avšak do definovaných úrovní "0" nebo "1". Obvody Auto-Latch jsou standardne aktivní, mohou být globálne vyrazeny naprogramováním Option registru (clánek 9.). - 14-5.1. Port 0. Port 0 je osmibitový CMOS obousmerný I/O Port. Programove muze být nastavena vzdy celá ctverice bitu (P00-P03 a P04-P07) jako vstupy nebo výstupy. Obvody Z86E30/31/33/733 mají implementován kompletní Port 0, obvody Z86E02/04/08 mají pouze tri piny P00, P01 a P02. Port 0 je umísten jako registr standardní sady s adresou 00H, pro jeho konfiguraci slouzí rídící registr P01M s adresou F8H a registr PCON s adresou F00H. Registr P01M Write Only

DEC HEX Název Popis 248 F8 P01M Port 0-1 Mode Registr nastavení módu Portu 0 a 1 Registr PCON Write Only DEC HEX Název Popis F00 PCON Port Configuration Registr konfigurace Portu - 15-5.2. Port 2. Port 2 je osmibitový CMOS obousmerný I/O Port. Programove muze být nastaven kazdý bit jako vstup nebo výstup. Port 2 je umísten jako registr standardní sady s adresou 02H, pro jeho konfiguraci slouzí rídící registr P2M s adresou F6H a registr P3M s adresou F7H. DEC HEX Název Popis Registr P2M Write Only

246 F6 P2M Port 2 Mode Registr nastavení módu Portu 2 Registr P3M Write Only DEC HEX Název Popis 247 F7 P3M Port 3 Mode Registr nastavení módu Portu 3-16 - 5.3. Port 3. Port 3 je osmibitový CMOS I/O Port, který má odlišné zapojení i odlišnou funkci od portu 0 a 2. Piny P30-P33 jsou trvale zapojeny jako vstupy, Piny P34-37 trvale jako výstupy. Výstupy jsou vzdy pouze Push-Pull, vstupy P31-33 nemají obvody Auto-Latch a proti prepetí jsou chráneny pouze diodami proti GND. Typy Z86E02/04/08 mají pouze tri vstupy P31,32,33. Port 3 je umísten jako registr standardní sady s adresou 03H, pro jeho konfiguraci slouzí rídící registr P3M s adresou F7H a registr PCON s adresou F00H. Port P3 slouzí predevším pro prístup k analogovým komparátorum a cítacum a pro vstup signálu od vnejších zdroju prerušení. Pro prehled o všech moznostech Portu 3 je nutno prostudovat kapitoly, popisující zmínené obvody.

Stav "prepínacu" na obrázku je po signálu RESET. Plný význam všech bitu registru P3M je popsán v cl. 5.2. Port 2, registru PCON v clánku 5.1. Port 1 a registru TMR a PRE1 v clánku 6. Cítace, casovace. - 17-5.4. Analogové komparátory. Všechny typy Z8 v této ucebnici mají dva analogové komparátory. Neinvertující vstupy komparátoru jsou pripojeny na piny P31 a P32, oba invertující vstupy jsou propojeny a pripojeny na pin P33. Funkce komparátoru je mozno vyuzívat, jsou-li vstupy P31, P32 a P33 nastaveny do analogového rezimu, tedy po nastavení bitu D1 registru P3M na hodnotu 1. Instrukce LD P3M, #xxxx xx1xb nastaví analogový rezim. (x - libovolná hodnota bitu) Jestlize napetí na vstupu komparátoru (pin P31) je vyšší nez napetí na pinu P33, výstup komparátoru je na úrovni 1. Výstupní úroven komparátoru se zmení na 0, je-li napetí na vstupu P31 menší nez napetí na pinu P33. Nejmenší rozdíl napetí mezi vstupy, na který muze komparátor

definovat výstupní hodnotu, je 10mV. Dovolený rozsah napetí pinu P31,P32 a P33 je od GND-0.3V do Ucc-1.5V. Výstup komparátoru AN1 je zdrojem vnitrního prerušení IRQ2, obdobne výstup komparátoru AN2 je zdrojem prerušení IRQ0. Podrobne viz clánek 7. Prerušení. Výstupy komparátoru mohou být pripojeny na výstupy portu P3. To je mozné pouze u typu, které mají registr PCON, v této ucebnici tedy u typu Z86E30/31/33/733. Je-li bit D0 registru PCON nastaven na hodnotu 1, je výstup komparátoru AN1 pripojen na pin P34, výstup komparátoru AN2 pak na pin P37. Výstupy komparátoru na piny P34, P37 nastaví posloupnost instrukcí LD RP,#0FH ; nastaví Register Pointer na pracovní skupinu 0, rozšírená sada F LD R0,#xxxx xxx1b ; nastaví bit D0 registru PCON na 1 Analogové komparátory, pokud je nastaven analogový rezim, jsou funkcní i v rezimu HALT (clánek 8). Komparátory nejsou funkcní v rezimu STOP. Pokud však analogový rezim byl zvolen pred vstupem mikroradice do rezimu STOP, po výstupu z rezimu STOP je analogový rezim obnoven. 5.5. Rezim snízeného vyzarování rušivých napetí. Kazdé zarízení, pracující v impulsním rezimu, je zdrojem elektromagnetického vyzarování, které muze pusobit rušive na jiná elektronická zarízení. Úroven rušivých napetí je tím vetší, cím rychlejší jsou zmeny, které jsou prícinou vyzarování. Mikroradice Z8 je mozno nastavit do rezimu, kdy úroven rušivých napetí, vyzarovaných do okolí, je co nejmenší. Toho se dosahuje predevším zpomalením nástupných a sestupných hran hodinových impulsu (nikoliv snízením hodinového kmitoctu) a úpravou impedancí vstupne/výstupních portu. Nastavením bitu D7, D6, D5 a D3 registru PCON (viz. clánek 5.1) na hodnotu 0 je mozno nastavit do rezimu nízkého vyzarování nezávisle oscilátor a porty P0, P2, P3. Navíc je mozno nastavit bit D1 registru SMR na hodnotu 1 a vyradit tak z cinnosti delicku, která výstupní signál oscilátoru delí dvema. Dusledkem popsaného nastavení je: - úroven rušivého vyzarování se snízí asi na 25% oproti vyzarování pri standardním rezimu - výstupní odpor portu je cca 200 Ω - kmitocet vnitrních hodin je roven kmitoctu krystalu a smí být maximálne 4MHz Výše popsané nastavení rezimu snízeného vyzarování je mozné pouze u typu, které mají registry PCON a SMR, tedy pouze u typu Z86E30/31/33/733. Obvody typu Z86E02/04/08 mohou být do obdobného rezimu nastaveny naprogramováním príslušného bitu Option registru (clánek 9.). - 18-6. Cítace, casovace. Všechny typy mikroradicu Z8 jsou vybaveny dvema cítaci (Z86E02 a Z86E03 mají pouze jeden cítac), které nejsou závislé na chodu procesoru a odlehcují tak programu od casove kritických cinností jako je merení casových intervalu nebo pocítání událostí. Kazdý z cítacu je tvoren osmibitovým registrem a šestibitovou preddelickou. Cítac T0 je umísten jako registr standardní sady s adresou F4H, jako preddelicka PRE0 slouzí registr F5H. Cítac T1 je registr standardní sady s adresou F2H, jako preddelicka PRE1 slouzí registr F3H. Pro konfiguraci obou cítacu je pouzit rídící registr TMR s adresou F1H, nekteré funkce cítacu se nastavují v registrech SMR (F0BH) a P3M (F7H).

Cítace pracují v rezimu odecítání od pocátecní nastavené hodnoty k nule. Po dosazení nulového obsahu se cítac bud zastaví a musí být znovu spušten (jednorázový rezim), nebo je opet naplnen pocátecní hodnotou a odecítání se opakuje. Zdrojem vstupních impulsu muze být bud oscilátor mikroradice nebo vnejší zdroj (pouze pro cítac T1), pripojený na pin P31. Cítac T0 po dosazení nulového stavu generuje prerušení IRQ4, cítac T1 je obdobne zdrojem prerušení IRQ5. Výstupy cítacu mohou být (pouze u typu Z86E30/31/33/733) pomocí bitu D7 a D6 registru TMR propojeny na pin P36. Schéma propojení je na obrázku v clánku 5.3. Port 3. Úplné programování registru TMR je v clánku 6.1. Delicky ctyrmi, 6-bitové preddelicky a 8-bitové cítace tvorí dohromady šestnáctibitový synchronní zpetný cítac, který muze být nastaven do ctyr módu, popsaných dále. Preddelicky jsou Write Only registry, jejich ctení dává výsledek FFH. Šest vyšších bitu preddelicek muze mít hodnotu 1 az 64D. Dva nejnizší bity preddelicek jsou rídící bity, které urcují mód cítacu a zdroj vstupních impulsu pro cítac T1. Kazdý cítac je ve skutecnosti slozen z osmibitového cítace, Write Only registru, ve kterém je zapsána pocátecní hodnota cítace a Read Only registru, ze kterého je ctena okamzitá hodnota cítace. Pocátecní hodnota cítacu muze být 1 az 256D. Pro úplnost je treba zopakovat, ze typ Z86E02 neobsahuje cítac T0. - 19-6.1. Rízení cítacu. Chod obou cítacu je rízen obsahem registru TMR. Registr TMR DEC HEX Název Popis 241 F1 TMR Timer Mode Register Registr nastavení módu cítacu

Zapsáním hodnoty 1 do bitu D0 (D2) se prenese pocátecní hodnota z registru T0 (T1) a PRE0 (PRE1) do príslušných hardwarových cítacu. Následující hodinový impuls SCLK nastaví do bitu D0 (D2) hodnotu 0 a pripraví oba bity pro další operaci zápisu pocátecních hodnot. Nová pocátecní hodnota muze být zapsána do cítace kdykoliv. Jestlize v okamziku zapsání pocátecní hodnoty cítac odecítá, pokracuje v odecítání od nove nastavené pocátecní hodnoty. Cítac T0 (T1) zustává v klidu, pokud bit D1 (D3) má hodnotu 0 a odecítá, má-li bit D1 (D3) hodnotu 1. První snízení obsahu cítace o jednu nastává ctyri hodinové cykly poté, co byla hodnota bitu D1 (D3) nastavena na 1. Jestlize cítac pracuje v módu vnejších vstupních impulsu, cítac snízí svuj obsah na první vnejší impuls po nastavení bitu D1 (D3). Bity D0 a D1 (D2 a D3) mohou být nastaveny soucasne. Napríklad instrukce OR TMR, #03H nastaví oba bity na hodnotu 1, zapíše pocátecní hodnoty do cítace T0 a cítac spustí. Po spuštení cítace T0 (T1) mení vstupní impulsy TCLK obsah preddelicky, tj. bitu D7-D2 registru PRE0 (PRE1). Jestlize obsah preddelicky dosáhne nuly, je ihned zapsána pocátecní hodnota (pouze do preddelicky) a cítání pokracuje. Jestlize napr. je preddelicka nastavena na delení tremi, její obsah je 3-2-1-3-2-1- atd. Pokazdé, kdyz preddelicka PRE0 (PRE1) dosáhne "nuly", príští TCLK impuls snízí obsah cítace T0 (T1) o 1. Kdyz dosáhne nulového stavu cítac T0 (T1), je generován pozadavek na prerušení IRQ4 (IRQ5). V závislosti na nastaveném módu cítac bud zastaví cítání a zachová svuj obsah 00H (jednorázové odecítání) nebo je znova automaticky zapsána pocátecní hodnota a cítání se opakuje (opakované odecítání). Mód cítacu se volí obsahem bitu D0 registru PRE0 a PRE1. Preddelicka vzdy pracuje v módu opakovaného odecítání. Cítac T0 (T1) muze být kdykoliv zastaven nastavením bitu D0 (D3) registru TMR na hodnotu 0 a znovu spušten nastavením tohoto bitu na hodnotu 1. Cítac pokracuje v odecítání z obsahu, který mel v okamziku, kdy byl zastaven. Stav cítace muze být cten kdykoliv, ctení nemá vliv na obsah cítace. Registr preddelicky je Write Only a nemuze být cten. Merí-li cítac cas, je interval i od spuštení do dosazení nulového stavu roven: i = t x p x v kde t - interval TCLK (odvozen od SCLK ) p - pocátecní hodnota preddelicky (1D - 63D tj. 0000 01xxB - 1111 11xxB) v - pocátecní hodnota cítace (1D - 256D tj. 0000 0001B - 0000 0000B) - 20-6.2. Výstupní módy cítacu (pouze u typu Z86E30/31/33/733). Výstupy cítacu mohou být vyvedeny na pin P36 nastavením bitu D7 a D6 registru TMR.

Nastavení výstupního módu a spuštení cítace muze být provedeno soucasne. Napríklad instrukce OR TMR, #43H (tj. 0100 0011B) - pripojí výstup cítace T0 na pin P36 - nastaví úroven výstupu na pinu P36 na hodnotu 1 - zapíše pocátecní hodnoty z registru PRE0 a T0 do cítace - spustí cítac T0 Pokud je pin P36 nastaven jako výstup cítace, nemohou být do bitu D6 registru P3 zapisována zádná data. Hodnota bitu však muze být programem kdykoliv ctena. 6.3. Vstupní módy cítace T1. Nastavením bitu D1 registru PRE1 na hodnotu 0 a bitu D5, D4 registru TMR muze cítac T1 zpracovat vnejší signály ze vstupního pinu P31 v jednom ze ctyr módu: Pro všechny módy popsané dále se predpokládá, ze programátor zajistil nastavení pocátecních hodnot cítace dríve popsaným zpusobem. Kazdá zmena úrovne z hodnoty 1 na hodnotu 0 (sestupná hrana) na vstupu P31 generuje pozadavek na prerušení IRQ2 ve všech vstupní módech i pri zastaveném cítaci. IRQ2 musí být proto maskován podle potreb konkrétní aplikace. 6.3.1. Pocítání vnejších impulsu. Nastavením bitu D5 a D4 registru TMR na hodnotu 00 pracuje cítac T1 jako prostý cítac událostí, kde událostí je sestupná hrana impulsu, privedeného na pin P31. Cas mezi dvemi po sobe následujícími událostmi musí být vetší nez 8TpC. 6.3.2. Hradlování vnitrního signálu SCLK vnejšími impulsy. Nastavením bitu D5 a D4 registru TMR na hodnotu 01 merí cítac T1 dobu mezi dvema po sobe následujícími událostmi. Cítac T1 pocítá, je-li úroven signálu TIN rovna 1. Pozadavek na prerušení IRQ2 je generován sestupnou hranou signálu TIN. 6.3.3. Monostabilní rezim jednorázový. - 21 -

Nastavení bitu D5 a D4 registru TMR na hodnotu 10 má za následek, ze cítac T1 je odstartován sestupnou hranou vnejšího signálu na pinu P31 a pocítá impulsy SCLK. Další zmeny signálu P31 nemají na cítac T1 zádný vliv. Je-li nastaven jednorázový rezim odecítání (bit D0 registru PRE1 má hodnotu 0), cítac T1 se zastaví po dosazení nulového stavu a generuje pozadavek prerušení IRQ5. V opakovaném rezimu odecítání je cítac další sestupnou hranou signálu TIN opet spušten. 6.3.4. Monostabilní rezim opakovatelný. Nastavení bitu D5 a D4 registru TMR na hodnotu 11 má za následek, ze cítac T1 je odstartován z pocátecní hodnoty opakovane kazdou sestupnou hranou vnejšího signálu na pinu P31 a pocítá impulsy SCLK. Je-li nastaven jednorázový rezim odecítání (bit D0 registru PRE1 má hodnotu 0), cítac T1 se zastaví po dosazení nulového stavu a generuje pozadavek prerušení IRQ5. V opakovaném rezimu odecítání je cítac další sestupnou hranou signálu TIN opet spušten. 6.3.5. Zapojení cítacu T0 a T1 do kaskády. V nekterých aplikacích muze být potrebné merení casových intervalu delších nez je cas, meritelný jedním cítacem. V takovém prípade je mozné propojit výstup cítace T0 se vstupem cítace T1. Cítac T0 je treba konfigurovat pro opakované odecítání a pripojit jeho výstup na pin P36. Cítac T1 musí být konfigurován pro vnejší vstup z pinu P31. T1 muze pracovat jak pro jednorázové tak i pro opakované odecítání. Dosáhne-li cítac T1 nulového stavu, generuje pozadavek na prerušení IRQ5. Pozadavky IRQ2 a IRQ4 jsou také generovány, ale v této konfiguraci vetšinou nejsou dulezité a mely by být zakázány. 6.3.6. Nastavení cítacu po signálu RESET. Po signálu RESET jsou cítace zastaveny a obsah registru T0, T1 a preddelicek má náhodnou hodnotu. Mód cítacu je nastaven pro jednorázové odecítání a pro externí vstupní signál. Vstupní mód je nastaven pro cítání vnejších událostí, výstup P36 je od cítacu odpojen. - 22 -

7. Prerušení Mikroradice Z8 mohou vyuzít 6 ruzných zdroju pro prerušení chodu procesoru. Az ctyri zdroje mohou být vnejší, zdrojem prerušení mohou být cítace a komparátory. Všechna prerušení mohou být maskována a mohou být nastaveny libovolné priority. Všech šest prerušení muze být globálne zakázáno instrukcí DI (Disable Interrupt) a globálne povoleno instrukcí EI (Enable Interrupt). Pro rízení prerušení slouzí tri rídící registry. - IRQ, registr pro zápis pozadavku na prerušení - IMR, registr pro maskování jednotlivých prerušení - IPR, registr pro nastavení priority prerušení 7.1. Zdroje prerušení. jméno vnitrní zdroj vnejší zdroj obsluzný vektor IRQ0 komparátor AN2 P32 0000, 0001 IRQ1 - P33 0002, 0003 IRQ2 komparátor AN1 P31 0004, 0005 IRQ3 - P30 nebo P32 0006, 0007 IRQ4 cítac T0-0008, 0009 IRQ5 cítac T1-000A, 000B Registr IRQ DEC HEX Název Popis 250 FA IRQ Interrupt ReQuest Register Registr pozadavku prerušení Je-li nekterý ze signálu prerušení aktivní, nastaví príslušný bit na hodnotu 1. Po signálu RESET je registr IRQ nastaven na hodnotu 00H, tedy všechny pozadavky na prerušení jsou vynulovány. Krome toho je registru IRQ nastaven pouze pro ctení. Zápis do registru je povolen instrukcí EI (Enable Interrupt). - 23 -

7.2. Priorita prerušení. Šest pozadavku na prerušení muze být registrem IPR serazeno podle priority. Jsou-li pak generovány ve stejný okamzik dva nebo více pozadavku na prerušení, je vzdy jako první obslouzen pozadavek s nejvyšší prioritou. Pro úcely prirazení priority je šest prerušení rozdeleno do trí skupin po dvou. Obsah registru IPR pak definuje poradí v kazdé skupine a poradí skupin. Registr IPR Write Only DEC HEX Název Popis 249 F9 IPR Interrupt Priority Register Registr priority prerušení 7.3. Maskování prerušení. Kazdý ze šesti pozadavku na prerušení je mozno jednotlive maskovat a tím zabránit jeho vykonání. Krome toho mohou být zakázána všechna prerušení globálne. Registr IMR DEC HEX Název Popis 251 FB IMR Interrupt Mask Register Registr masky prerušení Je-li bit D7 nastaven na 0, jsou všechna prerušení zakázána a bity D0 az D5 nemají zádný význam. Bit D7 muze být nastaven na hodnotu 0 instrukcí DI (Disable Interrupt) a na hodnotu 1 instrukcí EI (Enable Interrupt). Bit D7 je automaticky nastaven na hodnotu 0 pri aktivaci kteréhokoliv prerušení a zpetne nastaven na hodnotu 1 instrukcí IRET (Interrupt Return). Po signálu RESET je bit D7 nastaven na 0, všechna prerušení jsou zakázána. Pred zmenou obsahu registru IMR nebo IPR musí být bit D7 registru IMR nastaven na 0 instrukcí DI. Tato podmínka je automaticky splnena pouze po signálu RESET a po vstupu do rutiny pro obsluhu prerušení. - 24 -

7.4. Programové prerušení. Prerušení muze být vyvoláno i programove pouzitím registru IRQ jako cílového operandu kterékoliv instrukce, která má prístup ke standardní sade registru. Kterékoliv z šesti prerušení se vyvolá nastavením príslušného bitu registru IRQ na hodnotu 1. Napríklad instrukce OR IRQ, #20H ( tj. 0010 0000B) nastaví bit D5. Jestlize prerušení je globálne povoleno a není nastaven zádný pozadavek na prerušení s vyšší prioritou, program pokracuje obsluznou rutinou, která je definována vektorem IRQ5. 7.5. Vektorové prerušení. Kazdý ze šesti pozadavku na prerušení má pridelenou adresu v pameti programu, kam musí být ulozena adresa (obsluzný vektor) pocátku rutiny príslušného prerušení. Adresy pro ulození vektoru jsou uvedeny v tabulce v clánku 7.1. Cinnost mikroradice po vyvolání prerušení je následující: - ulození obsahu cítace programu (PC) a registru príznaku (FLAGS) do zásobníku - naplnení cítace programu obsluzným vektorem - vykonání instrukcí obsluzné rutiny - ukoncení obsluzné rutiny instrukcí IRET - vyzvednutí registru príznaku a návratové adresy ze zásobníku - pokracování programu instrukcí následující po instrukci, pri níz došlo k prerušení Pozadavek na prerušení je testován v kazdém strojovém cyklu. Presmerování programu na prerušení trvá 24TpC. Další 2TpC zabere synchronizace vnitrních klopných obvodu. Pozadavek na prerušení je realizován az po úplném dokoncení instrukce, pri které byl pozadavek na prerušení zjišten. V nejhorším prípade k prerušení dojde za cas 24TpC + 2Tpc + pocet TpC nejdelší instrukce obsazené v programu. Kazdý realizovaný pozadavek na prerušení nastaví bit D7 registru IMR na hodnotu 0 a zakáze globálne všechna prerušení. Pokud je pozadováno, aby prerušení bylo mozno prerušit jiným prerušením s vyšší prioritou, musí obsluzná rutina: - ulozit obsah registru IMR do zásobníku - naplnit registr IMR novou maskou - povolit prerušení instrukcí EI (Enable Interrupt) - po ukoncení obsluhy vlastního prerušení zakázat prerušení instrukcí DI (Disable Interrupt) - vyzvednout ze zásobníku puvodní obsah registru IMR a obnovit obsah IMR - vykonat instrukci IRET (Interrupt Return) 7.6. Prerušení na dotaz. Pri obsluze prerušení na dotaz je prerušení globálne zakázáno a pouze v programem urceném okamziku je ucinen dotaz, zda príslušný pozadavek na prerušení existuje. Dotaz je obvykle uskutecnen testem obsahu registru IRQ. Pokud je príslušný bit registru nastaven a výsledek testu je kladný, program se vetví nebo volá obsluznou rutinu prerušení. Program pro obsluhu prerušení IRQ 2 na dotaz muze být napsán takto: EI ;inicializace registru pro obsluhu prerušení DI ;globální zákaz prerušení... TM IRQ,#04H ;test bitu D2 registru IRQ (04H je 0000 0100B) JR Z, NEXT ;skok na náveští NEXT pri negativním výsledku testu CALL SERVICE ;volání podprogramu SERVICE pro prerušení NEXT:... ;pokracování programu SERVICE:... ;obsluzný podprogram prerušení AND IRQ,#FBH ;vynulování bitu D2 registru IRQ (FBH je 1111 1011B) RET ;návrat z podprogramu - 25 -

8. Úsporné rezimy. Krome standardního rezimu RUN mohou být všechny typy Z8 uvedeny do dvou úsporných rezimu, ve kterých má mikroradic snízenou spotrebu energie. Oba rezimy, HALT a STOP, jsou vhodné zejména pro aplikace napájené z baterií. 8.1. Rezim HALT. V rezimu HALT jsou odpojeny vnitrní hodinové impulsy od procesoru a je tak zastaven chod programu. Casování logiky prerušení a cítacu zustává v chodu. Mikroradic vstupuje do rezimu HALT instrukcí HALT. Standardne musí program obsahovat po sobe následující instrukce: NOP ; No Operation, pro vyprázdnení registru instrukce HALT ; vstup do rezimu HALT Spotreba mikroradice v rezimu HALT je podle typu obvodu cca 40 az 60% spotreby v rezimu RUN. Další snízení spotreby je mozno u typu, které mají registr SMR, delením kmitoctu SCLK šestnácti. Nastavení registru SMR je popsáno v clánku 8.2. Rezim HALT je mozno ukoncit kterýmkoliv prerušením, vnitrním nebo vnejším. Po vykonání obsluzné rutiny prerušení program pokracuje instrukcí, následující po HALT. Rezim HALT je také ukoncen signálem RESET nebo aktivací casovace Watch Dog (pokud v rezimu HALT bezí). Program poté startuje instrukcí na adrese 000CH. 8.2. Rezim STOP. V rezimu STOP je zastavena veškerá cinnost mikroradice. Mikroradic vstupuje do rezimu STOP pomocí instrukce STOP. Standardne musí program obsahovat po sobe následující instrukce: NOP ; No Operation, pro vyprázdnení registru instrukce STOP ; vstup do rezimu STOP Spotreba mikroradice v rezimu STOP je cca 1µA. Minimalizovat spotrebu je mozno: - snízením napájecího napetí na spodní hranici dovoleného rozsahu (standardne 4.5V) - nepouzíváním casovace WDT v rezimu STOP - minimalizací proudu z výstupních portu - zapojením všech nepouzitých vstupu (digitálních i analogových) na Ucc nebo GND Rezim STOP je mozno ukoncit vypnutím a zapnutím napájecího napetí, aktivací casovace WDT a signálem, urceným pro výstup ze STOP rezimu. Program vzdy startuje od adresy 000CH. Registry jsou nastaveny do výchozího stavu, viz. clánek 4.1. Výjimky v nastavení registru pri opuštení rezimu STOP urceným signálem jsou uvedeny v clánku 8.2.3. 8.2.1. Ukoncení rezimu STOP signálem Power On Reset. Vypnutím a zapnutím napájecího napetí je aktivován obvod POR (Power On Reset), který generuje signál RESET. Rídící registry jsou uvedeny do výchozího stavu. Tento zpusob je pouzitelný vzdy a u všech typu mikroradicu Z8. 8.2.2. Ukoncení rezimu STOP casovacem WDT. Typy Z86E30/31/33/733, které mají WDTMR registr, aktivují WDT v rezimu STOP nastavením bitu D3 na hodnotu 1 (viz. clánek 4.3.). Typy Z86E02/04/08, které registr WDTMR nemají, mohou aktivovat WDT v rezimu STOP naprogramováním Option Registru (clánek 9). Jestlize je WDT aktivován, rezim STOP je ukoncen dosazením nastaveného casu casovace WDT. Rídící registry jsou uvedeny do výchozího stavu. Chod casovace v rezimu STOP zvyšuje spotrebu mikroradice.

- 26-8.2.3. Ukoncení rezimu STOP signálem z urceného zdroje. Obvody Z86E02/04/08 mohou pro výstup z rezimu STOP vyuzít pouze jediný signál, privedený na pin P27, konfigurovaný jako vstup. Signál je aktivní na úrovni Low (0). Obvody typu Z86E30/31/33/733 mohou obsahem registru SMR konfigurovat více signálu, jejichz aktivní stav ukoncí rezim STOP. Registr SMR Write Only DEC HEX Název Popis F0B SMR Stop Mode Recovery Registr konfigurace rezimu STOP Všechny bity registru SMR jsou Write Only s vyjímkou bitu D7, který je Read Only. Jednotlivé bity registru SMR mají funkci: - D0 Hodnota 1 aktivuje delicku a kmitocet signálu TCLK pro T0 a T1 je odvozen ze signálu SCLK delením šestnácti. Funkce je pouzitelná pro rezim HALT, kde snizuje spotrebu. - D1 Hodnota 1 vyradí delicku dvema a kmitocet signálu SCLK/TCLK je roven kmitoctu krystalu. Funkce je spolu s bitem D7 registru PCON vyuzívána pro rezim snízeného vyzarování mikroradice. Kmitocet krystalu muze být nejvýše 4 MHz. - D2, D3, D4 Osm kombinací bitu urcuje zdroj signálu pro výstup z rezimu STOP. Vstupy P31, P32, P33 musí být nastaveny do digitálního rezimu, piny P20 az 27 musí být nastaveny jako vstupy. Kombinace 110 a 111 mají funkci podle obrázku. - D5 Hodnota 1 zpusobí, ze výstup z rezimu STOP je zpozden 5ms po aktivaci signálu RESET. Toto zpozdení je zarazeno pri standardním nastavení pro lepší synchronizaci všech obvodu po signálu RESET. Je-li bit D5 nastaven na hodnotu 0, mikroradic vystoupí z rezimu STOP behem 5 TpC. - D6 Hodnota 0 definuje aktivní úroven zvoleného signálu pro výstup ze STOP rezimu na úroven Low (0). Hodnota 1 definuje aktivní úroven zvoleného signálu na úroven High (1). - D7 Bit je nastaven na hodnotu 0, jestlize mikroradic ukoncil rezim STOP signálem RESET. Bit je nastaven na hodnotu 1, pri výstupu z rezimu STOP signálem z urceného zdroje (teplý start). Bit je Read Only a je programem pouzitelný jako príznak výstupu z rezimu STOP. Po "teplém startu" jsou rídící registry nastaveny do výchozího stavu s vyjímkou výstupních portu P2 a P3, rídících registru P2M, P3M a P01M a registru WDTMR. Obsah vyjmenovaných registru zustává beze zmeny.

- 27-9. Registr volitelných funkcí. Na cipu kazdého mikroradice je 8-bitový Option Register, který není softwarove prístupný a jehoz obsah je mozno zmenit pri ukládání programu do pameti OTP. Obsahem registru je mozno trvale naprogramovat do obvodu funkce, které mikroradice Z8 nemohou softwarove zajistit vubec a nebo je nelze nastavit u nekterých typu, nebot nemají implementován nekterý z registru rozšírené sady. Temito funkcemi lze napr. zabránit ctení programu z pameti, nastavovat rezim snízeného vyzarování nebo volit druh oscilátoru. Moznosti volby funkcí jsou ruzné nejen u jednotlivých typu Z8 ale také u jednotlivých verzí jednoho typu obvodu. Detaily je nutno zjistit z technické specifikace. typ obvodu PROM Low Trvalý Latch Test RC Xtal 32kHz Protect EMI WDT Disable Disable oscilátor oscilátor oscilátor Z86E02...1903 X X X X X - - - Z86E02...1925 X X X X X X - - Z86E04...1866 X X X X X - - - Z86E04...1903 X X X X X - - - Z86E08...1866 X X X X X - - - Z86E08...1903 X X X X X - - - Z86E30... X - X X - X - X Z86E31... X - X X - X - X Z86E33... X - X X X - X X Z86733... X - X X X - X X PROM Protect - Nastavení bitu blokuje PROM proti ctení i zápisu. Pouzívá se proti kopírování programu. Je nutno nastavit az po vlození programu do pameti. Low EMI - Po nastavení bitu má obvod vlastnosti popsané v clánku 5.5. Trvalý WDT - Casovac WDT je nastaven pro chod ve všech rezimech (RUN, HALT, STOP) a není mozno ho vyradit. Programove je nutno ho vcas nulovat. Pouzívá se pri aplikaci v prostredí s vysokou úrovní rušení. Autolatch Disable - Vyrazuje z cinnosti obvody Autolatch na vstupech (clánek 5.). Test Disable - Zabranuje vstupu obvodu do testovacího rezimu v dusledku rušivého prostredí. Spolu s nastavením trvalého chodu WDT zajištuje nejvyšší ochranu proti vnejšímu rušení. RC oscilátor - Modifikuje obvod oscilátoru pro rízení RC clenem. Pokud není bit nastaven, musí být oscilátor rízen krystalem. Xtal oscilátor - Modifikuje obvod oscilátoru pro rízení krystalem. Pokud není bit nastaven, je vhodné rídit oscilátor RC clenem. 32kHz oscilátor - Modifikuje obvod oscilátoru pro aplikace s kmitoctem 32kHz. Pokud není bit nastaven, je mozno oscilátor standardne pouzívat s kmitoctem 8 az 16 MHz podle typu obvodu. Jednotlivé bity Option Registru mohou být nastaveny pri ukládání programu do pameti OTP. Programátory, dodávané oficiálními distributory obvodu Zilog, tuto funkci standardne nabízejí. Pokud je nekterý z bitu Option Registru nastaven, není mozno jeho funkci zrušit. Nenastavené bity je mozno nastavit dodatecne, pokud nebyl nastaven bit PROM Protect. Obsah Option Registru není mozno císt u obvodu typu Z86E02/04/08, u obvodu typu Z86E30/31/33/733 je mozno obsah registru precíst standardním programátorem, pokud nebyl nastaven bit PROM Protect.