<?php echo _title;?> www.prochazka.zde.cz
www.ccsinfo.com/CEH
Server si právě čte 352 lidí, dnes je úterý, 26. Listopad 2024   
Kategorie: Programy, HW

Ovládací program pro LCD display s řadičem HD44780

Připojení LCD zobrazovače s řadičem HD44780 k LPT portu PC počítače. Upozornuji: že je potřeba speciální HW a SW, který naleznete na tomto webu...

lcd2 lcd1

Podrobnější informace o LCD display s řadičem HD44780 najdete na: www.hw.cz/docs/lcd_iq_displaye/lcd_iq_dip.html
, ouwehand.net/~peter/lcd/lcd.shtml nebo www.cmail.cz/doveda/lcd/

Katalogový list lze stáhnout z: www.cmail.cz/doveda/lcd/hd44780u.pdf

  • Vývojová deska PIC + XILINX s obvody PIC16F877A a XC9572XL nebo XC95144XL.
  • Ovládání LCD displaye pomocí jednočipových mikrořadičů PIC.

Pokud se stane že program má problémy s přístupem na LPT port počítače, nebo neočekávané ukonči činnost, prosím stáhnete si nejnovější verzi knihovna.dll a adresaportu.dll. z: www.prochazka.zde.cz
Po stáhnutí knihoven na počítač vyhledejte místo uložení programu a nakopírujte nejnovější verze. Není třeba restartovat počítač

Stáhnout připojení LCD zobrazovače s radičem HD44780 k LPT portu pro Win 95, 98 a ME.

Stáhnout připojení LCD zobrazovače s radičem HD44780 k LPT portu pro Win2000 a WinXP (Pro WinNT nebude NIKDY!).

Tento program se NESMÍ POUŽÍVAT pro komerční účely !!!
Program je napsán ve Visuál Basic 6.
Archiv se nesmí prodávat a šířit ve změněné podobě !!!

Popis zapojení konektoru: Na konektor CON1 se připojí kabel z LPT1 portu. Na CON2 se připojí napájecí napěti 5V. A na CON3 se připojí LCD zobrazovač s řadičem HD 44780.

LCD display komunikuje s PC pomocí LPT1 portu a to obousměrně. To zajišťuje IO1 74LS245. Řídící signály R/W , E a RS jsou buzeny přes IO2 7400. A navíc tyto signály mají zpětnou kontrolu (Vstupy na LPT1 10, 11 a 12).

Zapojení obsahuje i obvod ovládání napájecího napětí T1 a T2. T1 je připojen k LPT portu přes omezovací odpor 15K. A budí Tranzistor T2, který ovládá napájecí napětí 5V. Pokud přestane LCD display odpovídat na příkazy proveďte inicializaci příkazem /i . Ale aby se LCD display inicializoval musí se asi na 10 sekund odpojit napájecí napětí a potom muže se provést inicializace. I obvod napájení má zpětnou kontrolu na LPT portu pin 13.

Popis konektoru CON3:

PINSIGNÁLVÝZNAM
1VssGND
2VddNapájejí napětí
3VoNastavení kontrastu
4RSVýběr registru
5R/WČtení/Zápis
6EVstup povolení
7DB0Data/kód 0 (LSB)
8DB1Data/kód 1
9DB2Data/kód 2
10DB3Data/kód 3
11DB4Data/kód 4
12DB5Data/kód 5
13DB6Data/kód 6
14DB7Data/kód 7

Popis konektoru CON1:

PINVÝZNAMBazová adresaBIT
1R/WB+20
2
3
4
5
6DB4B+04
7DB5B+05
8DB6B+06
9BD7B+07
10Kontrola R/WB+16
11Kontrola EB+17
12Kontrola RSB+15
13Kontrola PowerB+14
14EB+21
15
16PowerB+22
17RSB+23
18
19GND
20GND
21GND
22GND
23GND
24GND
25GND

Adresář EAGLE obsahuje zdrojový kód schématu do programu EAGLE 3.55. Schéma je vyexportováno do formátu poscript a PDF.

Adresář DEMO obsahuje zdrojáky do VB6 a exe program na spustení dema na LCD display, který provede inicializaci a každou minutu volá program Ovladac_LCD.exe s parametrem /cr xxxx.

Program Ovladac_LCD.exe se spouští s parametrem! Pokud nezadáte žádný parametr, tak se ukážou informace o programu (ABOUT) a nápověda. Tam jsou uvedeny všechny příkazy.

Pokud něco není s hardwarem v pořádku, program Ovladac_LCD.exe ohlásí některou s následujících chyb:

  • Problém s HW LCD Display v sexci Power zapnout! - Nelze zapnou napájecí napětí. Pravděpodobně schází zdroj napájení.
  • Problém s HW LCD Display v sexci Power vypnout! - Nelze vypnou napájecí napětí. Spínač nepracuje správně (obvod s Tranzistory T1 a T2).
  • Problém s HW LCD Display v sexci BSF_e - Nelze nastavit signál E na log.1. IO 7400 nepracuje správně, nebo chybí napájecí napětí.
  • Problém s HW LCD Display v sexci BCF_e - Nelze nastavit signál E na log.0. IO 7400 nepracuje správně, nebo chybí napájecí napětí.
  • Problém s HW LCD Display v sexci BSF_rs - Nelze nastavit signál RS na log.1. IO 7400 nepracuje správně, nebo chybí napájecí napětí.
  • Problém s HW LCD Display v sexci BCF_rs - Nelze nastavit signál RS na log.0. IO 7400 nepracuje správně, nebo chybí napájecí napětí.
  • Problém s HW LCD Display v sexci BSF_rw - Nelze nastavit signál RW na log.1. IO 7400 nepracuje správně, nebo chybí napájecí napětí.
  • Problém s HW LCD Display v sexci BCF_rw - Nelze nastavit signál RW na log.0. IO 7400 nepracuje správně, nebo chybí napájecí napětí.

V těchto případech muže nastat že požadovaný signál se na výstupu nachází, ale přesto program hlásí některou z předchozích chyb. Zkontrolujte zpětnou vazbu, kabel.

  • Problém s HW LCD Display v sexci LCD BUSY! - V tomto případe neodpovídá LCD display. Příčin muže být několik.: Špatná inicializece, Vadný IO 74LS245, vadný kabel, Nefunkční LCD display nebo nefunkční signál RW.

Pokud použijete kvalitní součástky, kvalitní kabel a pracujete pečlivě, zapojení musí fungovat napoprvé.

P.S. dávejte si pozor na nekvalitní pájenej spoj (studený spoj), takový spoj na první pohled vypadá dobře ale přitom nejsou součástky vodivě spojeny!

Program zná ještě další chyby, které jsou už softwarové povahy:

  • Číslo není v rozmezí 0 až 255! - Není k tomu co dodat.
  • Problém s SW Ovladačem v sexci cr:xxxx! - Tato chyba by NIKDY neměla nastat. Příčina: špatný CPU nebo pamět RAM.
  • Problém s SW Ovladačem v sexci Čas! ! - Tato chyba by NIKDY neměla nastat. Příčina: špatný CPU nebo pamět RAM.
  • Aplikace už jednou běží! - Aplikace muže běžet pouze v jedné kopii na tomto počitači!
  • Nezadal jsi žádný příkaz! - Spustili jste program Ovladac_LCD.exe bez parametru! Zadejte "ovladac_lcd.exe /?" pro nápovědu.

Po zadání příkazu pro nápovědu se zobrazí následující hepl. Pokud některé funkce potřebují vetší vysvětlení, tak obsahuji tlačítko s podrobnostmi. Ale je opravdu potřeba prostudovat datasheed k LCD display. Tam je popis jak takový obvod programovat a nebo používat jen příkazy které nevyžadují žádnou znalost LCD. To jsou příkazy: /i, /cr, /m, /s a /c. Ostatní (/wc, /ch, /sdram, /em, /dm, /sgram a neimplementovaná /gacc) vyžadují znalost programování LCD displaye. Pokud má o tuto funkci někdo zájem je ji potřeba dodělat. Největší problém se mne jeví jak předávat prostřednictvím *.exe souboru parametry.

help_ovladac_lcd

Ovládaní LCD display:

   Program Ovladac_LCD.exe provádí jen obsluhu inteligentního LCD display kompatibilní s řadičem HD44780.
Před započetí jakékoliv komunikace je potřeba LCD display inicializovat. To se provede pomocí příkazu /i nebo /init. Který je uveden jako parametr ovládacího programu Ovladac_LCD.exe. Provede nastavení 4-bitové komunikace a inicializaci důležitých parametru. Tento příkaz se provádí 10 sekund!

Příklad:
Ovladac_LCD.exe /i
nebo
Ovladac_LCD.exe /init

Upozornění : Po provedení příkazu je potřeba vždy spustit program Ovladac_LCD.exe s nějakým příkazem. A po provedení příkazu se program ukončí. Takže je potřeba neustále spouštět program Ovladac_LCD.exe s nějakým parametrem. To potom umožňuje program ovládat bud z příkazové řádky nebo nějakého *.bat souboru připadne z jakéhokoliv programovacího jazyka který je schopen spustit *.exe soubor s požadovaným parametrem.

Po provedení inicializace se už muže jakkoliv komunikovat s LCD displayem.

Přepínač neboli příkaz /cr slouží pro výpis dostupných kreditu. Tato funkce je implementována na žádost mého kámoše který v tu domu měl hernu a tento program mu sloužil jako informace pro hráče jak ještě dlouho pojede PC. Jiný význam nemá!

Příkaz /m nebo /mezera jak už je patrno vytvoří jednu mezeru, respektive posune kurzor výpisu o jednu pozici doprava.

Přiklad:
Ovladac_LCD.exe /m
nebo
Ovladac_LCD.exe /mezera

Příkaz /a nebo /about to jsou informace o aplikaci.

Příkaz /setup už z nazvu je patrno že zde se dá provádět nastavení programu. Tato funkce je nedokončena.

Příkaz /wc je to nízkoúrovňoví příkaz LCD display. Pomocí tohoto příkazu můžete provádět jakoukoliv operaci kterou LCD display zná. Ale vyžaduje znalost instrukcí. Například ekvivalent pro příkaz /cls je příkaz /wc 1 nebo příkaz který zapne kursor a blikání znaku na kurzoru je /wc 11. V binární podobě číslo 11 je 00001011. Pomocí tohoto příkazu můžete nahradit všechny ostatní příkazy pro práci s LCD displayem. Ale pro komfortnější obsluhu program Ovladac_LCD.exe obsahuje nejpoužívanější přepínače.

Příkaz /s (string) a další parametr je prosty text bez mezer. Respektive se vytiskne text po první mezeru. Text se neuzavírá do žádných závorek, uvozovek a apostrofu.

Příklad:
Ovladac_LCD.exe /s ahoj text

na display se zobrazí pouze text ahoj!!! Pokud chcete zobrazit opravdu text: ahoj text
Tak je potřeba za slovo ahoj vložit mezeru (příkaz /m) a potom zobrazit zbytek textu.

Příklad:
Ovladac_LCD.exe /s ahoj
Ovladac_LCD.exe/m
Ovladac_LCD.exe /s text

Na LCD displayi se zobrazí text: ahoj text

Příkaz /c nebo /cls smaže všechny texty na display.

Příkaz /ch nastaví kurzor na řádek 1 a první znak!

Příkaz /sdram (Set display data RAM address). Nastavení adresy DD RAM. Bit 0 až 6 je adresa DD RAM a Bit 7 je ignorován. Ale ve vlastním zajmu ho nastavte na 0. Po tomto příkazu musíte provést příkaz /w pro zapsání požadovaných dat.

Příkaz /em (Entry mode). Nastavení módu vstupu dat. Když bit 0 má hodnotu 0, tak informace na displayi se neposouvají ale pokud bit 0 je hodnoty 1, potom celý display se posouvá. Směr kterým se provádí posun se nastaví v bitu 1 tohoto příkazu. Pokud bit 1 obsahuje hodnotu 0 tak se provádí posun doleva. Při hodnotě 1 bitu 1 je směr doprava. Ostatní bity jsou ignorovány. Ale ve vlastním zajmu ho nastavte na 0.

Příkaz /dm (Display mode). Zapne/vypne display, kurzor a jeho blikání.
Bit0 : 0 = blikání kurzoru vypnuté, 1 = blikání kurzoru zapnuté.
Bit1 : 0 = Kurzor vypnutý, 1 = kurzor zapnutý.
Bit2 : 0 = display vypnutý. 1 = display zapnutý (toto se provede při inicializaci příkazem /i)
ostatní bity jsou ignorovány. Ale ve vlastním zajmu ho nastavte na 0.

Příkaz /sgram (Set character generator RAM address). Nastaví pozici v CGRAM. Bity 0 až 5 je adresa CGRAM paměti. Bity 6 a 7 jsou ignorovány. Ale ve vlastním zajmu ho nastavte na 0. Po tomto příkazu musíte provést příkaz /w pro zapsání požadovaných dat.

   Příkaz /gacc a jakékoliv čtení není implementován protože jsem nevyřešil jak rozumném způsobem vracet hodnoty po ukončení programu Ovladac_LCD.exe. Řešení že se předělá program do *.dll knihovny jsem nechtěl, protože potom by nešly vytvářet různé scripty a další podobné vychytávky.

Schéma zapojeni LCD display pro program ovladac_lcd.exe

sch_ovladac

print Formát pro tisk

Komentáře rss

Přidat komentář >

, Dobrý den odpovědět
avatar
To je opravdu skvělé, že jsem hledat pro celou tuto dobu. děkuji za tuto informaci, váš web je skvělé. safety vest

Všechny informace jsou zahrnuty pod GPL licenci, pokud není explicitně uveden jiný typ licence.
Používání těchto stránek ke komerčním účelům lze jen se souhlasem autora.
Všechna práva vyhrazena (c) 1997 - 2024 hacesoft.
Jste návštevník číslo: 445558
Celkem zobrazeno stránek: 17753693
Přihlásit do administrace