Forum: Mikrocontroller und Digitale Elektronik S65 Display am 8051


von Daniel R. (sliderbor)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche gerade ein S65 Display (LPH88 Version) an meinem 
AT89C51SND1C zum Laufen zu bewegen, doch leider bleibt das Display 
bisher weiß.

Das Display ist direkt am SPI und P0_0 bis P0_2 angeschlossen ohne 
Vorwiderstände oder sonst was, da der Controller mit 3V läuft, was also 
passen sollte.

Leider habe ich bisher keine Codebeispiele für einen 8051er gefunden, 
nur für AVRs. Ich habe also versucht, das Codebeispiel von Christian 
Kranz für meinen uC zu portieren.

Dadurch gab es zum Beispiel keine Delay-Funktion (arbeite mit Keil 
uVision 3), also hab ich mir selbst eine geschrieben mittels Timer0. 
Funktioniert soweit auch gut.

Was wohl durch die komplett andere Architektur des 8051ers überhaupt 
nicht mehr richtig stimmt, sind die ganzen Timings beim Senden der 
Befehle.

Im Code stehen noch die originalen Befehle für den AVR auskommentiert 
drin. Diese habe ich dann durch entsprechende Befehle ersetzt ( jeweil 
mit /* eigener Code */ markiert).
Ansonsten habe ich soweit alles übernommen, was man brauchen sollte um 
das Display zunächst mal mit einer Farbe zu füllen.
Ich denke, dass die Einstellungen fürs Clock Polarity und Clock Phase 
Bit richtig sind, aber 100% sicher bin ich mir nicht.

Der gesamte Code ist im Anhang, vielleicht hat ja jemand eine Idee, was 
falsch sein könnte oder vielleicht hat das sogar schon mal jemand 
portiert.

Für jede Hilfe wäre ich sehr dankbar!

Schöne Grüße!

Daniel

von Daniel R. (sliderbor)


Lesenswert?

Hat keiner einen Tipp oder Lösungsansatz? Oder braucht ihr noch weitere 
Infos?

von rf-bug (Gast)


Lesenswert?

Lese dir die Sachen vom Christian richtig durch. Wichtig ist bei der 
Initialisierung die ~50µs Delay. Und an den SPI-Bus vom µC musst du auch 
dran. Sonst funzt es nicht.

von MC (Gast)


Lesenswert?

>Das Display ist direkt am SPI und P0_0 bis P0_2 angeschlossen
Ich weiß jetzt nicht, wie P0_0 und P0_2 geschaltet werden, um den 
Display anzusprechen. Aber P0 allgemein besitzt keine Pull-up 
Widerstände. Somit kennt P0 nur die Zustände "nach Masse geschaltet" und 
"offen". Ein logisch 1 muss durch externe Pull-up erzeugt werden.
Vielleicht hilft das ja weiter.

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.