radzio.dxp.pl

Wyświetlacz graficzny LCD ze sterownikiem KS0107/KS0108 – sterowanie w języku C od podstaw.

W najróżniejszych urządzeniach zbudowanych w oparciu o mikrokontrolery jako urządzenie wyjściowe wykorzystywane są wyświetlacze LCD. Najczęściej są to wyświetlacze alfanumeryczne ze sterownikiem HD44780 ze względu na stosunkowo niską cenę oraz proste sterowanie. Jednak ich możliwości są niewielkie w porównaniu do wyświetlaczy graficznych. Najtańsze wyświetlacze graficzne zbudowane są w oparciu o sterownik KS0107/KS0108 (HD61202/HD61203) nie posiadający generatora znaków. Cena wyświetlacza o rozdzielczości 128x64 punktów jest zbliżona do trzykrotności ceny zwykłego wyświetlacza alfanumerycznego 16x2, przy wiele większych możliwościach prezentacji danych.

Wyświetlacz ten pozwala na wyświetlenie ośmiu linii po 21 znaków (typowa czcionka 5x7) co daje łączną liczbę 168 znaków. Brak wbudowanego generatora znaków wydaje się być poważną wadą wyświetlacza, jednak w prosty sposób można tą wadę wyeliminować poprzez programową generację znaków realizowaną przez docelowy mikrokontroler. Wszystkie niezbędne funkcje realizujące wyświetlanie tekstu wraz z tablicą znaków zapisaną w pamięci programu zajmują około 1KB pamięci.

Wyświetlacz JM12864A
Wszystkie prezentowane tutaj procedury zostały napisane dla wyświetlacza JM12864A, jednak powinny działać z innymi wyświetlaczami o rozdzielczości 128x64 piksele zawierającymi sterownik KS0108. Funkcje poszczególnych wyprowadzeń wyświetlacza JM12864A przedstawia poniższy rysunek :

ks0108
 

Do sterowania wyświetlaczem wymagane jest 13 wyprowadzeń mikrokontrolera. Nie jest możliwa transmisja 4-bitowa, jak w przypadku wyświetlaczy alfanumerycznych ze sterownikiem HD44780.

Organizacja pamięci wyświetlacza JM12864A
Wyświetlacz posiada 1KB pamięci RAM (8192 bity). Organizacja pamięci i jej odwzorowanie na ekranie wyświetlacza przedstawia rysunek

ks0108


Poszczególne adresy pamięci wyświetlacza nie odpowiadają typowym współrzędnym ekranu. Adres Y odpowiada współrzędnej x ekranu (oś pozioma) natomiast adres X określa numer strony (czyli jest podzieloną przez 8 współrzędną y ekranu). Adres Z określa, która linia pamięci będzie odwzorowana w najwyższej linii wyświetlacza. Zapis danych do pamięci odbywa się po 8 bitów, najmłodszy bit odpowiada pikselowi położonemu w linii najwyższej w obrębie danej strony a najstarszy bit odpowiada pikselowi położonemu w linii najniższej.

Przykładowa bitmapa wyświetlona na wyświetlaczu JM12864A (sterownik KS0108)

atmel ks0108 lcd

 

 

  Następne : Rozkazy kontrolera KS0108

 
(c) Radosław Kwiecień