Programowanie w języku Delphi » Artykuły

Sterowanie wyswietlaczem LCD przez port LPT

  • 2006-06-18 09:15
  • 8 komentarzy
  • 1278 odsłon
  • Oceń ten tekst jako pierwszy
Ponieważ sam długo szukałem, ale w końcu znalazłem, więc podzielę się tym, co wiem.

Skorzystałem z freeware'owego  zlportio [jest np. na stronce Torry's Delphi...]. Oczywiście pod NT (XP/2K) trzeba doinstalować obsługę portu [google i port95nt3.exe]. Podstawowe elementy kodu:

const
  Data    = $378; // domyślny adres portu
  Status  = Data + 1; 
  Control = Data + 2; 
 
//Posłużyłem się dwoma procedurami:
 
procedure LCD_WriteCommand(a: Byte);
// Wysylanie komend sterujacych
begin
  zlioportwrite(Data, 0, a);
  Sleep(5);
  zlioportwrite(Control, 0, $02);
  Sleep(5);
  zlioportwrite(Control, 0, $03);
  Sleep(5);
end;
 
procedure LCD_WriteData(a: Byte);
// Wysylanie danych
begin
  zlioportwrite(Control, 0, $06);
  Sleep(5);
  zlioportwrite(Data, 0, a);
  Sleep(5);
  zlioportwrite(Control, 0, $07);
  Sleep(5);
end;
 
//Procedura inicjalizacji może wyglądać np. tak
procedure LCD_Init;
begin
  LCD_WriteCommand($38);
  Sleep(20);
  LCD_WriteCommand($06);
  Sleep(20);
  LCD_WriteCommand($0C);
  Sleep(20);
  LCD_WriteCommand($01);
  Sleep(20);
end;
 
//Czasem LCD może "nie załapać" startu, więc $38 można posłać dwa, trzy razy.
 
//Potem jest już z górki ;-) 
LCD_WriteCommand($01) to czyszczenie ekranu
LCD_WriteCommand($02) to powrót kursora na początek
 
//a wysłanie tekstu:
 
procedure LCD_StringSend(S: String);
var
  i: Byte;
begin
  for i := 1 to Length(S) do LCD_WriteData(Ord(S[i]));
end;


Wiem, że to banalne, ale trzeba trochę poszukać. Pozostałe komendy sterujące są w pdf HD44780. Mam nadzieję, że komuś się to przyda ;-)

Jacek

8 komentarzy

extralive 2008-02-03 16:06

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒  Najlepiej  to  pobrać  sobie  jakiś  program do  sterowania  wyświetlaczem                    ▒
▒    np  LCD  Ekspert                                                                                                    ▒
▒  i  jeśli  nam  czegoś  brakuje  to  napisać  do  autora  programu.                                  ▒
▒     Ja  już  tak  zrobiłem  i  w następnej  wersji  już  ta  funkcja  się  pojawiła.                 ▒    
▒                                                                                                                                 ▒
▒  Pozdrawiam                                                                                                              ▒
▒                                                                                                                                                                                                                                                                               ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

maciuso 2010-06-15 01:34

Witajcie, uruchomiłem forum o wyświetlaczach LCD pod LPT pod adresem www.lcdstudio.com.pl. Zapraszam wszystkich do pisania i rozwijania tematu.

MarekJ. 2004-07-18 19:21

A jaki schemat podłączenia wyświetlacza do portu LPT użyłeś?

P.P.P. 2004-07-01 13:46

Wystarczy Sleep(2); .... (wiem z autopsji...)
Wrzucę niedługo komponent do tego (kiedyś coś takiego robiłem)....
Idzie o LCD z chipem HD44780 - dostępne w sklepach z elektroniką ...

JacekH 2004-05-24 15:11

Generalnie - pytałem na forum, szukałem na nim i odpowiedzi nie znalazłem; przykłady w sieci opierały się na paru przykładach w C, które mimo przełożenia na mój LCD nie działały. Wiem, że nie odkrylem Ameryki, ale chodziło mi właśnie o te podstawy, których ja nie doszukałem się. Reszta to kwestia rozwinięcia.

chmolu: to nie komponent; teoretycznie można napisać taki, ale żeby był uniwersalny to trzebaby trochę popisać - wyświetlacze mają różną wielkośći dodatkowe funkcje;

Snowak: "Napisales to takim językiem" - co masz na myśli?

Snowak: "Mam wrazenie, ze sam se ocene wystawiles      ! ! ! N I E Ł A D N I E ! ! !" - na podstawie czego takie bzdurne pomówienie? Może raczyłbyś zapytać np. admina, jeżeli ten loguje te wpisy, kto wystawił ocenę, zanim odezwiesz się...

Kaboo: Standard HD44780 - bardzo popularne, również na allegro. Od prostych 1x24 znaki po naprawdę duże. Ja konkretnie użyłem 3x24. Przed zakupem dowiedz się o złącze - jeśli jest to ta cienka listwa krawędziowa, to możesz mieć problemy ze znalezieniem gniazda.

Kaboo 2004-05-22 19:03

A może ktoś wie jaki do tego jest potrzebny wyświetlacz? Byłbym wdzieczny :)

chmolu 2004-05-14 18:21

Wg mnie wystarczyło wrzucić ten komponent do downloadu. A z Twojego arykułu i tak wiele się dowiedziec nie mozna.