Forum: Mikrocontroller und Digitale Elektronik 8 bit LCD an MSP430F2132


von Hannes (Gast)


Lesenswert?

Hy wollt mal fragen ob jemand ein codebeispiele hat um ein LCD im 8 Bit 
Modus an ein MSP430F2132 anzubinden.

von Sebastian (Gast)


Lesenswert?

Codebeispiel habe ich leider keines, aber wenn man sich einen möglichst 
einfachen Beispielcode für AVR heraussucht, die Portzugriffe und 
Delay-Routinen an die Konventionen des MSP anpaßt und daran denkt, daß 
das Display wahrscheinlich mit 5V läuft, der MSP aber eher mit 3,3, dann 
könnte das eigentlich ganz gut gehen. Kann sein, daß man vom Busy-Flag 
lesen absehen sollte, wenn man keine Schutzbeschaltung hat.

Aber: Findet sich denn kein LCD-Beispiel z.B. für den MSP430F149 oder 
ähnliche, gebräuchliche Typen? So anders ist der F2132 nicht, man könnte 
so ein Beispiel dann fast 1:1 übernehmen.

von Sebastian (Gast)


Lesenswert?

Na ja... will mal heute nicht so sein. Hier ist ein Link:
http://www.mathar.com/msp_lcd1.html

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

So erst mal danke für die Hilfe.
Hab mal angefangen selber was zu schreiben aber des will irgendwie immer 
noch nicht. Das Display zeigt immer noch die 2 Streifen =(
Kann mir vllt irgend jemand helfen

Hier die Port Belegung:

P1.5 RS
P1.6 RW
P1.7 EN
P2.0 DB0
P2.1 DB1
P2.2 DB2
P2.3 DB3
P2.4 DB4
P2.5 DB5
P2.6 DB6
P2.7 DB7

und meine Code und das Datenblatt des Displays.
Die Timmings stimmen soweit.

wäre echt net =)

von holger (Gast)


Lesenswert?

LCD_Data |= BIT5 | BIT4 | BIT3;
  LCD_Clock();
  Delay_1ms(50);
  LCD_Clock();
  Delay_1ms(50);
  LCD_Clock();
  Delay_1ms(50);

von Hannes (Gast)


Lesenswert?

was soll mir das sagen?

von holger (Gast)


Lesenswert?

>was soll mir das sagen?

Ausprobieren?

von Hannes (Gast)


Lesenswert?

achso sry hab nich gesehen das da was geändert wurde.

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

erst mal danke holger habs ausprobiert tut sich leider immer noch nichts 
hier noch das datenblatt

von hannes (Gast)


Lesenswert?

Keiner ne Idee? Laut datenblatt ist Doch alles du richtig oder? 
Verdrahtet ist auch alles richtig hmmm

von Erik (Gast)


Lesenswert?

Hallo Hannes ,
hast du ordentlich Initialisiert dein Display
habe nur Beispiel F149 und assembler
lCD hängt am Port 3 und 4
habe auch lange rumprobiert .
nach der LCD initialisierung sollte nichts in der anzeige zu sehen sein
ansonsten Kontast poti drehen V0 hast du doch dran ?
schon mal mit einen einfachen Diplay probiert ?

    RSEG CODE

LCD       call      #Warte
          mov.b      #030h,&P3OUT        ;Innitialisierung LCD!
          call      #Warte
          mov.b      #00h,&P4OUT
          call      #Warte
          mov.b      #04h,&P4OUT
          call      #Warte
          mov.b      #00h,&P4OUT
          call      #Warte
          mov.b      #04h,&P4OUT
          call      #Warte
          mov.b      #00h,&P4OUT
          call      #Warte

          mov.b      #04h,&P4OUT         ;Funktion set
          call       #Warte
          mov.b      #038h,&P3OUT       ;38h ist richtig für ganzes 
display
          call       #Warte
          mov.b      #00h,&P4OUT
          call      #Warte
          mov.b      #04h,&P4OUT

          call       #Warte             ;Display an
          mov.b      #0Ch,&P3OUT
          call       #Warte
          mov.b      #00h,&P4OUT
          call       #Warte
          mov.b      #04h,&P4OUT

          call       #Warte             ;Display löschen
          mov.b      #01h,&P3OUT
          call       #Warte
          mov.b      #00h,&P4OUT
          call       #Warte
          mov.b      #04h,&P4OUT

          call       #Warte             ;Entry Mode set
          mov.b      #06h,P3OUT         ;6h ist schieben und nach 
rechts!
          call       #Warte
          mov.b      #00h,&P4OUT
          call       #Warte
          mov.b      #04h,&P4OUT         ;Ende initialisierung ?
          Ret

Zweite    mov.b     #04h,&P4OUT
          call      #Warte2
          mov.b     #0A8h,&P3OUT         ;Zweite zeile anfang
          call      #Warte2
          mov.b     #00h,&P4OUT
          Ret

Erste     mov.b     #04h,&P4OUT
          call      #Warte2
          mov.b     #02h,&P3OUT         ;Return home
          call      #Warte2
          mov.b     #00h,&P4OUT
          Ret
Loesche   mov.b      #04h,&P4OUT        ;Display löschen
          call       #Warte
          mov.b      #01h,&P3OUT
          call       #Warte
          mov.b      #00h,&P4OUT
          ;call       #Warte
          ;mov.b      #04h,&P4OUT
          Ret

Warte     mov       #500h,Warten
Warte1    Dec       Warten
          JNZ       Warte1
          Ret

Warte2    mov      #0100h,Warten         ;100h  test
Warte3    Dec       Warten
          JNZ       Warte3
          Ret

von hannes (Gast)


Lesenswert?

Also Kontrast hab ich schon rumprobiert aber hat nichts geholfen und Sry 
assembler hilft mir gar nicht weiter hab ich nahmlich keine Ahnung davon 
bin Grad wieder am rumprobieren aber geht leider immer noch nicht

von hannes (Gast)


Lesenswert?

Kann mir denn niemand helfen?

von Jörg S. (joerg-s)


Lesenswert?

holger schrieb:
> LCD_Data |= BIT5 | BIT4 | BIT3;
Was soll das geben?


Das Datenblatt (was recht bescheiden ist was die Kommandos angeht), 
spricht davon das Function-Set als erstes übertragen werden soll.
Für 8bit, 2/4-Zeilen, 5x8 also 0x38

Am besten schaust du mal in das Datenblatt:
www.crystalfontz.com\controllers\ST7066U.pdf
Das ist besser.

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.