Maga8_2x16-LCD_steurung

Gast #164195
Lesenswert?

Hallo

ich möchte am meine 2x16 LCD die Spannung ausgeben und zwar auf die
erste reihe und eine berechnete Leistung auf die zweite reihe.
weiß nicht, wir ich damit umgehen soll.
Ich habe mir es so vorgestellt dass man die fünf erste zeichnen als
Spannung (Uss = ) reserviert und sechs stelle für die Spannungswert und
dann an ende der Einheit (V)
Gleich werde auch für die zweite reihe für die Leistung.
die routine, benutze ich den von Andreas
Bitte werde sehr Dankbar wenn jemand mir hilft.
Gast #164196
Lesenswert?

Hallo,

Deine Angaben sind etwas dürftig, eine von 1000 Möglichkeiten wäre:

char str[6];
unsigned short u; //hier muss die Spannung drin stehen
unsigned short p; //hier muss die Leistung drin stehen

lcd_gotoxy(0,0);
lcd_puts("Uss = ");
utoa(u, str, 10);
lcd_puts(str);
lcd_putc('V');

lcd_gotoxy(0, 1);
lcd_puts("P = ");
utoa(p, str, 10);
lcd_puts(str);
lcd_putc('W');

Stefan

P.S. Wer ist Andreas ? (Bzw. welcher)
Gast #164198
Lesenswert?

- LCD initialisieren,
- LCD löschen,
- LCD-Cursorposition auf 0 setzen (1. Zeile)
- Text (Vcc=) an LCD ausgeben,
- Wert an LCD ausgaben,
- Text (V) an LCD ausgeben,
- LCD-Cursorposition auf 40 setzen (2. Zeile)
- Text (Pxyz=) an LCD ausgeben,
- Wert an LCD ausgeben,
- Text (Watt auch immer) an LCD ausgeben,
- fertig...

...
Gast #164199
Lesenswert?

@Heike:

Hier kannst du sehen, wie man einen Text oder einen Wert ausgeben
kann.

http://www.mikrocontroller.net/forum/read-1-164017.html#164207
http://www.mikrocontroller.net/forum/read-1-164017.html#164026
http://www.mikrocontroller.net/forum/read-1-164017.html#164028

Lies am besten den ganzen Thread und lade dir die Quelltexte der obigen
Links herunter. Danach kannst du dein Programm entwickeln.

...
Gast #164200
Lesenswert?

Hallo,

ich habe für die Steuerung meinem 2x16 LCD folgende Programme in
Assembler geschrieben die Routine ist von Andreas im Tutorial, aber
weiß immer nicht was ich falsch machst die soll auf meinen Display wie
folgende aussehen:
Zeile 1:  Uss=  Wert(U)   V
          00     05       0D
Zeile 2:  P=  wert(p)  W
          40   45      4D
Kann jemand mein Programm anschauen und mir Helfen?

Werde ich sehr Dankbar.
Angehängte Dateien:
Gast #164201
Lesenswert?

docs kann ich mir nicht so gut angucken. Sind außerdem bestimmt von uno
geächtet, oder?

Klappt die Display Ansteuerung denn 'trocken', also ohne Meßkorsett?
Kannst du was ausgeben? Befehle wie löschen schicken? Cursor setzen?
Gast #164204
Lesenswert?

ldi     temp1,0x05   ; Set DDRAM Adress to 0x05
rcall   lcd_command

Willst du hier den Cursor positionieren?
Wenn ja, dann ist das jedesmal falsch.

Besser:
ldi temp1, 0x80 + 0x?? für erste Zeile

ldi temp1, 0x80 + 0x40 + 0x?? für 2.Zeile.

Steht aber wie immer im Datenblatt des Displays.
Gast #164205
Lesenswert?

Hi...

Wie schon gesagt ist die Positionierung fehlerhaft (siehe auch
Datenblatt).

Nach dem Aufruf von PRINT ist der Aufruf von LCD_DATA nicht
erforderlich, denn LCD_DATA wird ja von PRINT für jedes Zeichen
aufgerufen.

Was aber noch völlig fehlt, ist eine Routine, die deine Messwerte
(Byte, Integer?) in einen ASCII-Text umwandelt und an das LCD ausgibt.
Ein Beispiel, wie man das machen kann, findest du in der Datei
LCDprint.inc (oben genannte Links).

...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren