mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik hd44780 / LCD SC1602D / ATmega16 (STK500)


Autor: LordIMBA (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich weiß ihr werdet das blanke kotzen kriegen, weil schon wieder jemand 
kommt und nen Problem mit der Ansteuerung eines LCD Display's über den 
hd44780 hat. :-) Aber ich finde das Problem einfach nicht. Vielleicht 
ist ja jemand unter euch der mal eben meinen Quellcode durchliest und 
zack den Fehler findet.

Also ich will den Controller im 4 bit Modus laufen lassen und habe 
folgende PIN-Belegung verwendet.

MCU  LCD
PD0  DB4
PD1  DB5
PD2  DB6
PD3  DB7
PD4  RS
PD5  E
     R/W -> GND

Mein Problem ist, dass ich bei der jetzigen init nichts dargestellt 
bekomme auf dem Disp. irgendwie hab ich das Gefühl, dass es am timing 
liegt aber ich habe jetzt schon so viel mit _delay rumgedoktert da kommt 
nichts bei rum.
Wenn ich die init derart umschreibe, dass die Befehlszeilen aus dem 
Datenblatt des hd44780 Seite 213 einzeln auf den PORT gegeben werden 
dann sehe ich zwar nen blinkenden curser der mit auch irgendwelche 
Zeichen darstellt aber niiie das was ich sehen will.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
static void lcd_out( uint8_t data )
{  
  data &= 0x0F;   

  LCD_PORT &= 0xF0;
  LCD_PORT |= data;  

  LCD_PORT |= (1<<LCD_EN);
  _delay_us(1);    
  LCD_PORT &= ~(1<<LCD_EN);
}

Autor: Muetze1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG am Port D abgeschaltet?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>JTAG am Port D abgeschaltet?

Welcher AVR hat am PortD das JTAG-Interface?

MfG Spess

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie vermisse ich die INIT Routine die das LCD Initialisiert.
Ohne Initialisierung kommt da nur mist raus.

Bei der Initalisierung must ja dafür sorgen das LCD-controller in den
4-Bit-Modus geht.

Hier mal ein Codeschnipsel meiner INIT-routine in Assembler.

LCD_INIT:

CALL  LCD_Pause_15ms ; Warte
LDI   temp,0x30      ; 8 Bit - Mode muss 3 mal gesendet werden
CALL  LCD_Intialisieren ; Busy-Flag Abfragen ist hier noch nicht möglich
CALL  LCD_Pause_4ms
LDI   temp,0x30
CALL  LCD_Intialisieren
CALL  LCD_Pause_4ms
LDI   temp,0x30
CALL  LCD_Intialisieren
CALL  LCD_Pause_4ms
LDI   temp,0x20          ; jetzt umschalten auf den 4 bit mode
CALL  LCD_Intialisieren
CALL  LCD_Pause_4ms

LDI   temp,_LCD_SetRE               ;nur bei EADIP204-4 verwenden
CALL  LCD_Komando

LDI   temp,_LCD_ExtfuncSet          ;nur bei EADIP204-4 verwenden
CALL  LCD_Komando
LDI   temp,_LCD_Schnitstellenbreite ; Funktion Set
CALL  LCD_Komando
LDI   temp,_LCD_AUS                 ; LCD-Display ausschalten
CALL  LCD_Komando
LDI   temp,_LCD_Loeschen            ; LCD  Löschen
CALL  LCD_Komando

LDI   temp,_LCD_Betriebsart
CALL  LCD_Komando
LDI   temp,_LCD_EIN
CALL  LCD_Komando

RET

Soll nur als Anregung dienen. Schau mal in dein Datenblatt rein ob es 
Beipiele zur Initialisierung gibt 8 und 4 Bit Modus.

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dein µC genug Beinchen frei hat, dann würde ich es erst mal im 
8-Bit-Modus versuchen. Der ist weniger fehleranfällig als der 
4-Bit-Modus und somit das erste Erfolgserlebnis fast vorgrogrammiert.
Wenn das gelungen ist kann man immer noch auf den 4-Bit umsteigen.

Gruß Skriptkiddy

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.