LCD 2x16 czemu wyswietla tylko 8 znakow w...

Feb 18, 2007 4 Replies

Witam!



Mam pytanie bo oprogramowywuje wyswietlacz 2x16 (Atmega8, WinAVR,C) ale mam problem, gdyz w trybie komunikacji 4-bitowej wyswietla mi tylko 8 znakow..



Jesli chce aby wyswietlil wiecej czyli np 16 to musze kursor dac do nastepnej lini (i wtedy jest 2 razy po 8 znnakow) -czy ktos wie czemu sie tak dzieje?



Ja nie wiem co jest grane bo wszytko dobrze dziala w trybie 8 bitowym..



PS1:Wklejam swoje ustawienia w pliku '.h':



#define _4LCD_Function_set 0x28 //00101000 sterowanie 4-bitowe, dwie linie wyswietlacza, matryca 5x7



#define LCD_Entry_Mode_Set 0x06 //00000110 tryb wprowadzania znakow inkrementacja DD RAM



#define LCD_On 0x0C //00001100 wlaczenie wyswietlacza, kursora, miganie kursora



#define LCD_CLR 0x01 //00000001 czyszczenie lcd



PS2: Sterownik KS0070B



Pozdrawiam, Rafal Kula


S± warianty lcd z indexem A w typie. Poczytaj o sterowaniu bo rózni± siê nieznacznie. Zawsze my¶la³em, ¿e dotyczy to 1x16 bo 1x16A to po prostu 2x8 w jednej linii i zachowuje siê tak jak opisa³e¶.

PC

Hmm no ok, ale w trybie 8 danowym dziala mi dobrze czyli to co piszesz tyczy sie wylacznie trybu 4-danowego?

Moj wyswietlacz to DEM 16217 SYH...Czegos tu nie rozumiem bo jesli ten LCD mialby wyswietlac dane po 2x8 to poco mu dlugosc 2x16? Czyli jak wyswietlic dane na calej dlugosci lini??

Pozdarwiam i dzieki za szybki odzew ;) Rafa kula

18 Feb 2007 15:44:19 +0100 jednostka biologiczna o nazwie "T oR" <ToR snipped-for-privacy@o2.pl wyslala do portu 119 jednego z serwerow news nastepujace dane:

Bo tak producent zorganizował pamięć tego wyświetlacza, nic nie poradzisz.

Napewno dostępna do pisania jest cała matryca tylko że odpowiadające poszczególnym połówkom linii obszary pamięci są różnie rozmieszczone w pamięci.

Napisz program który zapisze jakimś znakiem całą pamięć danych w wyświetlaczu, zobaczysz jak to jest zorganizowane, albo lepiej metodą prób i błędów znajdź gdzie zaczyna się i kończy każdy z czterech obszarów odpowiadających połówkom linii. Odstęp między tymi obszarami jest zazwyczaj stały.

AFAIR zwykle niestety jest tak, że najpierw jest pierwsza połówka pierwszej lini, później pierwsza połówka drugiej i następnie (też w jakimś odstępie w pamięci) druga połówka pierwszej i druga drugiej.

nastepne 8 znakow - dodaj offset 0x80 w pamieci

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required