Obsah
1. Sada registrů osmibitového mikrořadiče Motorola 68HC05
2. Instrukční sada mikrořadiče 68HC05
3. Aritmetické, logické a bitové operace s jedním operandem
4. Aritmetické, logické a bitové operace s dvojicí operandů; instrukce nepodmíněného skoku
5. Organizace paměti mikrořadiče 68HC05
6. Osmibitový mikrořadič 68HC08 – komerčně úspěšný následovník 68HC05
7. Rozšířená instrukční sada mikrořadiče 68HC08
8. Čítače a časovače mikrořadiče 68HC08, modul provádějící PWM
1. Sada registrů osmibitového mikrořadiče Motorola 68HC05
V předchozí části seriálu o architekturách počítačů jsme se seznámili se známým osmibitovým mikroprocesorem Motorola MC6800, z něhož je mj. odvozeno i několik řad osmibitových mikrořadičů vyráběných v minulosti jak samotnou firmou Motorola, tak i některými dalšími výrobci, kteří si zakoupili příslušné licence. Po nepříliš známých „dvoučipových“ mikrořadičích MC6801 a MC6802 navrhli inženýři firmy Motorola mikrořadič MC6805, který se později vyvinul v první skutečný jednočipový mikrořadič nazvaný 68HC05. Z pohledu programátora se jedná o osmibitový mikrořadič s von Neumannovou architekturou (což je rozdíl oproti již popsaným čipům MCS-48, MCS-51 či PIC). To mj. znamená, že všechny řídicí registry, paměť ROM i paměť RAM jsou mapovány do jediného adresního prostoru o teoretickém rozsahu 216=65536 bajtů, který je však u mikrořadičů 68HC05 zmenšen na 213=8192 bajtů, protože čítač instrukcí má horní tři bity trvale nastaveny na nuly.

Obrázek 1: Blokové schéma cvičného mikroprocesoru ze čtvrté části tohoto seriálu se v několika ohledech podobá interní struktuře osmibitového mikroprocesoru Motorola MC6800, ovšem s tím poměrně důležitým rozdílem, že MC6800 navíc obsahoval i šestnáctibitový index registr X používaný při adresování operandů uložených v operační paměti.
Oproti původnímu procesoru MC6800 došlo i k několika dalším zjednodušením centrální procesorové jednotky mikrořadiče 68HC05 (což mimochodem z tohoto mikrořadiče dělá téměř ideální čip pro výuku, jehož jedinou nevýhodou je, že se již nevyrábí a jeho následovníci již nemají tak čistý design). Především byl zcela odstraněn druhý akumulátor B, šířka indexového registru X se zmenšila na 8 bitů (což je, jak uvidíme dále, pro mnoho operací dostatečné), počet skutečně využitelných bitů ukazatele na vrchol zásobníku SP se zmenšil ze šestnácti na šest (zásobník tedy může mít kapacitu pouze 64 bajtů) a dokonce byl odstraněn i jeden příznakový bit z registru CCR. Jedná se o bit V (overflow), což však mj. znamená, že je poněkud složitější pracovat s čísly se znaménkem (signed), protože kvůli absenci tohoto příznaku nejsou k dispozici ani skokové instrukce, které u původního procesoru MC6800 mohly být použity po porovnání dvou znaménkových hodnot. V následující tabulce jsou vypsány všechny registry, které může programátor mikrořadiče 68HC05 při práci v assembleru použít:
Označení | Šířka (b) | Využito bitů | Název registru | Význam registru |
---|---|---|---|---|
A | 8 | 8 | accumulator A | jediný universální pracovní registr |
X | 8 | 8 | index register | používán při adresování operandů |
PC | 16 | 13 | program counter | používán při adresování instrukcí |
SP | 16 | 6 | stact pointer | použit při operacích se zásobníkem |
CCR | 8 | 5 | condition code register | obsahuje příznakové bity |

Obrázek 2: Základní technické parametry první generace osmibitových mikroprocesorů firem Intel, Motorola a Zilog. V tomto grafu není uveden poslední „velký hráč“ na poli osmibitových CPU – MOS 6502, jehož parametry se podobají právě čipu MC6800.
2. Instrukční sada mikrořadiče 68HC05
Díky absenci druhého akumulátoru B a současnému zmenšení šířky indexového registru X došlo (ani ne tak překvapivě) ke zjednodušení instrukční sady, která je v některých ohledech více ortogonální, než instrukční sada původního osmibitového mikroprocesoru MC6800. Indexový registr X totiž může být u mnoha instrukcí ze třetí skupiny (viz též tabulka pod odstavcem popř. celá instrukční sada zobrazená na třetím obrázku) použit jako plnohodnotný pracovní registr, tj. podobným způsobem jako akumulátor A. Z 256 instrukčních kódů je jich využito celkem 210, zbývajících 46 kódů je rezervováno pro budoucí použití (jdou obsazeny například v dále popsaném mikrořadiči 68HC08 nebo 68HC11). Instrukce lze podle jejich funkce i podle počtu operandů rozdělit do pěti skupin, které se od sebe liší obsahem horních čtyř bitů (horního nibble) instrukčního slova. Tyto skupiny jsou vypsány v další tabulce:
Skupina | Prefix (hexa) | Význam |
---|---|---|
1 | 0–1 | bitové operace s prvními 256 bajty paměti |
2 | 2 | relativní skoky |
3 | 3–7 | operace s jedním operandem (registrem nebo pamětí) |
4 | 8–9 | řídicí instrukce |
5 | A–F | operace s dvojicí operandů (registrem a pamětí) + instrukce skoku |
V první skupině zabírající celou osminu všech instrukčních kódů, se nachází čtyři instrukce, pomocí nichž lze provádět bitové operace s prvními 256 bajty paměti. Jedná se o instrukci BCLR sloužící pro vynulování vybraného bitu, dále o instrukci BSET pro nastavení bitu do stavu logické jedničky. Hodnotu libovolného bitu lze testovat instrukcemi BRCLR (branch if clear) a BRSET (branch if set) – na základě hodnoty příslušného bitu je proveden relativní skok v rámci ± 127 bajtů a navíc je nastaven příznak carry. Každá ze zmíněných instrukcí je v sadě instrukcí použita osmkrát, protože součástí operačního kódu je i index nastavovaného, nulovaného či testovaného bitu. Tyto instrukce jsou, jako podobně navržené instrukce u mikrořadičů MCS-51, velmi užitečné, protože do prvních 256 adres paměti jsou adresovány řídicí registry (jejichž jednotlivé bity mají různý význam) i část uživatelské RAM.

Obrázek 3: Instrukční sada mikrořadiče M68HC05.
(Zdroj: Freescale Semiconductor, Ltd. MC68HC05B6/D Rev. 4.1 08/2005)
Dalších šestnáct instrukcí může být využito pro provádění podmíněných i nepodmíněných relativních skoků. Relativní skok je proveden takovým způsobem, že se k PC připočte osmibajtová konstanta se znaménkem (offset), což mj. znamená, že adresy cílů skoků není zapotřebí přepočítávat v případě, že se program v operační paměti posune. Instrukce BRA (branch always) provede relativní skok vždy, zatímco instrukce BRN (branch never) naopak odpovídá dvoubajtové instrukci NOP. Následujících čtrnáct instrukcí slouží pro provedení relativního skoku na základě aktuálních hodnot příznakových bitů nebo jejich kombinací. Taktéž je možné provést skok v případě, že je externí signál přerušení IRQ buď nulový nebo jedničkový (tento typ skoku lze využít i v případě, že je přerušení zakázáno). Význam jednotlivých bitových příznaků ukládaných do registru CCR, které se používají u jednotlivých skokových instrukcí, je vysvětlen v další tabulce. Zajímavé je, že kromě příznaku I (interrupt mask) nejsou ostatní příznaky změněny po RESETu, podobně jako se při této operaci nemění obsah buněk v operační paměti:
Bit# | Označení příznaku | Jméno příznaku | Význam |
---|---|---|---|
7 | × | × | neobsazeno |
6 | × | × | neobsazeno |
5 | × | × | neobsazeno |
4 | H | Half-Carry Flag | nastavený při přenosu ze třetího do čtvrtého bitu; tento příznak je použit při BCD aritmetice |
3 | I | Interrupt Mask | příznak, pomocí něhož lze povolit či naopak zakázat maskovatelné přerušení (IRQ) |
2 | N | Negative Flag | tento příznak je nastaven, pokud poslední aritmetická či logická operace vygenerovala záporný výsledek, tj. bajt s nejvyšším bitem rovným jedničce (0×80 až 0×FF) |
1 | Z | Zero Flag | tento příznak se nastaví, pokud poslední aritmetická či logická operace vygenerovala osmibitovou hodnotu 0×00, spolu s předchozím příznakem lze zjišťovat relace typu: <0 ≤0 =0 ≥0 >0 ≠0 |
0 | C | Carry Flag | přetečení ze sedmého do (neexistujícího) osmého bitu při mnoha operacích (rotace, aritmetické operace); tento příznak je taktéž nastavovaný nebo nulovaný při bitových operacích v prvních 256 bajtech paměti |

Obrázek 4: Interní struktura mikrořadičů M68HC05.
(Zdroj: Freescale Semiconductor, Ltd. MC68HC05B6/D Rev. 4.1 08/2005)
3. Aritmetické, logické a bitové operace s jedním operandem
Ve třetí skupině instrukcí se nachází instrukce provádějící aritmetické, logické a bitové operace s jedním operandem (jedná se tedy o unární operace). Každá z těchto instrukcí existuje v pěti variantách, které se od sebe liší především tím, jakým způsobem je operand určen. Tímto operandem může být akumulátor A, indexový registr X, nebo se může jednat o bajt umístěný v paměti RAM, ROM nebo dokonce o některý z řídicích registrů mapovaných do adresového rozsahu procesoru. Adresu příslušného bajtu/řídicího registru je možné specifikovat pomocí osmibitové adresy (existuje zde tedy omezení na prvních 256 adres – takzvaná nultá stránka paměti), dále pak osmibitovou adresou, k níž je připočten obsah indexového registru X (omezení na prvních 511 adres) nebo šestnáctibitovou adresou, ke které je připočten obsah indexového registru X (bez omezení). Všechny operace patřící do této skupiny nejprve načtou hodnotu z příslušného zdroje (registr, paměť), provedou zadanou operaci a posléze hodnotu opět uloží. Jedná se o tyto operace:
Zkratka | Význam |
---|---|
ASL | aritmetický posun bajtu doleva (synonymum pro LSL) |
ASR | aritmetický posun bajtu doprava |
LSL | bitový posun bajtu doleva |
LSR | bitový posun bajtu doprava |
ROL | rotace doleva přes příznak C |
ROR | rotace doprava přes příznak C |
CLR | vymazání (dosazení hodnoty 0×00) |
COM | jedničkový doplněk (negace) |
NEG | dvojkový doplněk (změna znaménka) |
DEC | dekrementace, snížení o 1 (často používané pro index registr) |
INC | inkrementace, zvýšení o 1 |
TST | test na záporné číslo a/nebo nulu |
Poznámka: při pohledu na tabulku instrukcí na třetím obrázku zjistíme, že se ve třetí skupině navíc nachází i instrukce MUL (celočíselné násobení), která však má dva operandy a navíc jsou tyto operandy specifikovány implicitně – jedná se o akumulátor a indexový registr.

Obrázek 5: Základní způsob zapojení mikrořadiče 68HC05.
(Zdroj: Freescale Semiconductor, Ltd. MC68HC05B6/D Rev. 4.1 08/2005)
4. Aritmetické, logické a bitové operace s dvojicí operandů; instrukce nepodmíněného skoku
I v páté skupině instrukcí můžeme najít instrukce provádějící aritmetické, logické a bitové operace, tentokrát se však jedná o operace s dvojicí operandů. V tomto případě je prvním operandem – a taktéž místem, kam se ukládá výsledek operace – vždy akumulátor A. Druhým operandem je buď osmibitová konstanta nebo bajt načtený z paměti RAM, ROM či z některého řídicího registru. Adresa tohoto bajtu může být zadána přímou osmibitovou adresou (omezení na nultou stránku paměti), šestnáctibitovou adresou, indexovým registrem, osmibitovou adresou přičtenou k indexovému registru nebo šestnáctibitovou adresou přičtenou k indexovému registru. V této skupině instrukcí se navíc nachází i instrukce pro načtení a uložení akumulátoru A či indexového registru X z/do paměti a rovněž instrukce skoku JMP a skoku do podprogramu JSR. U těchto instrukcí je zajímavé především to, že cíl skoku je specifikován stejně, jako je tomu u aritmetických a logických operací popsaných výše (kupodivu však byla vynechána varianta JMP A, tj. skok na adresu uloženou v registru A, která by mohla být užitečná například při konstrukci „vektorizovaného“ kódu):
Zkratka | Význam |
---|---|
ADD | přičtení druhého operandu k akumulátoru |
ADC | přičtení druhého operandu a příznaku C k akumulátoru |
SUB | odečtení druhého operandu od akumulátoru |
SBC | odečtení druhého operandu a příznaku C od akumulátoru |
CMP | porovnání akumulátoru s druhým operandem |
CPX | porovnání indexového registru s druhým operandem |
AND | bitová operace AND |
ORA | bitová operace OR |
EOR | bitová operace XOR |
BIT | bitová operace AND bez uložení výsledku (podobné jako CMP) |
LDA | nastavení hodnoty akumulátoru |
LDX | nastavení hodnoty index registru |
STA | uložení akumulátoru |
STX | uložení index registru |
JMP | nepodmíněný skok |
JSR | skok do podprogramu |

Obrázek 6: Zapojení pinů osmibitového mikrořadiče 68HC05K0.
(Zdroj: MC68HC05K0/K1 Rev. 1 TECHNICAL DATA, Motorola, CSIC Microcontroller Division)
5. Organizace paměti mikrořadiče 68HC05
V předchozích kapitolách jsme si mj. řekli, že mikrořadič 68HC05 má (či přesněji řečeno měl) šířku indexového registru X zmenšenou na osm bitů a taktéž to, že mnoho instrukcí umožňuje jako svůj operand použít jednu z prvních 256 popř. 511 adres. Mohlo by se sice zdát, že kvůli omezení na 256 či 511 adres jsou tyto instrukce, resp. jejich adresní režimy, prakticky nepoužitelné. Ve skutečnosti to však zdaleka není pravda, protože do „pouhých“ 256 bajtů je možné vložit překvapivě mnoho informací. Jednou z variant mikrořadičů 68HC05 jsou mikrořadiče 68HC05K0 a 68HC05K1 s deseti I/O piny umístěné v šestnáctipinovém pouzdru typu PDIP nebo SOIC, které mají organizaci paměti uspořádanou takovým způsobem, aby se do prvních 256 adres mapovaly ty nejdůležitější a nejpoužívanější oblasti paměti (připomeňme si, že pro prvních 256 adres je možné navíc použít bitové operace). V následující tabulce je vypsána organizace paměti u mikrořadičů 68HC05K0 a 68HC05K1:
Rozsah | Význam |
---|---|
32 bajtů | řídicí registry (I/O porty, časovač atd…) |
192 bajtů | první část ROM či EPROM |
32 bajtů | RAM a zásobník |
|
|
256 bajtů | první stránka paměti |
496 bajtů | druhá část ROM či EPROM |
8 bajtů | watchdog a 7 rezervovaných adres |
8 bajtů | čtveřice vektorů použitá při příchodu různých typů přerušení |

Obrázek 7: Organizace paměti mikrořadiče 68HC05K0.
(Zdroj: MC68HC05K0/K1 Rev. 1 TECHNICAL DATA, Motorola, CSIC Microcontroller Division)
Z tabulky zobrazené výše je patrné, že do takzvané nulté stránky paměti, tj. do prvních 256 bajtů adresového rozsahu, jsou u mikrořadičů …K0 a …K1 mapovány jak všechny řídicí registry, tak i část operační paměti ROM/EPROM (zde jsou obsaženy často volané rutiny) a taktéž celá paměť RAM, která má u těchto velmi jednoduchých a levných mikrořadičů kapacitu pouze 32 bajtů (což je porovnatelné s některými variantami mikrořadičů PIC a taktéž s MCS-48). Zejména namapování řídicích registrů je velmi výhodné, protože tyto registry velmi často obsahují jednobitové příznaky či řídicí bity, takže pro přístup k těmto informacím lze použít již zmíněné instrukce BCLR (bit clear), BSET (bit set), BRCLR (branch if clear) a BRSET (branch if set). Poznámka: kvůli poměrně malému rozsahu obsazených adres je čítač instrukcí, neboli registr PC, omezen na rozsah jednoho kilobajtu, což znamená, že pouze spodních 10 bitů je možné měnit a horních šest bitů tohoto registru má konstantní hodnotu 0.

Obrázek 8: Interní struktura mikrořadiče 68HC05K0.
(Zdroj: MC68HC05K0/K1 Rev. 1 TECHNICAL DATA, Motorola, CSIC Microcontroller Division)
6. Osmibitový mikrořadič 68HC08 – komerčně úspěšný následovník 68HC05
Dalším osmibitovým mikrořadičem, který byl navržen firmou Motorola, je mikrořadič nesoucí označení 68HC08. Jedná se o v mnoha směrech vylepšenou variantu původního mikrořadiče 68HC05, který svým uživatelům nabízel jak větší množství vstupně-výstupních portů, více časovačů a osmikanálový analogově-digitální převodník, tak i rozšířenou kapacitu pamětí ROM a RAM. Došlo i ke změně v konfiguraci registrů a rozšíření instrukční sady tohoto mikrořadiče – zejména byly přidány nové adresní režimy, které umožňovaly lépe využít zvětšenou kapacitu pamětí ROM a RAM (viz též následující kapitolu). V následující tabulce jsou vypsány všechny registry centrální procesorové jednotky, které mohly být využity při programování v assembleru. Povšimněte si především toho, že došlo k rozšíření původně osmibitového indexového registru X na šestnáctibitový registr H:X, jehož obě osmibitové části lze zpracovávat odděleně. Taktéž se rozšířila bitová šířka registrů PC a SP na plných šestnáct bitů, zatímco u mikrořadiče 68HC05 měl PC měnitelných pouze 13 spodních bitů a SP dokonce jen 6 spodních bitů:
Označení | Šířka (b) | Využito bitů | Název registru | Význam registru |
---|---|---|---|---|
A | 8 | 8 | accumulator A | jediný universální pracovní registr |
H:X | 16 | 16 | index register | používán při adresování operandů |
PC | 16 | 16 | program counter | používán při adresování instrukcí |
SP | 16 | 16 | stact pointer | použit při operacích se zásobníkem |
CCR | 8 | 6 | condition code register | obsahuje příznakové bity |

Obrázek 9: Zapojení pinů osmibitového mikrořadiče 68HC08.
(Zdroj: Technical Data – MC68HC08AB16A, Freescale Semiconductor)
Došlo i k rozšíření počtu příznaků uložených v registru CCR – nyní již bylo možné používat příznak V (overflow) nastavovaný mnoha aritmetickými operacemi:
Bit# | Označení příznaku | Jméno příznaku | Význam |
---|---|---|---|
7 | V | Overflow | tento příznak je nastavený při přenosu ze šestého do sedmého bitu, což v případě znaménkové aritmetiky značí přetečení hodnoty čísla do bitu vyhrazeného pro znaménko |
6 | × | × | neobsazeno |
5 | × | × | neobsazeno |
4 | H | Half-Carry Flag | nastavený při přenosu ze třetího do čtvrtého bitu; tento příznak je použit při BCD aritmetice |
3 | I | Interrupt Mask | příznak, pomocí něhož lze povolit či naopak zakázat maskovatelné přerušení (IRQ) |
2 | N | Negative Flag | tento příznak je nastaven, pokud poslední aritmetická či logická operace vygenerovala záporný výsledek, tj. bajt s nejvyšším bitem rovným jedničce (0×80 až 0×FF) |
1 | Z | Zero Flag | tento příznak se nastaví, pokud poslední aritmetická či logická operace vygenerovala osmibitovou hodnotu 0×00, spolu s předchozím příznakem lze zjišťovat relace typu: <0 ≤0 =0 ≥0 >0 ≠0 |
0 | C | Carry Flag | přetečení ze sedmého do (neexistujícího) osmého bitu při mnoha operacích (rotace, aritmetické operace); tento příznak je taktéž nastavovaný nebo nulovaný při bitových operacích v prvních 256 bajtech paměti |

Obrázek 10: Interní struktura mikrořadiče 68HC08.
(Zdroj: Technical Data – MC68HC08AB16A, Freescale Semiconductor)
7. Rozšířená instrukční sada mikrořadiče 68HC08
Na jedenáctém obrázku zobrazeném pod tímto odstavcem jsou vypsány všechny instrukce mikrořadiče 68HC08. Při porovnání této sady instrukcí s instrukcemi mikrořadiče 68HC05 na obrázku číslo 3 můžeme najít větší množství odlišností. Především došlo k rozšíření adresních režimů mnoha instrukcí – nově je možné adresovat operandy ležící v RAM či ROM pomocí adresy vypočtené jako součet obsahu SP a osmibitového či šestnáctibitového offsetu. Tyto adresní režimy jsou poměrně důležité, protože je lze použít při překladu programů napsaných v některém vyšším programovacím jazyce (zde se jednalo zejména o jazyky PL/1, Modulu a C). Tyto jazyky pro každou volanou funkci vytváří takzvaný zásobníkový rámec (stack frame), v němž jsou uloženy jak parametry funkce, tak i lokální proměnné. A právě při adresování parametrů a lokálních proměnných lze využít oba dva nové adresní režimy. Taktéž si povšimněte, že instrukce používající tyto dva režimy mají před instrukčním kódem prefix 0×9E.

Obrázek 11: Instrukční sada mikrořadiče 68HC08.
(Zdroj: Technical Data – MC68HC08AB16A, Freescale Semiconductor)
Kromě instrukcí pracujících s horními osmi bity dvojregistru H:X došlo též k přidání dalších užitečných instrukcí, především CBEQ (compare and branch if equal), což je instrukce odpovídající (až na negaci podmínky) instrukci CJNE známé z mikrořadičů MCS-51. Taktéž byla přidána instrukce DBNZ (decrement and branch if not zero), jejíž obdobu můžeme na architektuře MCS-51 najít v instrukci DJNZ – zatímco firma Intel z historických důvodů používá pro všechny typy skoků termín „jump“, firma Motorola se drží termínu „branch“ v případě, že se jedná o relativní skoky, u nichž je cílová adresa specifikována pomocí offsetu. V předchozí kapitole jsme si řekli, že do sady příznaků byl přidán i příznak V (overflow). Tento příznak je použit u čtyř nových podmíněných skoků prováděných většinou po instrukcích CMP a CPX. Nové skokové instrukce, používané při práci s celými čísly se znaménkem (signed short integer, signed char), jsou vypsány v následující tabulce:
Zkratka | Význam |
---|---|
BGT | skok, pokud platí podmínka operand1 > operand2 |
BGE | skok, pokud platí podmínka operand1 ≥ operand2 |
BLT | skok, pokud platí podmínka operand1 < operand2 |
BLE | skok, pokud platí podmínka operand1 ≤ operand2 |
8. Čítače a časovače mikrořadiče 68HC08, modul provádějící PWM
Mikrořadiče 68HC08 byly rychlejší než původní řada 68HC05 – kromě urychlení některých instrukcí došlo i ke zvýšení mezní frekvence na 8 MHz (minimální frekvence byla 0 Hz s možností plynulé změny až do 8 MHz). Kapacita paměti RAM byla rovna jednomu kilobajtu, kapacita ROM 16 kB, k nimž byla u některých typů čipů přidána i paměť FLASH s kapacitou až 32 kB. Ovšem nejpodstatnějším rozdílem, který především zajímal konstruktéry elektrických zařízení, bylo zvýšení počtu I/O portů. Celkem se jednalo o osm paralelních portů označovaných jmény PORT A až PORT H. Pět z těchto portů bylo osmibitových, další porty měly vyvedeny menší množství pinů. Jak je u mikrořadičů dobrým zvykem, byla většina I/O pinů konfigurovatelná a mohla pracovat ve více režimech – například piny portu E (PORT E) mohly alternativně sloužit k vytvoření sériových komunikačních kanálů: sériového asynchronního portu (RxD, TxD) a současně i sériového synchronního portu či sběrnice SPI (MISO, MOSI, SS, SPSCK).

Obrázek 12: Struktura čítačů a časovačů mikrořadiče 68HC08.
(Zdroj: Technical Data – MC68HC08AB16A, Freescale Semiconductor)
Vstupně/výstupní piny dalších portů navíc mohly sloužit pro potřeby čítačů a časovačů. Právě čítače a časovače tvořily velmi důležitou součást mikrořadiče 68HC08 a zejména ony byly s velkou pravděpodobností rozhodujícím důvodem pro použití těchto mikrořadičů v poměrně velkém množství průmyslových výrobků (v našich zemích jsou tyto mikrořadiče známé již méně, což souvisí s dlouhou tradicí výroby klonů čipů firmy Intel, mezi jinými i mikrořadiče MCS-48). Mikrořadiče 68HC08 obsahovaly dva samostatně pracující moduly se šestnáctibitovými čítači/časovači – modul A (timer interface module A – TIMA) a modul B (timer interface module A – TIMB). Každý z těchto modulů obsahoval čtyři vstupně/výstupní kanály konfigurovatelné (nezávisle na sobě) jako vstupní či jako výstupní kanál. Každý kanál konfigurovaný do režimu vstupu umožňoval zachytit stav čítače ve chvíli, kdy na tomto vstupu došlo ke stanovené změně připojeného signálu (přechod L→H, přechod H→L či libovolný z těchto přechodů).
Pokud byl kanál naopak nakonfigurovaný do výstupního režimu, mohl v daném časovém okamžiku či se zadanou periodou generovat signály různých tvarů, dobou trvání a frekvencí. Kanál pracující ve vstupním režimu navíc mohl vygenerovat při změně signálu (přivedeného na jeho pin) přerušení, stejně jako kanál pracující v režimu výstupním při dosažení nastavené hodnoty čítače. Každý kanál nastavený do výstupního režimu byl samozřejmě schopný generovat signál s konstantní periodou a proměnnou střídou, což je základ PWM – pulsní šířkové modulace. V praxi to znamenalo, že jediný mikrořadič 68HC08 umožňoval současně a v podstatě bez jakéhokoli většího programátorova úsilí ovládat pomocí PWM až osm zařízení, například motorů, topných spirál atd. (samozřejmě při použití vhodného elektrického rozhraní).
9. Odkazy na Internetu
- Wikipedia: Motorola 68HC05
http://en.wikipedia.org/wiki/Motorola_68HC05 - Wikipedia: Freescale 68HC08
http://en.wikipedia.org/wiki/68HC08 - Wikipedia: Freescale 68HC11
http://en.wikipedia.org/wiki/68HC11 - Wikipedia: Freescale 68HC12
http://en.wikipedia.org/wiki/Freescale_68HC12 - HC05 Processor Families
http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01624684498633 - HC08 Processor Families
http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01624684497663 - Digital Core Design 68HC08 – HDL IP Core
http://www.dcd.pl/acore.php?idcore=82 - Freescale 68HC11
http://www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=01624684498635 - Lifecycle of a CPU:
http://www.cpushack.net/life-cycle-of-cpu.html - Most wanted CPU of the world:
http://www.cpu-galaxy.at/CPU/Intel%20CPU/3002–8008/4004%20Grey.jpg - Wikipedia: 6502:
http://en.wikipedia.org/wiki/6502 - The Western Design Center, Inc.:
http://www.westerndesigncenter.com/ - Apple II History Home:
http://apple2history.org/ - www.6502.org:
http://www.6502.org/ - Stránky firmy Microchip Technology
http://www.microchip.com/ - Výběr z různých modelů (osmibitových) mikrořadičů PIC
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2661 - Řada (rodina) osmibitových mikrořadičů PIC 10
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1009&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 12
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1001&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 14
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1008&mid=10&lang=en&pageId=74 - Řada (rodina) osmibitových mikrořadičů PIC 16
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74 - Další výběr z různých modelů mikrořadičů PIC
http://www.microchip.com/maps/microcontroller.aspx - PIC microcontroller (Wikipedia EN)
http://en.wikipedia.org/wiki/PIC_microcontroller - Mikrokontrolér PIC (Wikipedia CZ)
http://cs.wikipedia.org/wiki/Mikrokontrolér_PIC - FLASHFORTH for the PIC18F and the dsPIC30F
http://flashforth.sourceforge.net/ - FlashForth
http://www.sourceforge.net/projects/flashforth - Free Pic software tools
http://softwarepic.50webs.com/freesoft.html - What is Amicus?
http://www.picbasic.org/proton_lite.php - Amicus FAQ
http://www.myamicus.co.uk/faq.php?s=2e8d12e7f4c23e775776f4916876354b& - Microcontrollers development tools
http://www.gnupic.dds.nl/ - gpsim (Wikipedia EN)
http://en.wikipedia.org/wiki/Gpsim - gpsim home page
http://gpsim.sourceforge.net/gpsim.html - The FreeRTOS Project
http://www.freertos.org/ - FreeRTOS (Wikipedia)
http://en.wikipedia.org/wiki/FreeRTOS - Serial EEPROM (93C46 / 93CS46) Routines
http://www.pjrc.com/tech/8051/serial-eeprom.html - Great Microprocessors of the Past and Present (V 13.4.0)
http://jbayko.sasktelwebsite.net/cpu.html - SPI interface tutorial
http://www.best-microcontroller-projects.com/spi-interface.html - Serial Peripheral Interface Bus
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus - EUSB to SPI bus Kit
http://www.eidusa.com/Electronics_Kits_EUSB_To_SPI_BUS.htm - SPI Block Guide V03.06, Freescale Semiconductor
http://www.freescale.com/files/microcontrollers/doc/ref_manual/S12SPIV3.pdf - What is SPI?
http://www.fpga4fun.com/SPI1.html - SPI – A simple implementation
http://www.fpga4fun.com/SPI2.html - Bit-banging
http://en.wikipedia.org/wiki/Bit-banging - Joint Test Action Group
http://en.wikipedia.org/wiki/JTAG - I2C
http://en.wikipedia.org/wiki/I2C - Seriál o programovacím jazyce Forth:
seriál o programovacím jazyce Forth - Display Data Channel
http://en.wikipedia.org/wiki/Display_Data_Channel - I2 Background
http://www.microport.tw/blognew.php?blog_no=7#theory - PIC16F87X, 28/40-pin 8-Bit CMOS FLASH Microcontrollers
Microchip Technology Inc.
http://www.microchip.com