Sterowanie wyswietlaczem LCD przez port LPT
JacekH
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
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒ 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 ▒
▒ ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Witajcie, uruchomiłem forum o wyświetlaczach LCD pod LPT pod adresem www.lcdstudio.com.pl. Zapraszam wszystkich do pisania i rozwijania tematu.
A jaki schemat podłączenia wyświetlacza do portu LPT użyłeś?
WRZUCIŁEM DO TEGO KOMPONENT: http://4programmers.net/file.php?id=1627
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ą ...
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.
A może ktoś wie jaki do tego jest potrzebny wyświetlacz? Byłbym wdzieczny :)
Wg mnie wystarczyło wrzucić ten komponent do downloadu. A z Twojego arykułu i tak wiele się dowiedziec nie mozna.