Zobrazovací plocha grafických displejů je tvořena oblastí bodů (pixelů), které jsou adresovány prostřednictvím řadičů displejů. Vysoké množství adresovaných bodů klade na řídící mikroprocesor vysoké paměťové nároky, např. při rozměru obrázku 128 x 64 je zapotřebí 1024 Byte programové paměti. Pro obrázky s pravidelným tvarem nebo s převahou prázdných ploch je možné zavést kompresi, která výrazně snižuje paměťové nároky u řídícího mikroprocesoru.
Transformaci obrázků do kódu mikroprocesoru lze usnadnit použitím aplikace pro automatickou konverzi a kompresi obrázků z formátu *.BMP do programového kódu.
Image Converter v1.1
Aplikace Image Converter umožňuje velmi snadnou a rychlou konverzi vašich obrázků do tabulky pro LCD grafický display (grafický modul) připojený k mikroprocesoru. Image Converter umožňuje konverzi obrázků do tří typů kompresních formátů (None, Zero a Full) a do čtyř programovacích jazyků (ASM, Pascal, Basic a C). Ke své činnosti vyžaduje operační systém Windows 9x / Me, Windows NT / 2000 / XP.Parametry
- Rychlá a snadná konverze obrázků (*.BMP) formát 1x1 až 320x240 pixelů
- Tři typy konverzí (None, Zero and Full)
- Čtyři typy programovacích jazyků (ASM, Pascal, Basic a C)
- Nastavení meze pro převod barevných obrázků na obrázky černobílé
- Knihovny v jazyce ASM51 a C pro práci s obrázky a textem (32 to 128 ASCII)
Použitelné pro LCD s řadičem S6B0107 a S6B0108 (KS107 a KS108) - EL6464, PG12856, PG12864, EL12864, EL24064
Aplikace Image Converter umožňuje překlad obrázků o formátu 1x1 až 320x240 pixelů do tří kompresních typů None, Zero a Full a do čtyř programovacích jazyků (ASM, Pascal, Basic a C).
Displej 128x64 je rozdělen na dvě poloviny, z nichž každá je řízena jedním z řadičů KS107. Vznikají tím dvě samostatné oblasti vybírané signály CS0 a CS1. Každá z těchto oblastí je dále rozdělena na 8 stránek po 64 bytech, viz obr. 2.
Vysvětlení konverze
Pro vysvětlení činnosti konverze použijeme jednoduchý obrázek tvořený ze čtyř černých a bílých čtverců. Každý čtverec má rozměr 8x8 pixelů. Tento obrázek je možné konvertovat do třech kompresních typů (None, Zero a Full).Ve všech typech konverzí znamenají v konvertovaném kódu první tři Byte výšku (řádky), šířku (pixely) a typ komprese (None = 0x00, Zero = 0x01 a Full = 0x02).
Obrázek je konvertován po jednotlivých řádcích o výšce 8x pixelů.
None (0x00)
Konvertovaná data plně odpovídají obrázku (beze změn). Tento typ konverze je výhodný pro nepravidelné obrázky.Zero (0x01)
Data jsou uložena v jednoduchém typu komprese. Při výskytu Byte s hodnotou nula vždy další Byte za touto nulou znamená počet výskytů těchto nul. Konverze je výhodná pro obrázky s převahou bílých (prázdných) ploch.Full (0x02)
V tomto typu konverze za každým Byte následuje informace o počtu výskytů tohoto Byte. Konverze je vhodná pro pravidelné obrázky.Příklad převodu obrázku
Konveze None0x02,0x10,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF Konveze Zero0x02,0x10,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00, 0x10,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF Konveze Full0x02,0x10,0x02,0xFF,0x08,0x00,0x10,0xFF,0x08 |
Obr. 3 - Příkladný obrázek ke konverze 16 x 16 pixelů |
Postup konverze a zobrazení
- Otevřete obrázek (*.BMP).
- Nastavte mez pro černou a bílou (pouze pro barevné obrázky).
- Zvolte kompresní typ a programovací jazyk.
- Proveďte konverzi stiskem tlačítka Convert.
- Zkopírujte vytvořenou tabulku do vašeho programového kódu mikroprocesoru.
- Zavolejte rutinu DISP_ICON s odkazem na tabulku a pozici zobrazení obrázku.
Příklad implementace v jazyce C
#include#include #include "Disp.h" // Knihovní podpora #include "Image.h" // Knihovna s obsahem konvertovaného obrázku void main(void) { PAUSE(5); DISP_INIT(); for(;;) { DISP_ICON(Head,0,0); // 1. Zobrazení obrázku (obrázek, pozice řádek,sloupec) PAUSE(20); DISP_TEXT("Hello",5,0,7,45); // 2. Zobrazení textu (text,délka,výška,pozice řádek,sloupec) PAUSE(20); DISP_TEXT("Hello",5,1,6,35); // 3. Zobrazení textu (text,délka,výška,pozice řádek,sloupec) PAUSE(20); } }
1. Zobrazení obrázku |
2. Zobrazení obrázku |
3. Zobrazení obrázku |
Schéma zapojení LCD displeje EL12864A a procesoru AT89C51
Připojení grafického displeje k mikroprocesoru se provádí pomocí osmi datových linek DB0 až DB7 a čtyř řídící vodičů E, D/I, CS0 a CS1. Při připojení datových linek k portu P0 mikroprocesoru je vhodné připojit k těmto linkám zvedací odpory RN1 = 10kΩ .Závěr
Aplikace Image Converter výrazně usnadňuje převod obrazových formátů pro zobrazení na grafických LCD. Vzhledem k neustále klesajícím cenám těchto displejů přichází Image Converter právě včas.
Ing.Radek Taraba
radek.taraba@ post.cz
DOWNLOAD & Odkazy
- Image Converter - imgconv.zip