- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 31 bis 40 von 173

Thema: Portbelegung auf ATMega für LCD1602

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Bei meinem Display sind die 3 mal 0x30 auch drin.
    Ich habe das EA-W162B-BNLW mit dem Controller HD44780U

    Hier meine 4 Bit Mode Initialisierung:
    Code:
    /* Power Up need ca. 40 ms internal Power on reset HD44780U */
        Wait_us(50000);
    
        LCD_DIR_OUTPUT;   /* LCD Data Lines direction to output */
        Wait_us(20);
    
        LCD_DataOut8(0x30);       /* Function set */
        Wait_us(5000);            /* wait > 4,1ms */
    
        LCD_DataOut8(0x30);       /* Function set */
        Wait_us(200);             /* wait > 100 us */
    
        LCD_DataOut8(0x30);       /* Function set */
        Wait_us(200);             /* wait > ??? us */
    
    
        LCD_DataOut8(0x20);       /* Function Set  4 BIT DL=0 */
        Wait_us(200);             /* wait > 26,3 us */
    
        /* !!!! erst ab jetzt ist der 4 Bit Modus aktiv */
    
        LCD_WaitBusy();
    
            LCD_DataOut4(0x28);  /* Function set DL=0==>4 Datalines   N=1==>zwei oder vierzeiliges Display F=0==5x7 Dot*/
        LCD_WaitBusy();
    
        LCD_DataOut4(0x0F);  /* Display On, Cursor blink on */
        LCD_WaitBusy();
    
        LCD_DataOut4(0x06);  /* Entry Mode set Cursor auto inc  40us */
        LCD_WaitBusy();
    
      LCD_GotoXY(2,0);
      LCD_Write("Hallo");
      LCD_GotoXY(2,1);
      LCD_Write("Display");
    !!! das Busy Flag BF darf bei der initialisierung noch NICHT abgefragt werden,
    das funktioniert erst nachdem der 4 Bit Modus gesetzt wurde.
    Deshalb die wartefunktion Wait_us
    -------------------------------------
    Um deine Adresse zu setzen, wo das nächste Zeichen hin soll
    must Du generell noch das Datenbit DB7 setzen
    Also zweite Zeile ist 0x40
    dann das 9te Zeichen
    ist dann deine 49 Hex
    und nun noch +128 oder OR 0x80 um das DB7 Bit zu setzen
    dann erst ausgeben.
    Das RS Bit muss dabei 0 sein, das ist richtig.

    Ich setzte immer die Adresse mit folgender Funktion
    Code:
    GotoXY(x,y)
    
      Adresse = (y * 0x40) + x + 128
    
    Pseudocode:
    a = 0
    wenn y = 1 dann a = 0x40      / 2 Zeile beginnt bei 0x40
    a = a + x                     / Spaltenposition addieren
    a = a OR 0x80                 / immer DB7 Bit setzen 
    
    Auf Port ausgeben dabei RS Pin Low lassen
    Geändert von Siro (13.12.2018 um 15:37 Uhr)

Ähnliche Themen

  1. [ERLEDIGT] Atmega 644 & atmega8 parallel am ISP ... Reset beider atmega notwendig ..
    Von Ritchie im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 29.03.2013, 11:18
  2. CCPRO M128: Portbelegung
    Von Dirk im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 22.05.2009, 22:26
  3. Portbelegung bei diesem Display [erledigt]
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 18.11.2006, 18:12
  4. Portbelegung ATmega32
    Von Rob.Anfänger im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 15.11.2006, 19:59
  5. Antworten: 4
    Letzter Beitrag: 12.11.2006, 16:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress