www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 4 Bit initalisierung


Autor: lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin ich hab in meiner Bastel-Kiste ein 20 Zeichen 4 Zeilen Display 
gefunden mit dem 4478 Controller drauf. und ich dachte mir das man damit 
bestimmt nette sachen bauen kann als wollte ich mal testen ob es noch 
funktioniert.

nach kurzen anfangschwierigkeiten hab ichs dann hinbekommen das in zeile 
1 und 3 ein schwarze balken ist. also erst eindruck schonmal gut und 
wollte ich mal kurz nen text ausgeben.

irgendwie hat die initalisierung vom tuturial hier nicht bei mir 
geklappt. Ich verwende einen ATMEGA 32 und hab ein kleines programm 
geschrieben ich hab noch nie ein Display im 4 bit modus betrieben und 
hab ka ob dat überhaupt so stimmt.
#include <avr/io.h>
//#include "lcd-routines.h"
#include <util/delay.h>
 
int main(void)
{
     _delay_ms(200);
  _delay_ms(200);
  _delay_ms(200);

  DDRD  =  0xff;



  PORTD  =  0x03;
  PORTD  |= (1<<PD5);
    _delay_ms(10);
  PORTD &= ~(1<<PD5);           
  _delay_ms(10);

  PORTD  =  0x03;
  PORTD |= (1<<PD5);
    _delay_ms(10);   
  PORTD &= ~(1<<5);           
  _delay_ms(10);


  PORTD  =  0x03;
  PORTD |= (1<<PD5);
    _delay_ms(10); 
  PORTD &= ~(1<<5);           
  _delay_ms(10);


  PORTD  =  0x02;
  PORTD |= (1<<PD5);
    _delay_ms(10); 
  PORTD &= ~(1<<5);           
  _delay_ms(10);

  
//
  PORTD  =  0x02;
  PORTD |= (1<<PD5);    // 4bit operation
    _delay_ms(10);           
  PORTD &= ~(1<<5);           
  _delay_ms(10);


  PORTD  =  0x08;
  PORTD |= (1<<PD5);    //und 5x8 matrix
    _delay_ms(10); 
  PORTD &= ~(1<<5);           
  _delay_ms(10);

//

  PORTD  =  0x00;
  PORTD |= (1<<PD5);    //Display, Cursor, Blink on
    _delay_ms(10); 
  PORTD &= ~(1<<5);           
  _delay_ms(10);


  PORTD  =  0x0F;
  PORTD |= (1<<PD5);    //
    _delay_ms(10); 
  PORTD &= ~(1<<5);           
  _delay_ms(10);


  PORTD  =  0x00;
  PORTD |= (1<<PD5);    //
    _delay_ms(10); 
  PORTD &= ~(1<<5) ;          
  _delay_ms(10);


  PORTD  =  0x01;
  PORTD |= (1<<PD5);
    _delay_ms(10); 
  PORTD &= ~(1<<5);           
  _delay_ms(10);



 
    while(1)
    {
    }
 
    return 0;
}


Autor: lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja die ganzen 10 ms zeiten sind drin weil ich schon gelesen hab das 
oft probleme mit den zeiten auftreten und angeschlossen hab ich es wie 
folgt

E an PD5
RS an PD4

DB4 an PD0
DB5 an PD1
DB6 an PD2
DB7 an PD3

wat könnt ich denn falsch gemacht haben

Autor: lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ihr könnt mich steinigen -......

Viel spass :/


es funktioniert nurn grml

Autor: Daniel Bauer (und3rt4ker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo war denn der Fehla, hab auch kb dat grad durchzulesen, kanns ja grad 
ma sagen, was war^^

THx
und3rt4ker

Autor: lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo ich dödel hab vergessen die rw leitung anzuschließen ... ^^

Autor: Daniel Bauer (und3rt4ker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
grins

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.