Pewnikiem już wam się przejadły wyświetlacze alfanumeryczne, no bo małe, mało znaków, nie są tak pojemne jak… Wyświetlacze graficzne. Dzisiaj pokaże wam jak obsługiwać wyświetlacz tego typu. Zapraszam do lektury.
Do samego wyświetlacza wystarczy sam ATmega8, lecz jak wykorzystałem Mega32 bo taki miałem pod ręką i jeszcze jedna rzecz- inwerter napięcia dodatniego na ujemne, ale to tylko gdy nasz wyświetlacz nie jest w niego wyposażony.
Okej, to tyle z wstępu, a teraz konkrety, którym jest schemat podłączenia wyświetlacza. Na start musimy znaleźć Datasheet naszego wyświetlacza, żeby poznać jego „pinologię”. Przeważnie wyprowadzenia są tak usytuowane ale to nie jest reguła:
szybkie objaśnienie:
FG (Frame Ground), czyli po prostu uziemienie z tym, że tej metalowej obwódki wyświetlacza
GND- uziemienie
5V- zasilanie logiki
-7,8V- tutaj trzeba podać napięcie ujemne do kontrastu, z mojego doświadczenia, żeby było cokolwiek widać musi być minimum -9V
/WR (Write)- zapis do sterownika
/RD (Read)- odczyt ze sterownika
/CE- Chip Enable
C/D- wybór rejestru
D0..D7- linie I/O
FS (Font Select)- wybór czcionki
Dobra, to teraz czas przejść do podłączenia do uC:
Część hardware’owa załatwione to teraz czas na software. Wiadomo na starcie definiujemy uC i częstotliwość taktowania:
- $regfile = „m32def.dat”
- $crystal = 8000000
- Config Graphlcd = 240 * 64 , Dataport = Portb , Controlport = Porta , Ce = 5 , Cd = 4 , Wr = 6 , Rd = 7 , Reset = 3 , Fs = 2 , Mode = 6
W 4. linii możemy zobaczyć definiowanie wyświetlacza:
Config Graphlcd = „pokazujemy” programowi jak wyświetlacz używamy, czyli 240×64 px. Np. masz wyświetlacz 160×48 px to piszemy:
- Config Graphlcd = 160 * 48
Dataport = wpisujemy port pod który są podpięte linie I/O
Controlport = wpisujemy port pod który jest podpięte sterowanie wyświetlaczem, po czym widać nazwy poszczególnych pinów, jak mamy Ce = 5 to oznacza że pin Ce jest podpięty do Porta.5
Mode= wpisujemy wielkość czcionki mamy do wyboru 8 i 6 co oznacza że wielkość czcionki wynosi 8 albo 6 px.
Teraz czas na resztę programu: