Hlavní navigace

Mikrořadiče a jejich aplikace v jednoduchých mikropočítačích (5)

24. 8. 2010
Doba čtení: 19 minut

Sdílet

V dnešní části seriálu o architekturách počítačů si popíšeme některé způsoby ovládání LCD umožňujících práci s rastrovou grafikou, i když většinou pouze monochromatickou. Taktéž se budeme zabývat několika projekty, jejichž cílem bylo generování obrazu pomocí MCS-51 přímo na televizní obrazovce, popř. na obrazovce monitoru.

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

9. Odkazy na Internetu

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.ram­tex.dk/glcd/glc­d0108.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ů).

pmd85

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í.

pc108

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ízkofrek­venč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“.

skoleni

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

  1. PIC microcontroller
    http://en.wiki­pedia.org/wiki/PIC_mi­crocontroller
  2. Mikrokontrolér PIC
    http://cs.wiki­pedia.org/wiki/Mi­krokontrolér_PIC
  3. FLASHFORTH for the PIC18F and the dsPIC30F
    http://flashf­orth.sourcefor­ge.net/
  4. FlashForth
    http://www.sou­rceforge.net/pro­jects/flashfor­th
  5. Free Pic software tools
    http://softwa­repic.50webs.com/fre­esoft.html
  6. What is Amicus?
    http://www.pic­basic.org/pro­ton_lite.php
  7. Amicus FAQ
    http://www.my­amicus.co.uk/faq­.php?s=2e8d12e7f4c23e775­776f4916876354b&
  8. The 625/50 PAL Video Signal and TV Compatible Graphics Modes
    http://lipas.u­wasa.fi/~f76998/­video/modes/
  9. Modul TV terminálu
    http://radim.xf­.cz/osciloskop/#tv
  10. Microcontrollers development tools
    http://www.gnu­pic.dds.nl/
  11. gpsim (Wikipedia)
    http://en.wiki­pedia.org/wiki/Gpsim
  12. gpsim home page
    http://gpsim.sou­rceforge.net/gpsim­.html
  13. The FreeRTOS Project
    http://www.fre­ertos.org/
  14. FreeRTOS (Wikipedia)
    http://en.wiki­pedia.org/wiki/Fre­eRTOS
  15. Graphic LCD interfacing with AT89C51
    http://www.8051pro­jects.info/tag­s.asp?tag=grap­hic+lcd+inter­facing+with+at89c51
  16. Interfacing LCD made easy
    http://www.8051pro­jects.info/blog­s.asp?view=plin­k&id=188
  17. RD2 Kit – HW Description
    http://hw-server.com/con­strc/rd2kit.html
  18. Programujte v C – RD2 Kit
    http://hw.cz/Pro­dukty/ART130-Programujte-v-C---RD2-Kit.html
  19. LCD Interfacing and Microcontroller
    http://lcdinter­facing.blogspot­.com/2009/11/ks0108b-graphic-lcd-interfacing.html
  20. Serial Graphic LCD 128×64
    http://www.spar­kfun.com/commer­ce/product_in­fo.php?produc­ts_id=9351
  21. Crystalfontz Liquid Crystal Displays
    http://www.crys­talfontz.com/pro­ducts/index-ser.html
  22. Graphic LCD and OLED displays
    http://www.crys­talfontz.com/pro­ducts/graphic_lcd_an­d_oled_displa­ys.html
  23. Připojení inteligentního displeje k 8051
    http://www.dhser­vis.cz/lcd.htm
  24. Ovládání znakových LCD s řadičem HD44780
    http://elektro­nika.kvalitne­.cz/ATMEL/neco­teorie/LCDmati­ce.html
  25. SOH protokol – text a grafika
    http://www.ac­scontrol.com/In­dex_LcdTerminal­.asp?Page=/Pa­ges/Products/Lcd/128×6­4%20LCD_Displa­y_Terminal_SOH_Pro­tocol.htm
  26. Serial EEPROM (93C46 / 93CS46) Routines
    http://www.pjrc­.com/tech/8051/se­rial-eeprom.html
  27. 93CS46 (serial EEPROM) data sheet
    http://www.pjrc­.com/tech/8051/93CS46­.pdf
  28. Microcontroller
    http://en.wiki­pedia.org/wiki/Mi­crocontroller
  29. Great Microprocessors of the Past and Present (V 13.4.0)
    http://jbayko­.sasktelwebsi­te.net/cpu.html
  30. Intel 8048 Microcon­troller Oral History Panel
    http://www.com­puterhistory.or­g/collections/ac­cession/102658328
  31. IMSAI® History: The 8048 Control Computer
    http://www.im­sai.net/histo­ry/imsai_histo­ry/imsai_8048_con­trol_computer­.htm
  32. 8048
    http://coproli­te.com/8048.html
  33. IMSAI 8048
    http://www.old-computers.com/mu­seum/computer­.asp?st=1&c=564
  34. Intel 8048
    http://en.wiki­pedia.org/wiki/8048
  35. Tesla Eltos Mikropočítačová stavebnice Petr
    http://sites.go­ogle.com/site/com­puterresearchltd/Ho­me/stare-stroje/tesla-eltos-mikropocitacova-stavebnice-petr
  36. Mikropočítačová stavebnice Petr
    http://dex.blo­guje.cz/770366-mikropocitacova-stavebnice-petr.php
  37. Kosmos CP1
    http://de.wiki­pedia.org/wiki/Kos­mos_CP1
  38. KOSMOS: CP1 / Computer Praxis
    http://www.old-computers.com/mu­seum/computer­.asp?st=1&c=494
  39. Great CPU: Part VIII: Intel 8051, Descendant of the 8048 (around 1977?)
    http://jbayko­.sasktelwebsi­te.net/cpu1.html#Sec1Par­t8
  40. Intel 8051 – Wikipedie EN
    http://en.wiki­pedia.org/wiki/8051
  41. Intel 8051 – Wikipedie CZ
    http://cs.wiki­pedia.org/wiki/In­tel_8051
  42. Popis mikroprocesoru 8051
    http://www.dhser­vis.cz/popis8051­.htm
  43. Jak se naučit programovat (nejen jednočipy)
    http://www.dhser­vis.cz/dalsi1/ob­sah_popis.htm
  44. 89C1051 series datasheets
    http://www.chip­docs.com/datashe­ets/datasheet-pdf/Atmel-Corporation/89C1051­.html
  45. 8051 microcon­troller FAQ
    http://www.faq­s.org/faqs/mi­crocontroller-faq/8051/
  46. ABOUT THE 8051
    http://www.esa­cademy.com/as­sets/faqs/8051/2­.htm
  47. Mikroprocesor 8051
    http://8051.go­dlike.cz/
  48. Intel SDK
    http://en.wiki­pedia.org/wiki/In­tel_SDK
  49. Old Computer Museum: SDK-51 (MCS-51)
    http://oldcom­putermuseum.com/in­tel_sdk51.html
  50. Embedded Systems Development Nexus
    http://hypercon­tinuum.tripod­.com/
  51. 80×51 Microcontrollers webring
    http://nav.we­bring.org/cgi-bin/webring?rin­g=80×51;home
  52. Intel 8051 Java Simulator/Debugger
    http://www.vi­ara.eu/en/j51/
  53. Intel 8051 Java Simulator/Debugger – download page
    http://www.vi­ara.eu/en/j51/#DOW­NLOAD
  54. Dot Matrix LCD module Driver Library
    http://www.ram­tex.dk/glcd/glc­d0108.htm
  55. Silicon Labs Pipelined 8051 Microcon­trollers
    http://www.si­labs.com/produc­ts/mcu/Pages/8051-microcontroller­.aspx
  56. My home-built 8051 Computer
    http://roger.tri­deja.com/8051/80­51.html
  57. 8390 Ethernet Tutorial
    http://www.8052­.com/tcpip/
  58. Zylogic Semiconductor Corporation
    http://www.zy­logic.com.cn/en­glish/tools03­.htm
  59. 8051 Television Video
    http://www.8052­.com/users/phi­llipmgallo/
  60. 128×64 Graphical LCD
    http://www.pjrc­.com/tech/8051/bo­ard5/lcd_128×6­4.html
  61. 8051 FAQs
    http://www.8052­.com/faqs

Autor článku

Pavel Tišnovský vystudoval VUT FIT a v současné době pracuje ve společnosti Red Hat, kde vyvíjí nástroje pro OpenShift.io.