Forum: Mikrocontroller und Digitale Elektronik LCD springt nicht an


von Christoph Wagner (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich habe ein Problem mit meinem LCD, welches sich nicht ansteuern
lässt. Das LCD ist das WINTEC WK sonstwas, industriestandardkompatibel,
4x27 mit 2 controllern, jeweils für die untere und obere
Bildschirmhälfte.

Anschlussbelegung :

GND    GND
Vcc    Vcc
Vkon   5K Poti
R/W    GND
RS     PD7
EN1    PC0
EN2    PC1
D0..7  A0..7

Falls Fragen zur Spannungsversorgung :

          ________
          |        |
IN  ------|  7805  |------ +5V
      |   |________|   |
 10µF =        |       = 10µF
      |        |       |
GND ---------------------- GND

Im Anhang befindet sich das Codebeispiel, mit dem ich vergeblich
versucht habe, das LCD zu initialisieren.Den Code habe ich übrigens aus
dem LCD Tutorial von dieser Seite zusammengeschustert.

Übrigens ...
Ich verwende als Microcontroller den ATMEGA16, und beim Anlegen von
Saft an das Display erscheinen zwei schwarze Balken, für jede
Displayhälfte die obere Zeile, was auf einen Resetseitig einzeiligen
Displaymodus schließen lässt.

von Andi (Gast)


Lesenswert?

Check noch mal die Init-Routine.
Kommt mir vor, das es das unveränderte Original aus dem LCD-Tutor ist
welche den 4Bit-Mode aktiviert aber Du hast den Rest auf 8Bit-Mode
geändert.
Für die Umschaltung von RS mach doch lieber

 sbi PortD,7 oder cbi PortD,7

statt

 ldi 0b10000000,Temp1
 out PortD,Temp1

Wieso machst Du das nicht von Haus aus im 4Bit-Mode?
Jeder µC-Pin kann irgend wann mal besser nützlich sein.

Gruß
Andi

von Christoph Wagner (Gast)


Lesenswert?

Eigentlich wollte ich das Ding im 8bit ansteuern, da an dem Datenbus ein
Treiber hängt, hinter dem Treiber 8 Wiederstände und dann ein LED
Display, dass von anderen Pins (und ein Paar Transistoren) des PORTC
gemultiplext wird. Sprich: Die Pins sind sowieso genutzt, und warum
dann nicht gleich das LCD ranhängen ?
Geplant ist, dass bei einem Zugriff auf das LCD das LED-Display
kurzzeitig ausgeschaltet wird, um dann wieder über PORTA im Betrieb zu
gehen.
Leider haben die meisten im Internet nie einen Fall erlebt, in dem man
mal 8 Bit benötigt, darum hat sich anscheinend auch noch niemand die
Mühe gemacht eine 8-bit library zu schreiben, also muss man das selbst
anfassen, und da ich bisher nur in Assembler für nicht-mikrocontroller
geschrieben habe, musste das ja schiefgehen.. <8-) {Tja!}
Ich wäre für irgendwelche Anregungen sehr dankbar.

von dave (Gast)


Lesenswert?

Man schreibt ja in die Source rein, wie man das Kindchen angeschlossen
hat. Ist ja sogar gemacht, aber das stimmt zu 99,99% nicht mit deinem
überein.

Warum verwendest du 3 Ports? A, C, D? Da kann doch was nicht stimmen.
Und nimm trotzdem 4bit.

dave

von Christoph Wagner (Gast)


Lesenswert?

Im anderen Post hab ich den Fehler schon berichtigt. Der Source ist z.T.
aus dem LCD Tutorial entnommen, und daher sind die Portangaben im Source
falsch. Folgende Anschlussbelegung am ATMEGA16:

PORTA    : Datenbus an LCD und Segmentanodeneingänge des LED-Displays
PORTB    : Steuerausgänge (alle 8)
PORTC0,1 : LCD Enable 1 und 2
PORTC2,3 : LED Select 1 und 2
PORTC4-7 : Steuerausgänge (alle 4)
PORTD0-6 : Mikrotaster
PORTD7   : LCD Register Select

Aufgrund der Anordnung der Pins am DIL-Gehäuse ist diese Belegung mit
niedrigem  Verdrahtungsaufwandverbunden, und somit am günstigsten

von Andi (Gast)


Lesenswert?

Schon klar, ist der LCD-Connector links vom µC nimmt man PortB oder
lieber PortD, ist er rechts dann PortA oder PortC.
Aber deswegen muß man nicht die ganze Ansteuerung auf 3 Ports
verteilen, ist doch quatsch.

Im 4Bit-Mode ergeben sich folgende Leitungen am Beispiel des PortD:
1. Data: PD0 - PD3 (D4 - D7), D0 - D3 vom LCD auf GND.
2. RS: PD4.
3. EN1: PD5. Ist EN1 (PD5) high nimmt der 1. Controller die Daten an D4
- D7 und RS an.
4. EN2: PD6. Ist EN2 (PD6) high nimmt der 2. Controller die Daten an D4
- D7 und RS an.
5. 2x Backlight-LED: Lassen sich beide über PD7 und dann über einen
stärkeren Transistor parallel ansteuern, PWM ist dann auch möglich.

Wie Du siehst, braucht man für ein 4-Zeilen-LCD eigentlich nicht mehr
als 8 Pins inkl. LED´s und der Verdrahtungsaufwand wird wesentlich
geringer.

Gruß
Andi

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.