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

LCD 4x20 na KS0066 - inicjalizacja i obsługa w C, błędy w kodzie?

*Piotrek* 02 Maj 2008 17:39 1955 0
REKLAMA
  • #1 5098660
    *Piotrek*
    Poziom 15  
    Posty: 187
    Pomógł: 12
    Witajcie!
    Kupiłem ostatnio nowego LCD 4x20 opartego na sterowniku ks0066 samsunga i niestety, ale nie moge go zmusić do współpracy.
    Czy ktoś z was ma doświadczenie z tego typu sterownikami??
    W załączniku nota LCD i KS0066, a poniżej fragment kodu inicjalizacji.
    Jeżeli ktoś widzi tu jakiś błąd to proszę dajcie znać lub jeśli dysponujecie gotowymi procedurami do obsługi tego sterownika to będe wdzięczny jeśli się podzielicie.
    Datasheet LCD
    KS0066U
    Pozdrawiam
    Piotrek

    
    /*Inicjalizacja LCD*/
    void lcd_init(void) 
    { 
    DDR_DB4 |= _BV(DB4); 
    DDR_DB5 |= _BV(DB5); 
    DDR_DB6 |= _BV(DB6); 
    DDR_DB7 |= _BV(DB7); 
    
    DDR_E |= _BV(E); 
    DDR_RS |= _BV(RS); 
    
    waitms(50); // czekaj 50ms na ustabilizowanie się napięcia zasilającego 
    CLR_E; // E = 0 
    CLR_RS; // RS = 0 
    //FUNCTION SET 4BIT MODE
    SET_E;
    CLR_DB7;
    CLR_DB6;
    SET_DB5;
    CLR_DB4;
    waitms(1);
    CLR_E;
    waitms(1);
    //FUNCTION SET DISPLAY MODE
    SET_E;
    CLR_DB7;
    CLR_DB6;
    SET_DB5;
    CLR_DB4;
    waitms(1);
    CLR_E;
    waitms(1);
    
    SET_E;
    SET_DB7;//2linie
    SET_DB6;//disp on
    CLR_DB5;//-
    CLR_DB4;//-
    waitms(1);
    CLR_E;
    waitms(1);
    //DISPLAY ON/OFF
    SET_E;
    CLR_DB7;//
    CLR_DB6;//
    CLR_DB5;//
    CLR_DB4;//
    waitms(1);
    CLR_E;
    waitms(1);
    
    SET_E;
    SET_DB7;//
    SET_DB6;//disp on
    SET_DB5;//CURSOR ON
    SET_DB4;//BLINK ON
    waitms(1);
    CLR_E;
    waitms(1);
    //DISPLAY CLEAR
    SET_E;
    CLR_DB7;//
    CLR_DB6;//
    CLR_DB5;//
    CLR_DB4;//
    waitms(1);
    CLR_E;
    waitms(1);
    
    SET_E;
    CLR_DB7;//
    CLR_DB6;//
    CLR_DB5;//
    SET_DB4;//
    waitms(1);
    CLR_E;
    waitms(2);
    
    //ENTRY MODE SET
    SET_E;
    CLR_DB7;//
    CLR_DB6;//
    CLR_DB5;//
    CLR_DB4;//
    waitms(1);
    CLR_E;
    waitms(1);
    
    SET_E;
    CLR_DB7;//
    SET_DB6;//
    SET_DB5;//INCREMENT MODE
    SET_DB4;//SHIFT ON
    waitms(1);
    CLR_E;
    waitms(1);
    }
    
  • REKLAMA
REKLAMA