Skocz do zawartości

Przesuwanie tekstu na LCD C


bartek1333

Pomocna odpowiedź

O wiele bardziej eleganckie rozwiązanie, które dostarcza sam sterownik wyświetlacza to przesuwanie " okna" wyświetlacza bez zmiany napisu zawartego w jego pamięci RAM- co więcej bardzo szybkie od strony programowej i proste. Wystarczy zgodnie z dokumentacją wysłać kod 0x18 (S/C=1,R/L=0) aby przesunąć okno w lewo, 0x1C (S/C=1,R/L=1) w prawo (strona 24-25/59 dokumentacji HD44780). Ponadto należy pamiętać, że to przewijanie trwa przez 40 pozycji bo tylko jest komórek pamięci( tak długi tekst można faktycznie wysłać do wyświetlacza bez utraty danych). Okno przesuwa się dla obydwu linii jednocześnie- i to jedyny niewielki minus tego rozwiązania. Dla ścisłości rozwiązanie działa, bo sam z niego korzystam:)

Ja też z niego korzystam, przykładowy kod poniżej:

LCD_write_command(0x80 | 0x10);	//ustawienie kursora poza obszarem wyświetlania (adres0x10) patrz p21 i 24
LCD_write_text_CR(tekst1);		//jakiś tekst, np. char tekst1[] = "WELCOME !!!";
	for(i = 0; i<13; i++)
	{
		LCD_write_command(0x18);//przesuwanie tekstu w lewo
		wait(18*tau);
	}
void LCD_write_command(char x)
/**
* Funkcja zapisu instrukcji do wyświetlacza LCD
* @x char - instrukcja do zapisu
*/
void LCD_write_text_CR(char *s)
{
/**
* Funkcja zapisu tekstu z uwzględnieniem znaku \n do wyświetlacza LCD
* @s char * - tekst do zapisu
*/
while(*s)
{
	if(*s == CR)
	{
		row == 1 ? row = 0 : ++row;

		column = 0;
		LCD_goto_rc(row,column);
	}
	else
	{
		LCD_write_data(*s);
	}
	s++;
}
return;
}
void LCD_write_data(char x)
{
/**
* Funkcja zapisu danej do wyświetlacza LCD
* @x char - dana do zapisu
*/
/** znak konca linii */
const unsigned char CR = 0x0a;
/** skaler na ms dla wait() */
const unsigned char tau = 10.64;
/** zapamietana pozycja na LCD (wiersz) */
unsigned char row = 0;
/** zapamietana pozycja na LCD (kolumna) */
unsigned char column = 0;
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.