Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

KS0108 dla wyświetlacza HY-19264C, problem ze sterownikiem:(

Bazi13
-
-
Posty:4
Rejestracja:12 gru 2006, o 17:22
Lokalizacja:Rybnik
KS0108 dla wyświetlacza HY-19264C, problem ze sterownikiem:(

Postautor: Bazi13 » 12 gru 2006, o 17:36

Mam wyświetlacz graficzny jak w opisie wyżej. http://www.ciahk.net/upload/docs/HY-19264C.pdf .Chcę na nim zrealizować analizator widma sygnałów okresowych. Mam jednak problem z "odpaleniem" wyświetlacza. Napisałem krótki programik, chciałem zapalić dla przykładu jeden segmencik tego wyświetlacza. Oto programik, widzi ktoś błąd? a może wogóle źle sie za to zabrałem,. :/


.include "m162def.inc"

;*********************** DEKLARACJE PORTOW *************************
.equ DANA = PORTC
.equ STER = PORTD
.equ CS3 = 0
.equ CS2 = 1
.equ RST = 2
.equ CS1 = 3
.equ E = 4
.equ RW = 5
.equ RS = 6


.equ SYS_FREQ = 16
.def A = R22




.cseg

;zainicjalizuj stos:
ldi R16, high(RAMEND)
out SPH, R16
ldi R16, low(RAMEND)
out SPL, R16

;ustaw porty w ATMEGA162:
ldi R16, 0xFF
out DDRC, R16
out DDRD, R16



ldi A, 0x3F ;Dispaly 1 ON
rcall instrukcje_CS1
ldi A, 0x3F ;Dispaly 2 ON
rcall instrukcje_CS2
ldi A, 0x3F ;Dispaly 3 ON
rcall instrukcje_CS3

ldi A, 0x41 ;ustaw Y
rcall instrukcje_CS1
ldi A, 0xB9 ;ustaw strone (0 do 7)
rcall instrukcje_CS1
ldi A, 0xC1 ;ustaw X
rcall instrukcje_CS1
ldi A, 0x01 ;dana
rcall dane_CS1

dane_CS1:
cbi STER, E
cbi STER, RS
sbi STER, CS1
cbi STER, CS2
cbi STER, CS3
out DANA, A
cbi STER, RW
cbi STER, E
nop
sbi STER, E
ldi R16, 200 ;2ms opoznienia
rcall czekaj_us
cbi STER, E
ret

instrukcje_CS1: ;instrukcje_CS2 i CS3 to samo tylko inna linia CS aktywna
cbi STER, E
sbi STER, RS
cbi STER, CS1
sbi STER, CS2
sbi STER, CS3
cbi STER, RS
out DANA, A
cbi STER, RW
cbi STER, E
nop
sbi STER, E
ldi R16, 200 ;2ms opoznienia
rcall czekaj_us
cbi STER, E
ret

michalko12
-
-
Posty:10
Rejestracja:5 lut 2006, o 20:05
Lokalizacja:Warszawa

Postautor: michalko12 » 13 gru 2006, o 00:37

Na pierwszy rzut oka to nie widzę żebyś coś robił z linią RST, nie sterujesz nią nigdzie ani też nie inicjalizujesz portów po strarcie "PORTD=..."

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 13 gru 2006, o 08:31

Obrazek look at :twisted: these links

:arrow: tester tu na sucho przecwiczysz jak sie steruje wyswietlacz
:arrow: radzia tu masz po naszemu o KS0108
:arrow: 19264 Obrazek

Bazi13
-
-
Posty:4
Rejestracja:12 gru 2006, o 17:22
Lokalizacja:Rybnik

Postautor: Bazi13 » 13 gru 2006, o 14:02

Port D dalej występuje pod nazwą STER, co rozumiesz pod pojęciem "nie inicjalizujesz"?? RST udciłem wogóle żeby sobie "wisiał" w powietrzu, jednak nie bardzo to coś zmieniło:/

[ Dodano: 13-12-2006, 13:58 ]
Podświetlają sie wszystkie segmenciki i tylko pare jest niepodświetlonych, nie rozumiem zasady sterowania czytałem artykuły :/. wyjaśnij mi to ktoś??. Bo jeśli ja wybieram stronę potem wiersz i kolumne, oraz która część (CS1 CS2 lub CS3), to znaczy wybieram pixel pod tym adresem, to po co jeszcze tam jakąś DANĄ wysyłać? przecież to tylko jeden pixel więc wybierając go podświetlam go. Tak ja to rozumię. Może mi to ktoś wyjaśni? pierwszy raz używam graficznego LCD, czuje się lekko zagubiony

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 13 gru 2006, o 16:20

Podświetlają sie wszystkie segmenciki i tylko pare jest niepodświetlonych, nie rozumiem zasady sterowania czytałem artykuły :/. wyjaśnij mi to ktoś??. Bo jeśli ja wybieram stronę potem wiersz i kolumne, oraz która część (CS1 CS2 lub CS3), to znaczy wybieram pixel pod tym adresem, to po co jeszcze tam jakąś DANĄ wysyłać? przecież to tylko jeden pixel więc wybierając go podświetlam go. Tak ja to rozumię. Może mi to ktoś wyjaśni? pierwszy raz używam graficznego LCD, czuje się lekko zagubiony
Jest zupełnie inaczej niż myślisz. Każdemu pikselowi odpowiada bit w pamięci RAM wyświetlacza, tak więc aby "zapalić" piksel musisz zapisać pod odpowiedni adres odpowiednią wartość. W sterowniku KS0108 każdy bajt pamięci odpowiada 8 pikselom w pionie. Tak więc zapisując wartość 10101010 pod adres i strony 0 włączone zostaną piksele o współrzędnych [i,1][i,3][i,5][i,7]

Bazi13
-
-
Posty:4
Rejestracja:12 gru 2006, o 17:22
Lokalizacja:Rybnik

Postautor: Bazi13 » 14 gru 2006, o 11:12

a co z TYmi sygnałami CS, czy jak na przykład włącze wszytskie 3 (CS1, CS2, CS3) to wyświetli to samo na wsyztskich trzech "częściach" wyświetlacza??

[ Dodano: 14-12-2006, 10:16 ]
Ach i jeszcze jedno mam pytanie, z tego co mi wiadomo, ten wyświetlacz ma jakąś pamięć wew. jak się do niej dostać?? jak w niej zapisać dajmy na to literki? jak sie potem do tego odwołać?

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 14 gru 2006, o 16:39

z tego co mi wiadomo, ten wyświetlacz ma jakąś pamięć wew.
Owszem, posiada
jak się do niej dostać??
Dostajesz się do niej za pomocą rozkazów "Write display data" oraz "Read display data".
jak w niej zapisać dajmy na to literki? jak sie potem do tego odwołać?
Musisz zapisać do pamięci wyświetlacza mapę bitową "literki" (czyli literę rozłożoną na piksele). To co zapiszesz do pamięci jest odwzorowane na ekranie, czyli w praktyce "pisanie tekstu" odbywa się poprzez zapis pod odpowiednie współrzędne bitmapy przedstawiającej daną literę.

-> http://radzio.dxp.pl/font/ tutaj jest programik, w którym możesz sobie zaprojektować czcionki 5x8 pikseli. Otrzymasz ciąg bajtów, który musisz zapisać do pamięci wyświetlacza aby dana litera została wyświetlona na ekranie..

Bazi13
-
-
Posty:4
Rejestracja:12 gru 2006, o 17:22
Lokalizacja:Rybnik

Postautor: Bazi13 » 15 gru 2006, o 09:01

Dzięki bardzo, pozdrawiam :)

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 16 gru 2006, o 13:47

a co z TYmi sygnałami CS, czy jak na przykład włącze wszytskie 3 (CS1, CS2, CS3) to wyświetli to samo na wsyztskich trzech "częściach" [fade]wyświetlacza??[/fade]
Obrazek tak (pod warunkiem ze masz ustawione te same adresy stron) :idea:

Wejdz do tego :arrow: linka w ktorym jest symulator graficznego wyswietlacza 12864 (jeden segment mniej niz Twoj). W lewym gornym rogu jest LCD Status ktory informuje czy lewy lub prawy segment jest wlaczony, Y adres mowi na ktorej pozycji (0-63) bedzie wpis, page nr strony (0-7), selected jesli wybrany to mozliwy wpis. W centrum jest wyswietlacz a pod nim uklad danych 8 bitow oraz 5 bitow sterowanie.

Aby co kolwiek wyslac do wyswietlacza nalezy zmienic stan z 1 na 0 na jednym z CSA lub CSB (mozna tez na obu na raz) zmieniajac stan od razu powinien sie zmienic status selected z NO na YES. Teraz nasz wyswietlacz jest wylaczony OFF aby go wlaczyc nalezy wpisac dziesietnie 63 (czerwone pola) oraz zmienic E z 1 na 0 i z powrotem na 1. Czy zmienil sie status na ON? Jesli tak to idziemy dalej jesli :no: zacznij jeszcze raz :wink: To co teraz robilismy to bylo wysylanie kodow sterujacych D/I stan 0. Jesli teraz zmienimy D/I na stan 1 (tryb wpisywania danych) i wpiszemy jaka kolwiek liczbe (oprocz zera) to graficzny podglad jej mozemy zobaczyc przy Pixel: teraz wystarczy zmienic E z 1 na 0 i z powrotem na 1 a na ekranie wyswietlacza powinny sie pojawic jakies zapalone piksele Obrazek

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości