Forum: Mikrocontroller und Digitale Elektronik LCD mit T6963C via µC


von Juergen2k (Gast)


Lesenswert?

Hallo,
ich ahbe ein Grafik LCD mit einem T6963C an meinen Pic angeschlossen.
Der Bus leigt auf PortB und die 4 Steuerleitungen (CD, RD, WR, CE) auf
PortA 0 bis 3. Es ist auf 6 Pix gelötet (also FS1 auf +5V)
Habe nun ein kleines Beispielprogramm entwickelt und versucht nur
einmal ein Zeichen auszugeben. Davor habe ich es folgendermaßen
initialisiert:

Graphics Home Adress: 0000h
Graphics Are Set: 0028h (also nach 40 Byte ne neue Zeile)
Text Home Adress: 1400h
Text Area Set: 0028h (also nach 40 Zeichen ne neue Zeile)
Display Mode: 9Eh (10011110 -> Text on, Grafik on, Cursor on Blink
off)
Mode Set: 81h (10000001 -> internal Rom, EXOR Mode)
CG Ram: 03h (also CG Ram ab 1C00h)
Cursor Pointer: 0000h
Adress Pointer: 0000h

und dann habe ich versucht ein Zeichen auszugeben und bin mit dem
Adress Pointer auf 1400h (Also in den Text Bereich) und mit dem Cursor
Pointer auf 0101h und dann hab ich mal versucht ein Zeichen zu
schreiben (also Data 21h und Command C0h) aber es geht nicht.
Bildschirm verändert sich nix..

Hab ich was vergessen? Kann mir jemand helfen? Bin für jede Hilfe
dankbar...


hab mal die source hochgeladen. könnt sie euch ja mal anschauen ob ihr
was findet was nicht passt.. danke
die file heißt bcu.asm und ihr findet sie unter

http://juergen2k.lima-city-webspace.de/

von thkais (Gast)


Lesenswert?

Leider kann ich mit nem PIC nix anfangen, aber evtl. liegts ja am
Display. Daß es eine negative Spannungsversorgung braucht, weißt Du?

von Juergen2k (Gast)


Lesenswert?

ja neg spannung ist da.. am display kanns nicht liegen. mitm pc gehts
nämlich

von Klaus (Gast)


Lesenswert?

Hallo Jürgen,

wenn ich dein Programm richtig lese, setzt du den Adresspointer
in der main Schleife auf 0000h

meine c Function mit xy Positionierung des Char sieht so aus:

void write_char(unsigned char data, unsigned char x,unsigned char y,
)
{
  unsigned char pos;
  pos=y*LCD_TEXT_AREA+x;
  write_data(pos);
  write_data(0x00);
  write_command(0x24);   //address Pointer ausgabe
  write_data(data);      // UP zur datenausgabe
  write_command(0xC0);
}

von Klaus (Gast)


Lesenswert?

Hallo,

zur Vorigen Antwort habe ich noch vergessen deine
Text Home Adresse ist 1400h deswegen musst du den
Adresspointer für die Adresse 0 im Textbereich auf 1400h setzen

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.