Jako że wyświetlacze graficzne stają się coraz tańsze i oferują więcej niż popularne znakowe HD44780
Więc czas się nimi zająć prawda ??
Jeśli więc jesteście znudzeni znakowymi wyświetlaczami to temat dla was.
Wyświetlacze graficzne o rozdzielczości 128x64 oferują nową jakość wyświetlania obrazu w aplikacjach
pisanych na mikrokontrolery. Możliwość prezentacji danych w formie graficznej, czy też różnymi czcionkami
pozwala znacznie uatrakcyjnić projekt co jest dosyć istotne, a przede wszystkim oferuje znacznie więcej
miejsca pozwalając na poprawę wizualna naszego układu. Staje się on czytelniejszy i bardziej wyrafinowany.
To co jedziemy ??
a jak , a co się będziemy szczypać
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Interfejs znakowych LCD opartych o HD44780 jest prosty w użyciu i każdy chętnie go używa, ba nawet dla wielu
jest to pierwszy i jedyny używalny LCD. Dlaczego ??
Dlatego, że sterowanie wyświetlaczem graficznym wydaje się bardzo skomplikowane i praktycznie nie do okiełznania.
Samo jego podłączenie do MCU wymaga więcej pinów i trzeba napisać opasłe biblioteki, mieć specjalnie przygotowane czcionki itd.
Dodatkowo nie można nic zapisywać bezpośrednio do LCD by to zobaczyć tylko do specjalnego bloku pamięci, który jest widoczny
na matrycy. Grzebiąc w niezrozumiałej dla wielu nocie możemy się dowiedzieć jak się tam dostać a to powoduje że wielu niestety
się poddaje i uznaje że sterowanie takim LCD to już makabra i lepiej omijać na kilometr.
To nie prawda!!
Biblioteka !!Oprogramowanie obsługujące nasz KS108 wielu przeraża , zawiera masę skomplikowanych algorytmów i procedur do wyświetlania prymitywów graficznych w postaci:
Lini, prostokątów, okręgów, bitmap
Pomaga też w ładowaniu czcionek i renderowaniu textu i liczb na ekranie. Więc jak się okazuje można można wszystko zapisać
znacznie łatwiej i uprościć sobie dostęp wysokiego poziomu z aplikacji w prostszy sposób. Jak więc tego dokonać ??
Choć na sieci jest wiele bibliotek przeznaczonych dla GLCD, sprawdziłem ich kilka , ale nie byłem zadowolony z żadnej z nich
do ciekawszych zaliczę biblioteki radzia - jednak są kłopotliwe w użyciu i stwarzają wiele problemów ...
oraz progfx ... ta biblioteka jest już świetna zresztą użyłem jej przy okazji prac nad opisywanym tu DDSem gdzie we wczesnych
wersjach ... ale no jak zawsze ale biblioteka choć świetna i dopracowana , jest prekompilowana więc nie bardzo możemy ingerować
w jej strukturę, a przede wszystkim wyświetla screen progfx, który dyskwalifikuje ja w przypadku komercyjnego urządzenia.
Dlatego też powstała moja wersja biblioteki, która może obsłużyć różne LCD oparte o kontroler KS108 lub zgodne i w prosty sposób
może być przeportowana na różne mikrokontrolery. Biblioteka jest kompilacją różnych bibliotek znalezionych w sieci i posiada wiele elementów wspólnych dla różnych wersji , niemniej powinna być szybka i łatwa w użyciu. Ponadto niema w niej wielu funkcji , ale sobie poradzicie z ich dopisaniem.
Troszkę o LCD graficznym:)Poznajmy więc trochę nasz moduł graficzny -- jak to poważnie brzmi
![Pokazuje język :P](https://forum.atnel.pl/images/smilies/icon_razz.gif)
-- cokolwiek to znaczy
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
![Obrazek](http://img4.imageshack.us/img4/7362/lcdag128064gyhy.jpg)
Specyfikacja: 128x64 piksele.
Kontroler KS0108B
8bit interfejs równoległy
Dostępny w wielu kolorach podświetlenia
Podświetlenie LED.
20 pinów których znaczenie mamy poniżej:
![Obrazek](http://img19.imageshack.us/img19/1539/przechwytywaniemy.jpg)
oczywiście nie jest to reguła i należy zapoznać się z notą swojego wyświetlacza niemniej te popularne tak właśnie mają
w większości.
Podłączenie kontrastu:
Trafiają się wyświetlacze z KS108 gdzie kontrast jest na sztywno już ustalony i nie musimy
się przejmować jego podłączeniem , ale w znakomitej większości musimy tego dokonać
Typowy schemat podłączenia wyświetlacza wygląda następująco:
Adresowanie Pixeli:![Obrazek](http://img651.imageshack.us/img651/8382/glcdpixeladdress.gif)
Powyżej widzicie organizację ekranu dla naszego KS108 w wraz ze współrzędnymi krańcowych pixeli.
Mamy jak widać dwie współrzędne X i Y .
X jest współrzędną poziomą i przyjmuje wartości od 0 do 127 w prawo
Y jest współrzędną pionową i przyjmuje wartości od 0 do 63 w dół
Z czego jak widzicie na rysunku wynika że punkt 0,0 wyświetlacza znajduje się w lewym górnym
rogu. Zapis koordynat punktu w naszej bibliotece będzie następująca zatem (x,y).
Teraz mała przerwa .... zajmiemy się kreśleniem podstawowych kształtów na LCD później.
na bazie biblioteki którą znajdziecie niebawem w załączniku
------------------------ [ Dodano po: 46 minutach ]No to skoro już uzupełniłem przed południową dawkę kofeiny w organizmie jedziemy dalej
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Biblioteka jak wiecie składa się z 2ch plików:
GLCD_ks108.c
GLCD_ks108.h
W pliku GLCD_ks108.h znajdziecie też opis podłączenia naszego GLCD do ATmegi :
Piny Danych wyświetlacza D0 do D7 podłączamy do Portu D naszego MCU
Piny Sterujące wyświetlacza natomiast do Portu C:
D/I (RS) = PC0
R/W = PC1
EN = PC2
CS1 = PC3
CS2 = PC4
Dodatkowo musimy podłączyć jeszcze pin RESET wyświetlacza
i podłączamy go bezpośrednio na VCC czyli +5V
Oczywiście definicje portów i pinów możemy sobie zmienić
UWAGA !!
PAMIĘTAJCIE BY SPRAWDZIĆ PINY WASZEGO LCD W NOCIE ZANIM PODŁĄCZYCIE
ZASILANIE BO MOGĄ SIĘ RÓŻNIĆ OD MOJEGO LCD! Dostępne Funkcje w bibliotece :
Biblioteka udostępnia podstawowe funkcje służące do wyświetlania prymitywów graficznych:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Oraz funkcje obsługi czcionek o funkcje kontrolne które na pewno znajdziecie
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Zapewne zastanawia was parametr color ... wyświetlacz nasz jest monochromatyczny co pozwala na wyświetlenie powiedzmy
2ch kolorów czarny i biały -- czyli piksel zaświecony lub zgaszony i tylko to robi ten parametr , dosyć przydatny
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Program przykładowy
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
W tym miejscu zobaczycie w praniu użytkowanie biblioteki , którą też kolega Antystatyczny używa do swoich niecnych celów
zapewne widzieliście efekty na filmikach na czacie .
Plik main.c do testów biblioteki:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Efektem działania programu jest napis w ramce i migający pixelek 2x2
![Obrazek](http://img10.imageshack.us/img10/299/s63026869.jpg)
Jak widać używanie jest proste i przyjemne w razie pytań piszcie ...
Miłej zabawy