..:: Serious Magazine ::..
wydanie 14

  Wstępniak
  Fairy Castle czyli Zaklęty Zamek
  Piano v1.0
  Prezentacja Fairy Castle, Piano
  Klimat...
  Profesor
  Nowoczesne zakupy...
  Postać Atari - Nir Dary
  List do mnie i o mnie - Jabol
  Teraz ja!
  Dekoder
  Humor w Serious'ie
  Recenzja, polemika: Numen
  Nowy
  K.S.O. 2T06 TURBO
  Notka - TURBO 2T06
  Moja przygoda z Atari...
  Zabobony
  Sidcar
  Design Master
  Próbnik - trzecie oko elektronika
  Sterowanie biologiczne
  Jak się pozbyć...
  Grzebanie w popiele
  Nakładka
  Kontroler obrazu
  Jaka dokładność?
  Atari w Internecie
  LCD
  Gadżet
  Gadżet - demo
  Zestaw kilku prac

  Wyjście
LCD
Wyświetlacz ciekłokrystaliczny na usługach Atari


      Pomysł nie jest mój, ale... Inaczej. Pomysł jest mój, schemat jest wzorowany na innych opracowaniach. Duża buśka, piszę to już kolejny raz i pewnie ze sto razy jeszcze napiszę. Więc... duża buśka konstruktorom Atari za to przecudowne gniazdko jakim jest otworek do kartridża. Porty 1 i 2 tego nie dają. Wtyk SIO też nie. Ale to gniazdko tak! Przyszło mi na myśl, że przecież mogę opisać sposób w jaki Atari sterować może wyświetlaczem ciekłokrystalicznym. Akurat pod ręką mam taki, 2x16. Wystarczy. Inne sterują się tak samo bez przeróbek podanego tu schematu. Ważne by wyświetlacz miał sterownik HD44780. Do budowy nie potrzeba zbyt wiele części. Dwie kości + sam wyświetlacz. Resztę zrobi oprogramowanie.

Jak to działa?

Wyświetlacz podpięty jest pod sygnał CCTL co wyznacza że strona $D5 jest dla niego. Nie cała, a tylko część. Wynika to z tego, że linie adresowe A0 i A1 biorą udział w sterowaniu. Znaczy to że część adresów będzie się "przewijała" bo występuje tu tzw. dekodowanie niepełne. Nic to. Na razie to tylko próby by zachęcić niektórych do pracy szarymi komórkami, no i conieco podpowiedzieć.

Wyświetlacz ma trzy linie sterujące. RS, R/W i E. Aby nie kombinować zbyt wiele zrobi się tak. Wystawienie adresu na stronie $D5 zrealizuje daną opcję. Za adres bazowy obieramy $D500, zatem:

      $D500+0 - zapis instrukcji R/W=0 RS=0
      $D500+1 - odczyt "busy flag" i adresu R/W=1 RS=0
      $D500+2 - zapis danej R/W=0 RS=1
      $D500+3 - odczyt danej R/W=1 RS=1

I to byłoby na tyle.

Oczywiście polecenia dotyczą sterownika wyświetlacza. Atari ma tylko wygenerować odpowiednią sekwencję sygnałów, które podane na wejścia sterujące LCD zrobią co trzeba. Proponuję by zaopatrzyć się w wyświetlacz z podświetleniem. Świeci na zielono. Warto w obwód podświetlenia włączyć opornik około 15. Spowoduje to nieco ciemniejsze tło, ale za to jest większa pewność że wyświetlacz dłużej pożyje.

Kody ASCII potrzebne do ożywienia LCD są tożsame z tymi których używa Atari. Tak więc A=65 (dec) B=66 (dec) itd.. Inne kody powodują wyświetlanie znaków innych. Tu nie czas i pora by całość opisywać. Najważniejsze, jak to działa. A jeżeli już działa, to należy się zastanowić do czego to wykorzystać. Bo sam LCD to połowa sukcesu. Propozycji może być kilka (z mojej strony).
  1. Dodatkowy sterownik w postaci np. nakładki obsługuje wyświetlacz. A na nim pokazują się różne komunikaty o stanie wewnętrznym Atari, np. czy jest stereo, ile RAM'u ma Twój Atarak, czy jest sprawny, etc.
  2. Takowa nakładka, tylko inna robi to co niżej. Bawisz się Ataryną, a tu nagle STOP. Wyskoczył Error. Wiele programów podaje tylko numer błędów. Taki wyświetlacz mógłby podać słowny opis co się stało i ewentualnie podać sposób jak ten błąd usunąć, np. Zapomniałeś włączyć stację dysków lub drukarka nie ma papieru albo... brak prądu :) itd..
  3. Włączasz komputer, a tu na wyświetlaczu pokazuje się ładnymi literkami: Witam panie Zenonie. Życzę miłej pracy... lub coś podobnego.
  4. Jakieś demo. Generator znaków w LCD ma sporo różnych bajerów. Ale można też zdefiniować kilka własnych. Jazda bez trzymanki. Ty stukasz, a na LCD leci sobie ładny scroll.
  5. Hm... Planujesz bawić się Ataryną tylko godzinkę. Ale Cię wciągnęło. Żonka lata jak szalona, a Ty po prostu byłeś w transie. Co powiesz na zegar-przypominacz. Może być z kalendarzem i wodotryskiem :) Mogłoby wyglądać to tak.
    - start Atari
    - ustaw bieżący czas
    - ustaw czas alarmu + zredaguj omunikat
    - czas leci, Ty się bawisz, a po chwili... bzzzzz.... minęła godzinka... wynieś śmieci :)
  6. Tu jest miejsce na Twój pomysł.
Pora na konkrety...

Schemat

Moduł w formie kartridża wkłada się w wiadome gniazdo. Starownik LCD jest dosyć wolny. Na BASIC w sam raz, ale w maszynówce pojawią się kłopoty. Bo wydanie polecenia i realizacja trochę trwa. Coś takiego:

         lda #dana
         sta $d500
         lda dana1
         sta $d501
         lda #dana2
         sta $$d50x   x=offset
to błąd!

Pomiędzy kolejnymi sta, a lda powinna być pusta pętla opóźniająca, by LCD zdążył zrealizować polecenie. Jest inny mechanizm sprawdzania tego, ale po co zawracać sobie tym głowę. Wspomniana pętla robi to wystarczająco dobrze. Tak więc znane:

 licz ldx #$40
      inx
      bne licz
może być tym o co nam chodzi. Oczywiście #$40 należy dobrać eksperymentalnie. Wynika to zazwyczaj z opisu dostarczanego na ulotce załączanej do zakupionego LCD. Zwłoka około 4 s. Poniżej, działający przykład jak tym sterować. Wykonają się proste czynności, reszta należy do Ciebie.

    lda #$01
    sta $D500
    jsr opu

    lda #$0C
    sta $D500
    jsr opu

    lda #$38
    sta $D500
    jsr opu

    lda #$41
    sta $D502
    jsr opu

    rts

 op ldx #$00
 xx inx
    bne xx
    rts

    end
To samo, tylko że w Basic'u

   10 POKE 54528,1
   20 POKE 54528,12
   30 POKE 54528,56
   40 POKE 54528,65
Prawda że łatwe? I jakie proste! Na wyświetlaczu LCD powinna zaświecić się literka A. Gdyby nie chciała, to można próbować zwiększyć czas opóźnienia w pustej pętli op lub między linie 10-40 wstawić coś takiego nn A=A^1. A gdyby jeszcze nie chciała się pokazać, to szukaj błędu w montażu lub szukaj uszkodzonego elementu.

Niżej kilka szczegółów technicznych.

Sterowanie wyświetlaczem LCD to prosta sprawa (dla tego kto wie). Chodzi o standard ze sterownikiem HD44780 (inne mają podobnie). Więc tak:
  • Końcówki Vcc i GND, wiadomo, zasilanie +5V, nie większe
  • Vsp to ustawienie kontrastu
  • RS, RW i E to wejścia sterujące
  • D0-D7 to wejścia/wyjścia danych
Interesujące są wejścia RS, RW, E. Oto tabelka:

RSRWdziałanie
00zapis instrukcji
10zapis danej
01odczyt zajętości
11odczyt danej

Dwie pierwsze pozycje załatwiają co trzeba, ale lepiej widać to na wykresie. Oto on.

Zapis instrukcji do sterownika

Schemat


Zapis danej do wyświetlenia

Schemat


Kilka kresek a jak czytelne! Kto wymyślił ten sposób interpretacji działania układu! Duża buśka!

Swoje całkiem prawdziwe i poważne rozważania opisał, a wcześniej wykonał model...

Zenon/DIAL


Następny artykuł Do góry Poprzedni artykuł