logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Układ wyświetlacza LCD (2x24) sterowanego uC Atmega8.

Kubbaz 23 Sie 2006 19:51 1591 3
REKLAMA
  • #1 2945785
    Kubbaz
    Poziom 26  
    Posty: 1237
    Pomógł: 9
    Ocena: 30
    Witam

    Zrobiłem układ wyświetlacza LCD (2x24) sterowanego uC Atmega8.

    Otóż chciałbym teraz sterować wyświetlaczem przy pomocy uC.
    Mam poprowadzoną komunikację 4-ro bitową (DB4-7) z wykorzystaniem portów PC0, PC1, PC2, PC3 oraz na RS - PD7, na R/W - PD6, na Enable - PD5.

    Mam także dokumentacje obsługi takiego LCD ;/, gdzie widzę standardową tablicę znaków oraz 4-ro bitowe "pakiety", które należy wysłać do LCD.
    (dokumentacja w załączniku)

    Otóż chciałbym dokłądnie poznać powiedzmy procedurę jaką należy zastosować w programatorze (programy pisze w C) - coś w rodzaju schematu działania- tak aby LCD wyświetlił jakieś litery - to na początek :).

    Pozdrawiam.
    Załączniki:
    • DEM16216SGH.pdf (214 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 2945980
    patrx
    Poziom 16  
    Posty: 245
    Pomógł: 7
    Ocena: 15
    No to jaki problem - piszesz procedurkę przesyłającą dane w trybie 4-bitowym. Jak wiadomo w trybie tym daną/instrukcję przesyłamy w dwóch krokach:
    1. starsza część danej
    2. młodsza część danej
    Musisz wcześniej oczywiście poprawnie zainiciować LCD by pracował w trybie 4-bitowym. Ja kiedyś siedziałem pare ładnych godzin i szukałem błędu w procedurce iniciującej. Okazało się że gdzieś zamiast sbi napisałem cbi...
  • REKLAMA
  • #3 2946128
    Kubbaz
    Poziom 26  
    Posty: 1237
    Pomógł: 9
    Ocena: 30
    patrx napisał:
    Musisz wcześniej oczywiście poprawnie zainiciować LCD by pracował w trybie 4-bitowym. Ja kiedyś siedziałem pare ładnych godzin i szukałem błędu w procedurce iniciującej. Okazało się że gdzieś zamiast sbi napisałem cbi...


    no właśnie prosiłbym o przykład poprawnie zainicjowanego LCD, żeby nie popełnić jakiegoś błędu ....:).

    A co do wysyłania danych, to np. żeby wyświetlić wielką literę A mam napisać w kodzie takie coś??:

    ...
    DDRC = 0xFF; //PORTy C na wyjście
    delayms (1); // jest to funkcja z mojej biblioteki :)

    PORTC = 0x04; // binarnie 0100
    delayms (2); // ma być jakieś opóźnienie w wysyłaniu bitów MSB i LSB czy nie??
    PORTC = 0x01; // binarnie 0001
    ..........

    czy inaczej ??:)
REKLAMA