Obsah
1. Ovládání LCD s možností zobrazení rastrové grafiky pomocí MCS-51
2. Nízkoúrovňová práce s grafickým LCD
3. Vysokoúrovňová práce s grafickým LCD
4. Základní vlastnosti televizního video signálu
5. Časování televizního signálu
6. Horizontální a vertikální rozlišení televizoru pracujícího v normě PAL
7. Přímé generování video signálu s využitím MCS-51
8. Obsah následující části seriálu
1. Ovládání LCD s možností zobrazení rastrové grafiky pomocí MCS-51
V předchozí části seriálu o architekturách počítačů jsme si mj. popsali některé způsoby připojení displejů vyrobených na bázi technologie tekutých krystalů (LCD) umožňujících zobrazení textových dat k osmibitovým mikrořadičům MCS-51. Dnes si řekneme, jak lze s využitím MCS-51 ovládat displeje zobrazující bitmapy a jak je dokonce možné tyto mikrořadiče použít ke generování televizního signálu, ať již s použitím vysokofrekvenčního modulátoru nebo s jeho absencí. Nejprve se budeme zabývat jednodušším úkolem, tj. ovládáním LCD umožňujících práci s rastrovými obrazy (bitmapami). Díky poměrně výraznému poklesu cen těchto typů displejů (zejména pasivních LCD s podsvícením nebo i bez podsvícení) se ve stále větší míře objevují aplikace, které tyto displeje používají spolu s jejich ovládáním pomocí některého typu mikrořadiče. Nejjednodušší typy „grafických“ LCD umožňují zobrazení monochromatických bitmap obsahujících řádově desetitisíce pixelů.

Obrázek 1: Monochromatický grafický LCD s rozlišením 128×64 pixelů.
Většinou se jedná o bitmapy, jejichž pixely mohou nabývat pouze jednoho ze dvou stavů (černý–bílý, neprůhledný–průhledný atd.), ovšem s tím, že je možné rychlou změnou stavů pixelů dosáhnout například možnosti zobrazení čtyř, osmi nebo i šestnácti stupňů šedi. Rozlišení těchto displejů dnes začíná na hodnotě 64×64 pixelů, ovšem často se můžeme setkat například s rozlišením 128×64 pixelů (tyto LCD jsou nabízeny mnoha výrobci), 160×128 pixelů, 160×160 pixelů nebo dokonce pro cenově méně citlivé aplikace s rozlišeními 160×240 pixelů, 320×240 pixelů (QVGA) atd. Způsob ovládání těchto displejů mikrořadičem může být značně rozdílný – existují řadiče „grafických“ LCD, u nichž se pouze naplňuje jejich interní paměť s bitmapou, ale k dispozici jsou i řadiče s plnohodnotným přenosovým protokolem, s jehož pomocí lze displej ovládat vysokoúrovňovými příkazy typu „smaž obdélníkovou oblast“, „vykresli kružnici“ či „vypiš text“ atd.

Obrázek 2: Další grafický LCD s rozlišením 128×64 pixelů, který je navíc vybavený ovladačem se sériovým rozhraním. Díky tomu (a taktéž díky podpoře vysokoúrovňových grafických příkazů) lze tento displej celkem jednoduše ovládat i osobním počítačem přes sériový port.
Samotný přenos dat je v tomto případě většinou prováděn přes UART, tj. asynchronní sériový port, což má mj. i tu výhodu, že se grafický displej z tekutých krystalů připojený k takovému řadiči dá ovládat i přímo z osobního počítače (k sériovému portu PC postačuje připojit napěťový konvertor, aby se získaly signály kompatibilní s TTL), takže si programátor může možnosti řadiče jednoduše odzkoušet. Další předností těchto typů řadičů LCD je i to, že většinou obsahují i paměť ROM se znakovou sadou, což znamená, že znakovou sadu není nutné mít uloženou v paměti ROM mikrořadiče, jejíž kapacita bývá, především při použití pouze interních pamětí, relativně malá.

Obrázek 3: Příklad použití displeje s rozlišením 128×64 pixelů pro zobrazení jednoduchého uživatelského rozhraní zařízení s osmibitovým mikrořadičem.
2. Nízkoúrovňová práce s grafickým LCD
V předchozí kapitole jsme si řekli, že ovládání grafických displejů z tekutých krystalů může být v závislosti na použitém řadiči prováděno buď nízkoúrovňově, tj. nastavováním barev či barvových odstínů jednotlivých pixelů, nebo naopak vysokoúrovňově, tj. posíláním složitějších příkazů do řadiče. Příkladem nízkoúrovňového přístupu k práci s LCD je dvojice čipů KS0107B a KS0108B, které lze společně použít pro ovládání monochromatických (dvoubarevných) displejů s maximálním rozlišením 64×64 pixelů a v případě zdvojení čipu KS0108B i pro práci s velmi rozšířenými displeji nabízejícími rozlišení 128×64 pixelů. První ze zmíněných integrovaných obvodů KS0107B slouží ke generování časovacích signálů a signálů ovládajících jednotlivé grafické mikrořádky displeje, zatímco druhý čip KS0108B obsahuje interní RAM o kapacitě 512 bajtů (4096 bitů), v níž je uložena zobrazovaná bitmapa. Právě z kapacity této paměti vychází i maximální podporované rozlišení, protože platí: 64×64 pixelů s 1bpp=4096 bitů (1bpp=jeden bit na pixel).

Obrázek 4: Monochromatický displej s rozlišením 128×64 pixelů vybavený řadičem Novatek NT7534 s paralelním rozhraním i sériovým rozhraním typu SPI.
KS0107B se k mikrořadiči připojuje přes osmibitovou (paralelní) sběrnici, po níž jsou posílány buď přímo barvy pixelů (vždy osmice pixelů v každém bajtu) nebo řídicí příkazy. Vzhledem k tomu, že přímá práce s čipy KS0107B a KS0108B je poměrně únavná (už jen díky tomu, že adresace grafické paměti není lineární), vzniklo pro zjednodušení práce programátorů několik knihoven, které vývojářům nabízí vysokoúrovňovou práci s grafikou. Jedna z těchto knihoven, která je dostupná na adrese http://www.ramtex.dk/glcd/glcd0108.htm, je napsána v jazyce C a lze ji s úspěchem použít pro mnoho typů mikrořadičů, ať již se jedná o popisovanou rodinu MCS-51, tak i o mikrořadiče Motorola 68HC11 (tou se ještě budeme zabývat), mikrořadiči PIC (viz další kapitoly), AVR atd. Tato grafická knihovna programátorům nabízí funkce pro kreslení úseček a obdélníků, základní blokové operace, možnost využití bufferu pro operace Copy & Paste grafického regionu a v neposlední řadě taktéž možnost vykreslování řetězců s volitelnou podporou „širokých znaků“ (v céčku se jedná o datový typ wchar_t), popř. volitelné podpory UTF-8.

Obrázek 5: Barevný displej vyrobený technologií OLED, který je ovládaný řadičem Sino Wealth SH1101A podporujícím (opět) jak paralelní rozhraní, tak i sériové rozhraní SPI.
3. Vysokoúrovňová práce s grafickým LCD
Druhou skupinou řadičů grafických LCD jsou řadiče umožňující vysokoúrovňovou práci s grafikou. Možná poněkud paradoxně bývají tyto řadiče vybaveny mikrořadiči o srovnatelném nebo i větším výkonu, než má MCS-51, ke kterým vývojáři displej i s řadičem připojují. Příkladem tohoto typu řadiče LCD je například modul LCD-09351, který sestává z monochromatického displeje majícího rozlišení až 160×128 pixelů a z pomocných integrovaných obvodů umožňujících připojení celého modulu pomocí asynchronního sériového portu k osobnímu počítači nebo k prakticky libovolnému mikrořadiči.

Obrázek 6: Displej o rozlišení 160×160 pixelů již dokáže zobrazit velké množství informací, ostatně právě toto rozlišení bylo použito u některých PDA.
Přes sériový port (vybavený navíc bufferem o velikosti přesahující 400 bajtů) se dá na displej provádět vykreslování s využitím několika grafických příkazů, například pro kreslení úsečky, kružnice, obdélníku atd. Taktéž lze na libovolné místo grafické plochy vykreslit zadaný text. Přenosová rychlost sériového portu je volitelná, takže vyhoví jak uživatelům připojujících tento modul k osobnímu počítači (115200 bps s jedním stop bitem a bez parity), tak i vývojářům pracujícím s mikrořadiči s pomalejšími přenosovými rychlostmi (4800 bps, 9600 bps atd.).

Obrázek 7: Modul LCD-09351 popsaný v předchozích dvou odstavcích.
4. Základní vlastnosti televizního video signálu
V několika většinou amatérských zapojeních je osmibitový mikrořadič MCS-51 použit i pro přímé generování obrazového signálu, což je z implementačního hlediska velmi zajímavá oblast, která měla zejména v relativně nedávné době (konkrétně před poměrně strmým pádem cen pasivních a posléze i aktivních LCD) i svoje praktické opodstatnění. I dnes je ovšem generování obrazového signálu pro televizor z vývojářského hlediska velmi zajímavé, zejména při pohledu na miniaturní plošný spoj s MCS-51 připojený například k obrovské moderní plasmové televizi :-) Před popisem poměrně jednoduchého způsobu generování televizního signálu pomocí osmibitového mikrořadiče MCS-51 (resp. některé jeho výkonnější varianty) si však nejprve musíme ve stručnosti říci, jaké vlastnosti televizní signál má a jaké důležité složky jsou v něm obsaženy (jedná se především o horizontální a vertikální synchronizaci a s ní souvisejících horizontálních a vertikálních zatemňovacích impulsů).

Obrázek 8: Ukázka grafických schopností počítače PMD 85. Jedná se o původní demo dodávané spolu s Basicem, které však bylo upravené autorem tohoto snímku i počítače (v roce 1985 skutečně žádné URL neexistovaly :-). Tento osmibitový mikropočítač měl grafické rozlišení rovno 288×256 pixelům, což znamená, že z 312,5 řádků každého půlsnímku se na viditelný obraz využilo 256 řádků a zbylé řádky (na horním a spodním okraji obrazovky) byly zatemněny.
Pro jednoduchost se v dalším textu budeme zabývat pouze monochromatickým zobrazením (tj. „černobílou“ televizí, přesněji řečeno zobrazením obrazu ve stupních šedi), protože způsob modulace barvonosného signálu je poměrně složitý a navíc se v tomto ohledu od sebe dosti odlišují normy PAL, SECAM a NTSC (poměrně velké množství projektů pro generování televizního signálu pomocí mikrořadičů je určeno pro NTSC, což znamená nutnost změn různých časových konstant při převodu na v tuzemsku používanou normu PAL). Televizní obraz je na obrazovce vytvářen ze sekvence takzvaných půlsnímků, kde v jednom půlsnímku jsou zobrazeny pouze liché řádky a v dalším půlsnímku pouze řádky sudé (jedná se o takzvané prokládání). To mj. znamená, že televizor pracující v normě PAL (viz další text) sice „papírově“ zobrazuje 25 snímků za sekundu, ovšem ve skutečnosti se vykresluje 50 půlsnímků, které jsou od sebe o jeden obrazový řádek posunuty.

Obrázek 9: Grafické režimy domácích osmibitových mikropočítačů Atari měly vertikální rozlišení rovno 192 obrazovým řádkům, protože byly určeny jak pro připojení k televizorům pracujícím v normě PAL, tak i k televizorům v normě NTSC s nižším počtem obrazových řádků (ostatně právě z tohoto důvodu měla grafická karta CGA vertikální rozlišení rovno pouze 200 pixelům – kvůli kompatibilitě s normou NTSC). Při použití v tuzemských podmínkách bylo možné počet viditelných obrazových řádků zvýšit až na hodnoty cca 224 řádků.
Poměrně velká část zařízení, která se v minulosti připojovala k běžné televizi (například osmibitové domácí počítače), počítala pouze s celým snímkem bez jeho rozdělení na půlsnímky, což s sebou kromě jedné relativně malé nevýhody (snížení vertikálního rozlišení na polovinu – to začalo vadit až například u počítačů Amiga) přinášelo jak zjednodušení celého grafického subsystému, tak i odstranění některých nemilých jevů, které s sebou rozdělení obrazu na půlsnímky přináší. Jedná se zejména o poblikávání barev na kontrastních hranách, rozpad rychle se pohybujících objektů, protože druhý půlsnímek je v čase posunut atd. Mimochodem je zajímavé, že zařízení nainstalovaná přímo u uživatele takový zjednodušený (neprokládaný) televizní signál mohla generovat, i když přesně neodpovídal televizní normě, ovšem televizní stanice musely na základě platných předpisů vždy přenášet signál prokládaný. Jediný rozdíl mezi prokládaným a neprokládaným režimem je v tom, že se díky mírně odlišnému časování neprovádí vertikální posun druhého půlsnímku o jeden televizní řádek (scanline) dolů – jinými slovy se nerozlišují sudé a liché televizní řádky, ale vykreslují se pouze řádky liché, ovšem s dvojnásobnou frekvencí.

Obrázek 10: Osmibitové domácí mikropočítače kompatibilní se ZX-Spectrem využívaly 192 viditelných obrazových řádků z dostupných 312,5 (v případě televizní normy PAL). Na tomto screenshotu je zobrazena hra Sabre Wulf – jedna z úspěšných her firmy Ultimate Play the Game využívající všech vlastností grafického režimu počítačů ZX Spectru.
5. Časování televizního signálu
Pojďme si nyní stručně popsat časování video signálu, protože to je velmi důležité pro jeho úspěšné zobrazení na televizoru (některé časové charakteristiky totiž musí být dodrženy s poměrně velkou přesností). Televizor pracující v normě PAL či SECAM má každý snímek složený z 625 televizních řádků (scanline), což znamená, že každý půlsnímek je rozdělen na 312,5 řádku. Vzhledem k tomu, že frekvence zobrazování půlsnímku je rovna 50 Hz, vykreslí se za jednu sekundu 15625 řádků – tuto hodnotu je (alespoň teoreticky) zapotřebí dodržet velmi přesně, udává se totiž povolená odchylka pouze 0,0001%. Ovšem z praxe je známo, že snímková frekvence u některých osmibitových mikropočítačů připojených na televizi kolísala (pravděpodobně vlivem zahřívání krystalového oscilátoru) a přitom s touto odchylkou neměly televizory žádné vážnější problémy. Ve výpočtech však můžeme pokračovat dále – 15625 řádků za sekundu znamená, že pro zobrazení každého řádku má televizor stanovený časový interval o délce 64 µs.

Obrázek 11: Průběh televizního signálu při zobrazení jednoho barevného obrazového řádku na televizoru pracujícího v normě NTSC (pro PAL a SECAM se mírně odlišují časové údaje zobrazené pod signálem). Oblastí pojmenovanou „color burst“ se nebudeme v dalším textu zabývat – u monochromatického signálu se ostatně nenachází (resp. je nahrazena zatemňovacím pulsem).
V těchto 64 mikrosekundách se musí odehrát vícero věcí. Na začátku i na konci každého televizního řádku se do televizoru neposílají obrazová data, ale zatemňovací impuls mající úroveň nepatrně menší než 0,3V (0.3V odpovídá černé barvě). V intervalu, po který zatemňovací impuls trvá, se elektronový paprsek přesouvá z pravého okraje na levý okraj nového řádku, což vysvětluje, proč se v tomto čase nesmí na obrazovku nic vykreslovat. Ovšem v průběhu zatemňovacího impulsu je nutné taktéž provést synchronizaci obrazu, což se provádí krátkým řádkovým synchronizačním impulsem (HSYNC) na začátku každého televizního řádku, který je definován nulovou úrovní signálu (0V). Po synchronizačním impulsu a zatemňovacím impulsu následuje vlastní „viditelný“ video signál s dobou trvání přibližně 52 mikrosekund, jehož okamžitá úroveň od 0,3V (referenční černá barva) do 1,0V (referenční bílá barva) odpovídá světlosti (luminanci) v daném místě obrazového řádku (poznámka: v některých případech se při modulaci signál invertuje, protože se předpokládá, že případný šum nebude v oblasti černé barvy viditelný).

Obrázek 12: Průběh televizního signálu při zobrazení jednoho monochromatického obrazového řádku na televizoru pracujícího v normě PAL či SECAM.
6. Horizontální a vertikální rozlišení televizoru pracujícího v normě PAL
Pokud je výše zmíněná doba 52 mikrosekund v generátoru signálu (mikrořadiči) vzorkována s určitou konstantní periodou, odpovídá každý vzorek jednomu pixelu. Kromě „běžných“ obrazových řádků se na začátku a konci každého snímku nachází řádky prázdné, v nichž se většinou nezobrazují žádná data (pokud není použit overscan), a to z toho důvodu, že tyto řádky mohou být různě deformovány vlivem zaoblení obrazovky a navíc se během nich musí elektronový paprsek přemístit do levého horního rohu obrazovky, spolu s jeho synchronizací s následujícím snímkem. U mnoha osmibitových počítačů ale i zařízení s mikrořadičem se používá následující konfigurace: ponechává se cca 26 prázdných řádků na horním okraji a cca 27 prázdných řádků na okraji spodním. Navíc jsou tři obrazové řádky určeny pro snímkovou synchronizaci (VSYNC). Opět si zkusíme krátký výpočet: 312 řádků v půlsnímku (zaokrouhleno na celé řádky) – 26 zatemněných řádků nahoře – 27 zatemněných řádků dole – 3 řádky pro snímkovou synchronizaci = 256 viditelných obrazových řádků, což je pro lidi z IT pěkně kulaté číslo :-) Poznámka: ve skutečnosti lze celkem bez obav počet zobrazitelných řádků zvýšit až na hodnotu cca 288, čehož bylo využito například u některých osmibitových domácích mikropočítačů.

Obrázek 13: Vertikální synchronizace půlsnímku zobrazeného na televizoru pracujícího v normě NTSC.
Horizontální rozlišení obrazu je omezeno hlavně rychlostí mikrořadiče, tj. tím, kolik různých hodnot dokáže vygenerovat v rámci aktivní doby zobrazování jednoho řádku (52 mikrosekund). V TV průmyslu se velmi často používá vzorkovací frekvence 13,5 MHz, což odpovídá 702 pixelům na řádku (a po nepatrném prodloužení viditelné části řádku na úkor zatemňovacího impulsu až 720 pixelům) a taktéž 14,75 MHz (768 pixelů na řádku), která má tu výhodu, že pixely jsou čtvercové. Ovšem v praxi se u osmibitových mikropočítačů i systémů založených na mikrořadičích používají nižší horizontální rozlišení, typicky 128, 160, 256 nebo 320 pixelů.

Obrázek 14: Průběh video signálu zobrazený na osciloskopu. Postupně můžeme rozeznat několik částí signálu – dokončení předcházejícího obrazového řádku (vlevo), první část zatemňovacího pulsu, synchronizační puls (nejnižší úroveň = 0V), druhá část zatemňovacího pulsu, color burst, třetí část zatemňovacího pulsu a konečně část vlastního obrazového řádku (zcela vpravo).
V následující tabulce jsou pro porovnání uvedeny některé důležité časové aj. intervaly pro televizní normy PAL a SECAM a taktéž normu NTSC. Povšimněte si, že normy PAL a SECAM mají stejné časování – to je skutečně pravda, protože se tyto normy liší především ve způsobu modulace barvonosného signálu:
Vlastnost | PAL a SECAM | NTSC |
---|---|---|
Počet obrazových řádků | 625 | 525 |
Vertikální frekvence | 50,00 Hz | 59,94 Hz |
Horizontální frekvence | 15 625 Hz | 15 734,25 Hz |
Doba trvání jednoho řádku | 64 µs | 63,5 µs |
Řádková synchronizace | 4,7 µs | 4,7 µs |
Horizontální zatemnění | 12 µs | 10,9 µs |
Doba pro viditelnou oblast | 52 µs | 52,6 µs |
Vertikální zatemnění (řádků) | 25–37 | 39–43 |

Obrázek 15: Průběh video signálu při zobrazení dvou obrazových řádků generovaný mikrořadičem (včetně color burstu).
7. Přímé generování video signálu s využitím MCS-51
V předchozích kapitolách jsme si popsali, i když v poněkud zrychlené a zjednodušené formě, jak má vypadat signál posílaný buď do televizoru přes konektor RCA popř. po rozhraní S-Video (zde ovšem s vynechanou barvonosnou složkou), popř. do takzvaného kompozitního monitoru nebo monitoru vybaveného již zmíněným rozhraním S-Video. Zajímavé a důležité přitom je, že moderní varianty čipu MCS-51 dokážou video signál generovat v reálném čase. Zatímco původní MCS-51 s hodinovou frekvencí 12 MHz dokázal za sekundu provést půl milionu až jeden milión instrukcí (v závislosti na tom, kolik bylo v programu použito „dlouhých“ instrukcí), jsou moderní varianty tohoto mikrořadiče mnohem rychlejší – jak díky zvýšené hodinové frekvenci, tak i díky tomu, že jednu instrukci provádí za jeden až dva takty (jedná se například o mikrořadiče vyráběné firmami SILabs, Dallas a Atmel). Díky této zvýšené rychlosti je možné programově vygenerovat jak horizontální synchronizační puls a zatemňovací impuls, tak i vlastní obrazová data.

Obrázek 16: Testovací vzorek poslaný na televizor.
Při pohledu na video signál na osciloskopu (takový reálný signál je zobrazen na čtrnáctém a patnáctém obrázku v předchozí kapitole), by se mohlo zdát, že pro výstup grafické informace na televizor je zapotřebí vybavit mikrořadič MCS-51 rychlým (nejlépe nízkošumovým) digitálně-analogovým převodníkem. Ve skutečnosti se však v amatérských zapojeních většinou generuje pouze černobílý obraz, v němž se nachází jen zcela černé a zcela bílé pixely. V takovém případě se původně analogový spojitý signál může nahradit vzorkovaným digitálním signálem, který může nabývat pouze čtyř napěťových úrovní: synchronizační puls (0V), zatemňovací impuls (nepatrně nižší úroveň než má černá barva), úroveň odpovídající černé barvě a konečně úroveň odpovídající barvě bílé. Takový signál lze poměrně snadno vytvářet přímým ovládáním tří vstupně/výstupních pinů mikrořadiče MCS-51, k nimž je navíc zapojeno hradlo s otevřeným kolektorem – viz též schéma zobrazené na sedmnáctém obrázku.

Obrázek 17: Jednoduchý D/A převodník pro připojení MCS-51 k nízkofrekvenčnímu televiznímu vstupu.
Funkce tohoto zapojení je jednoduchá. Pokud je některý z pinů mikrořadiče nastaven na logickou jedničku, má příslušné hradlo vysokou impedanci, tj. daný pin můžeme považovat za nezapojený, takže jeden konec k němu připojeného rezistoru „visí ve vzduchu“. Pokud je však pin programově nastaven na nulu, je výstup hradla uzemněn, což znamená, že se změní charakteristiky děliče napětí – nic jiného totiž uvedené schéma nereprezentuje. Nejjednodušší je generování synchronizačního pulsu vytvořeného tak, že se pin P1.4 nastaví na logickou nulu. Příslušné hradlo připojené na vodič Sync sepne a uzemní výstup zapojený do televizoru. Podobným způsobem jsou generovány i ostatní úrovně (ovšem hodnoty rezistorů použité v tomto zapojení je zapotřebí pro televizory pracující v normě PAL/SECAM upravit tak, aby například úroveň zatemňovacího impulsu byla o cca 0,1 V nižší).

Obrázek 18: D/A převodník realizovaný stylem „vrabčí hnízdo“.
8. Osmibitové mikrořadiče PIC
V následující části seriálu o architekturách počítačů budeme pokračovat v popisu osmibitových mikrořadičů. Zaměříme se na známé a rozšířené mikrořadiče z rodiny PIC, především na ty typy, které používají dvanáctibitovou a čtrnáctibitovou instrukční sadu. Tyto mikrořadiče jsou použity ve velkém množství různých elektronických zařízení, kde plní buď funkci plnohodnotného mikrořadiče řídicího ostatní části zařízení, nebo mohou vykonávat „pouze“ nějakou pomocnou činnost, například sbírat data z různých sond, ovládat klávesnici či displej, komunikovat s osobním počítačem po sběrnici I2C či USB, přenášet data po sériovém portu RS-232C atd. Kromě popisu hardwarových parametrů osmibitových mikrořadičů PIC si taktéž popíšeme některá vývojová prostředí, programovací jazyky, překladače a další pomůcky, které jsou vývojářům pracujícím s těmito mikrořadiči k dispozici. Nezapomeneme ani na vývojové kity, které se při vývoji mohou použít.

Obrázek 19: Vývojový kit Amicus s mikrořadičem PIC. Tento vývojový kit byl inspirován kitem Arduino určeným pro mikrořadiče Atmel AVR.
9. Odkazy na Internetu
- PIC microcontroller
http://en.wikipedia.org/wiki/PIC_microcontroller - Mikrokontrolér PIC
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& - The 625/50 PAL Video Signal and TV Compatible Graphics Modes
http://lipas.uwasa.fi/~f76998/video/modes/ - Modul TV terminálu
http://radim.xf.cz/osciloskop/#tv - Microcontrollers development tools
http://www.gnupic.dds.nl/ - gpsim (Wikipedia)
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 - Graphic LCD interfacing with AT89C51
http://www.8051projects.info/tags.asp?tag=graphic+lcd+interfacing+with+at89c51 - Interfacing LCD made easy
http://www.8051projects.info/blogs.asp?view=plink&id=188 - RD2 Kit – HW Description
http://hw-server.com/constrc/rd2kit.html - Programujte v C – RD2 Kit
http://hw.cz/Produkty/ART130-Programujte-v-C---RD2-Kit.html - LCD Interfacing and Microcontroller
http://lcdinterfacing.blogspot.com/2009/11/ks0108b-graphic-lcd-interfacing.html - Serial Graphic LCD 128×64
http://www.sparkfun.com/commerce/product_info.php?products_id=9351 - Crystalfontz Liquid Crystal Displays
http://www.crystalfontz.com/products/index-ser.html - Graphic LCD and OLED displays
http://www.crystalfontz.com/products/graphic_lcd_and_oled_displays.html - Připojení inteligentního displeje k 8051
http://www.dhservis.cz/lcd.htm - Ovládání znakových LCD s řadičem HD44780
http://elektronika.kvalitne.cz/ATMEL/necoteorie/LCDmatice.html - SOH protokol – text a grafika
http://www.acscontrol.com/Index_LcdTerminal.asp?Page=/Pages/Products/Lcd/128×64%20LCD_Display_Terminal_SOH_Protocol.htm - Serial EEPROM (93C46 / 93CS46) Routines
http://www.pjrc.com/tech/8051/serial-eeprom.html - 93CS46 (serial EEPROM) data sheet
http://www.pjrc.com/tech/8051/93CS46.pdf - Microcontroller
http://en.wikipedia.org/wiki/Microcontroller - Great Microprocessors of the Past and Present (V 13.4.0)
http://jbayko.sasktelwebsite.net/cpu.html - Intel 8048 Microcontroller Oral History Panel
http://www.computerhistory.org/collections/accession/102658328 - IMSAI® History: The 8048 Control Computer
http://www.imsai.net/history/imsai_history/imsai_8048_control_computer.htm - 8048
http://coprolite.com/8048.html - IMSAI 8048
http://www.old-computers.com/museum/computer.asp?st=1&c=564 - Intel 8048
http://en.wikipedia.org/wiki/8048 - Tesla Eltos Mikropočítačová stavebnice Petr
http://sites.google.com/site/computerresearchltd/Home/stare-stroje/tesla-eltos-mikropocitacova-stavebnice-petr - Mikropočítačová stavebnice Petr
http://dex.bloguje.cz/770366-mikropocitacova-stavebnice-petr.php - Kosmos CP1
http://de.wikipedia.org/wiki/Kosmos_CP1 - KOSMOS: CP1 / Computer Praxis
http://www.old-computers.com/museum/computer.asp?st=1&c=494 - Great CPU: Part VIII: Intel 8051, Descendant of the 8048 (around 1977?)
http://jbayko.sasktelwebsite.net/cpu1.html#Sec1Part8 - Intel 8051 – Wikipedie EN
http://en.wikipedia.org/wiki/8051 - Intel 8051 – Wikipedie CZ
http://cs.wikipedia.org/wiki/Intel_8051 - Popis mikroprocesoru 8051
http://www.dhservis.cz/popis8051.htm - Jak se naučit programovat (nejen jednočipy)
http://www.dhservis.cz/dalsi1/obsah_popis.htm - 89C1051 series datasheets
http://www.chipdocs.com/datasheets/datasheet-pdf/Atmel-Corporation/89C1051.html - 8051 microcontroller FAQ
http://www.faqs.org/faqs/microcontroller-faq/8051/ - ABOUT THE 8051
http://www.esacademy.com/assets/faqs/8051/2.htm - Mikroprocesor 8051
http://8051.godlike.cz/ - Intel SDK
http://en.wikipedia.org/wiki/Intel_SDK - Old Computer Museum: SDK-51 (MCS-51)
http://oldcomputermuseum.com/intel_sdk51.html - Embedded Systems Development Nexus
http://hypercontinuum.tripod.com/ - 80×51 Microcontrollers webring
http://nav.webring.org/cgi-bin/webring?ring=80×51;home - Intel 8051 Java Simulator/Debugger
http://www.viara.eu/en/j51/ - Intel 8051 Java Simulator/Debugger – download page
http://www.viara.eu/en/j51/#DOWNLOAD - Dot Matrix LCD module Driver Library
http://www.ramtex.dk/glcd/glcd0108.htm - Silicon Labs Pipelined 8051 Microcontrollers
http://www.silabs.com/products/mcu/Pages/8051-microcontroller.aspx - My home-built 8051 Computer
http://roger.trideja.com/8051/8051.html - 8390 Ethernet Tutorial
http://www.8052.com/tcpip/ - Zylogic Semiconductor Corporation
http://www.zylogic.com.cn/english/tools03.htm - 8051 Television Video
http://www.8052.com/users/phillipmgallo/ - 128×64 Graphical LCD
http://www.pjrc.com/tech/8051/board5/lcd_128×64.html - 8051 FAQs
http://www.8052.com/faqs