Diskuse s uživatelem:Cuchypet

Z HPM wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Časování řadiče)
(Stránka vyprázdněna)
 
Řádka 1: Řádka 1:
== LCD displej MC1604C-SYC ==
 
* je čtyř-řádkový alfanumerický displej, každý řádek má 16 znaků.
 
* jeho komunikaci a ovládání zajištuje řadič HD44780. 
 
* je možné použít buď komunikaci po 8bitech nebo po 4 bitech.
 
  
[[Soubor: LCD12.JPG]][[Soubor: LCD22.JPG]]
 
== Elektrické parametry ==
 
[[Soubor:ele.JPG]]
 
 
Displej je napájen stejnosměrnými 5V. Napájení pro podsvícení je také 5V.Proud pro podsvícení bude nejspíše trochu vyšší než 90mA,
 
protože toto jsou hodnoty pro dvouřádkový displej.
 
Úrovně logických hodnot jsou pro log „0“ 0-0,8 V a pro log“1“ zhruba 2,8-5 V.
 
Dále tu stojí za zmínění napětí pro nastevní konstrastu, ketré se značně mění s teplotou LCD, pro nás optimálně přichází v úvahu Vo=4,8V, je tedy nutno vložit dělič.
 
 
 
=== Rozložení pinů ===
 
[[Soubor:Piny2.JPG]]
 
 
*1. GND (zem)
 
*2. VDD napájení 5V
 
*3. V0 napětí pro nastavení kontrastu
 
*4. RS výběr přenosu dat  nebo příkazu (příkaz=0, data=1)
 
*5. R/W nastavení četní/zápis (čtení=1, zápis=0)
 
*6. E vstup povolení
 
*7. -  14. data/příkaz (dolní bit- 7., horní bit – 14.)
 
*15.               anoda podsvícení  5V(+)
 
*16.       katoda podsvícení
 
 
=== Časování řadiče ===
 
Když nenačítáme příznak zaneprázdnění displeje, musime prostudovat časové zpozdění jednotlivých ukonů displeje a vzájemných signálů.
 
 
[[Soubor:Time2.JPG]]
 
 
Důležítá je perioda časovacícho signálu Tcycle (min. 1us), dále pak PWEH  (min. 0,45us), což je délka taktovacího signálu E. Popř. čas pro tDSW (min. 0,195us) jedná se o minimální čas pro načtení všech datových proměných.
 
Dále musíme vzít v potaz na jednotlivé časy provedení určitých příkazů do řadiče, s tím se seznámíme v dalsí části příkazy. Je zřejmé, že nejdéle trvá inicializace displeje (při zapnutí napájení a nastavení řadiče).
 
 
==Řadič HD44780==
 
Řadič disponuje dvěmi pamětí RAM.
 
*DDRAM - obsahuje znaky, které chceme zobrazit. Rozsah adres – 7bitů
 
*CGRAM - paměťové místo, keré nám umožňuje definovat si až 8 nových znaků.Rozsah adres - 6bitů.
 
 
[[Soubor:DDRAM.JPG]]
 
===Mapa znaků ===
 
[[Soubor:Znaky.JPG]]
 
 
Z obrázku vidíme jednotlivé zabrazitelní znaky uložené v paměti DDRAM. Adresa je hexadecimálně a horní bit odpovídá sloupcům a dolní bit řádkům. Chceme-li zobrazit například znak“A“ pošleme hodnotu 41h, což odpovídá 0100 0001b  na vstupy D0 až D7.
 
 
===Generování nových znaků===
 
Jak již bylo zmíněno, ke generování nových znaků nám slouží paměť CGRAM. Adresace pomocí 6bitů. Každý znak je zanesen do pole 8x8 bodů, přičemž se standartně používá  jen 5x7 bodů (je to kvůli mezerám mezi řádky a jednotlivými písmeny). Pomocí adresování 6bitů získáme 64 adres,  kadé nové písmeno má 8 řádků,tzn. 8 nových možných znaků.
 
 
[[Soubor:New.JPG]]
 
 
===Instrukce řadiče ===
 
 
Jednotlivé příkazy pro náě řadič potřebují různou dobu trvání, ta se musí dodržet, jinak hrozí nesprávná fuknce zadaného příkazu. V tabulce 3 vidíme jednotlivé příkazy, doby jejich trvání a jejich funkci. K nejdůležitějsím pro nás patří příkazy:
 
 
*Vymaž displej - vymazání celého displeje a nastavení na první znak na prvním řádku
 
*Návrat na začátek - obsah DDRAM zachován, adresa nastavena na 00h
 
*Nastavení komunikace - 8bit nebo 4 bitová
 
*Zapnutí/vypnutí displeje-  celého dspleje, kurzoru, popř. zapnutí blikání kurzoru
 
*Režim - posuv kurzoru(inkrementace-dekrementace)
 
*Nastavení adresy - CGRAM(6 bitů, 8 podřádku na znak), DDRAM (adresa pozice znaku na displeji 7bitů)
 
*Poslání dat - do CGRAM nebo DDRAM
 
 
[[Soubor:Instrukce.JPG]]
 
 
*X - libovolná hodnota
 
*I/D - (1)inkrementace,(0)dekrementace
 
* S - (0)normální práce,(1)posun displeje po zapsání hodnoty
 
*D - (1)zapnut,(0)vypnut displej
 
*C - (1)zobrazování kurzoru zap, (0)vypnuto
 
*B - (1)blikání kurzoru zapnuto, (0) vypnuto
 
*S/C - posun displeje jsou-li zapsána data(1),posun kurzoru jsou-li zapsána data (0)
 
*R/L - posun doprava(1), doleva(0)
 
*DL - 8 bitová komunikace (1), 4 bitová komunikace(0)
 
*N - dva řádky(1), jeden řádek (0)
 
 
==Inicializace displeje==
 
 
[[Soubor:Inicializace.JPG]]
 
 
Inicializace displeje probíhá po každém spuštění nebo  přivedení napájení displeje. Je nutná pro správné nastavení chodu a komunikace displeje. Je odlišná pro 8 a 4 bitovou komunikaci. Program který má za úkol řídít tento displej musí být upraven také na potřebné intervaly jednotlivých příkazů displeje.
 
 
Je zřejmé že musíme zajistit v programu minimálně 15ms po naběhnutí napájení, aby se nic nezapisovalo na výstupní bránu pro displej. První krok je nastavení komunikace pro 8 bitů. To musíme poslat celkem 3krát  s uvedenými nimimálními dobami zpoždění. Dále nás pak čeká nastavení vlastního displeje. Displej je vymazán a připraven na zápis hodnot.
 
 
===Napájení displeje===
 
Jak již bylo řečeno tento displej má napájení pro řadič VDD ,dále pak napájení pro podsvícení piny A, K, a na konec důležitá věc  nastavení kontrastu displeje,protože při špatném nastavení napětí V0 se nám nezobrazí žádný znak, či naopak budou mít tak vysoký kontrast, že se budou zobrazovat jen celá černá políčka. Největší problém je s teplotní kompenzací- kontrast displeje a tím napětí pro kontrast je závislé na teplotě.
 

Aktuální verze z 15. 12. 2011, 10:46

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje