www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD springt nicht an


Autor: Christoph Wagner (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.