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
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:(
Moderatorzy:Jacek Bogusz, Moderatorzy
-
- -
- Posty:10
- Rejestracja:5 lut 2006, o 20:05
- Lokalizacja:Warszawa
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
[ 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
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]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
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ć?
[ 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ć?
Owszem, posiadaz tego co mi wiadomo, ten wyświetlacz ma jakąś pamięć wew.
Dostajesz się do niej za pomocą rozkazów "Write display data" oraz "Read display data".jak się do niej dostać??
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ę.jak w niej zapisać dajmy na to literki? jak sie potem do tego odwołać?
-> 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..
tak (pod warunkiem ze masz ustawione te same adresy stron)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]
Wejdz do tego 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 zacznij jeszcze raz 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
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości