[Probleme mit] HD44780-LCD ansteuern
Hallo zusammen!
Ich bin ein Einsteiger im Gebiet MCs (AVR).
Mein aktuelles Projekt beinhaltet, ein LCD (HD 44780-kompatibel) mit einem ATmega32 anzusteuern.
Ich verwende dazu ein WINTEK WD-C2704M-1HNN mit 4*27 Zeichen im 4-bit Modus.
Meine Verschaltung liegt dabei an PortC.
Die Pinbelegung ist wiefolgt:
Db4 = Portc.4
Db5 = Portc.5
Db6 = Portc.6
Db7 = Portc.7
E = Portc.1
E2 = Portc.0
Rs = Portc.3
DB0-DB3 liegen auf Ground
RW liegt ursprünglich auf PortC.2, habe ich aber testhalber derzeit auf Ground, es ergibt sich aber derzeit kein beobachtbarer Unterschied.
Ich habe im Programm das RN-Wissen genutzt. Der Code ist folgender:
Code:
'$lib "lcd4e2.lbx"
$regfile = "m32def.dat"
$crystal = 1000000
Config Lcd = 40 * 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.1 , E2 = Portc.0 , Rs = Portc.3
Dim ___lcde As Byte
___lcde = 0
'Initlcd
Cls
Do
Upperline
Locate 1 , 3
Lcd "Hallo Welt"
Waitms 1000
Locate 1 , 3
Lcd "Hello World"
Waitms 1000
Loop
End
Was ich jetzt beobachte ist, dass das LCD alle Felder der jeweils Controllerbezogenen oberen Zeile (d.h. Zeile 1 und 3) komplett dunkel einfärbt und die jeweils untere Zeile (2 und 4) komplett hell.
Dies scheint der Zustand des LCDs zu sein, wenn schlichtweg nur Spannung anliegt, weil das LCD während des Programmierens und auch sonst immer das anzeigt.
Der ATmega32 an sich tut korrekt, denn ich habe an ihm schon andere Sachen (LED blinkend,..) vor kurzem ausgeführt. D.h. er wird auch korrekt programmiert und tut.
Was mache ich falsch?
Gruß
E. Hakennase
Liste der Anhänge anzeigen (Anzahl: 1)
Doppelpost, weil neuer Inhalt
Soo,
ich habs jetzt nochmal damit versucht umzusetzen. Ich habe mal angenommen, dass die Standardlibrary genommen wird (also kein $lib sonstwas-Eintrag)
Leider auch dasselbe Ergebnis.
Ich poste zur Sicherheit hier mal den Schaltplanausschnitt mit Kommentaren, vielleicht liegt da ein Fehler drin begraben?
Kommentare zum Schaltplan:
- Das IC ist ein Atmel ATmega32
- Das Poti hat einen korrekten Wert (ich glaube 4,7k wars, Platine liegt nebenan), jedenfalls funktioniert die Kontrastfunktion
- Der Wannenstecker zum LCD hat folgende Belegung laut Datenblatt:
- 1 GND
- 2 VDD +5V
- 3 Vo (Kontrastspannung)
- 4 RS
- 5 R/W
- 6 E1
- 7 E2
- 8-15 D0-D7
[Edit]RW[/Edit] liegt per MC programmiert auf GND