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.
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
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.