Forum: Mikrocontroller und Digitale Elektronik RAM Startadresse Display


von Schüler (Gast)


Lesenswert?

Hallo

Ich bin gerade dabei mir die lcd.h bzw lcd.c von Peter Fleury (wenn ich 
es noch richtig im Kopf habe) anzusehen.

Er definiert im lcd.h

// Set DD RAM Address --------- 0b1xxxxxxx  (Display Data RAM)
#define LCD_SET_DDADR           0x80

Wenn ich jedoch im Datenblatt des Controllers nachsehe
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
finde ich nirgends die StartAdresse des Display Data RAM.
Kann mir da jemand behilflich sein?

Dankeschön vielmals

von Nop (Gast)


Lesenswert?

Schüler schrieb:

> Wenn ich jedoch im Datenblatt des Controllers nachsehe
> https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
> finde ich nirgends die StartAdresse des Display Data RAM.

Seite 29, ganz oben sowie Seite 30, Zeichnung 13.

von Harry L. (mysth)


Lesenswert?

Ein gesetztes höchstes Bit signalisiert dem Controller auf dem Display, 
daß sich in den unteren 7 Bit die DDRAM-Adresse befindet.

von Schüler (Gast)


Lesenswert?

Nop schrieb:
> Schüler schrieb:
>
>> Wenn ich jedoch im Datenblatt des Controllers nachsehe
>> https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
>> finde ich nirgends die StartAdresse des Display Data RAM.
>
> Seite 29, ganz oben sowie Seite 30, Zeichnung 13.

Ja, die Adresse kann sein für einen 1-Zeiler: 0x00-0x4F
2-Zeiler: 00H to 27H für Zeile 1 und 40H to 67H für Zeile 2

Ich verstehe nämlich gerade nicht, warum bei ihm die Startadresse nicht 
immer 0 ist, wenn er folgende Anweisungen schreibt:

data = LCD_SET_DDADR + LCD_DDADR_LINE1 + x;

void lcd_setcursor( uint8_t x, uint8_t y )
{
    uint8_t data;

    switch (y)
    {
        case 1:    // 1. Zeile
            data = LCD_SET_DDADR + LCD_DDADR_LINE1 + x;
            break;
...

Wieso ist die Startadresse 0x80 und nicht 0x20?
Das ist doch weder in der Zeile 1 noch in der Zeile 2 gegeben.
Was übersehe ich da?

von Schüler (Gast)


Lesenswert?

Harry L. schrieb:
> Ein gesetztes höchstes Bit signalisiert dem Controller auf dem
> Display,
> daß sich in den unteren 7 Bit die DDRAM-Adresse befindet.

Vielen Dank

Dass heisst indirekt also auch, dass zum Lesen des Busy Flags nur DB7 
gelesen werden muss.
Die restlichen Bits mit A gekennzeichnet kann ich in diesem Fall 
ignorieren.

S.30
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

von c-hater (Gast)


Lesenswert?

Schüler schrieb:

> Dass heisst indirekt also auch, dass zum Lesen des Busy Flags nur DB7
> gelesen werden muss.
> Die restlichen Bits mit A gekennzeichnet kann ich in diesem Fall
> ignorieren.

Ganz genau so ist das.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.