PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Steuerung Klappt nicht



khazad
06.01.2005, 13:04
Hich habe mir bei Reichelt Das LCD 162C LED gekauft und an meinen Mega16 Angeschlossen aber irgend wie will der nicht so wie ich das will ich habe keine ahnung was ich falsch mache, benutze den internen 8Mhz Oszillator.

Hier mal mein Quell Code vllt könnt ihr mir ja sagen was ich falsch mache
schon mal danke Maik


$regfile = "m16def.dat"
$crystal = 8000000

Config Porta = Output
Config Portc = Output

Baud 9600

Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
'DB0 bis DB3 Liegen auf Masse und R/W auch
Config Lcdbus = 4
Config Lcd = 16 * 2
Initlcd
Display On
Locate 1 , 1

Cls
Do

Lcd "Hello world."
Portc.0 = 1
Portc.1 = 1
Waitms 500
Portc.1 = 0
Waitms 500
Loop
End

Xeus
06.01.2005, 22:00
Hallo,
versuchs mal hiermit. Mußt die portbelegung halt noch modifizieren.



$regfile = "m8def.dat"
$crystal = 10000000

Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.7 , Rs = Portd.6
' Natürlich so wie es wirklich angeschlossen ist (4-Bit-Modus)


Dim A As Byte
Config Lcd = 16 * 2 'configure lcd screen
'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses over 2 lines

'$LCD = address will turn LCD into 8-bit databus mode
' use this with uP with external RAM and/or ROM
' because it aint need the port pins !
Do
Cls 'clear the LCD display
Lcd "Test"
Locate 2,1
LCD "Hallo Welt"
loop






Viel Glück!

Xeus

khazad
07.01.2005, 08:43
Leider Funzt die Ansteuerung immer noch nicht ich habe versucht das ganze mal im 8Bit modus laufen zu lassen aber irgendwie kommt da trotzdem nichts an kann es sein das ich im 8bit modus R/W auch irgendwo drann machen muss also nicht auf GND legen ??
Ich weiss langsam echt nicht mehr wieiter oder kann mir einer von euch vllt mal nen anschlussplan für das LCD im 4Bit Modus schicken ??

Schon mal Danke Mfg Maik

Xeus
07.01.2005, 09:26
Hier hast du die anschlußtabelle, ich hoffe sie hilft dir weiter


1 Vss GND
2 Vcc 5V
3 Vee GND oder Poti
4 RS PD4 am AVR
5 RW GND
6 E PD5 am AVR
7 DB0 GND
8 DB1 GND
9 DB2 GND
10 DB3 GND
11 DB4 PD0 am AVR
12 DB5 PD1 am AVR
13 DB6 PD2 am AVR
14 DB7 PD3 am AVR


Viel Glück

Michael
07.01.2005, 11:14
Hallo khazad,


aber irgend wie will der nicht so wie ich das will



aber irgendwie kommt da trotzdem nichts an

beschreibe bitte deinen Fehler genauer!
Hast du die Kontrastspannung richtig eingestellt?
Gruß, Michael

bergowitch
07.01.2005, 11:42
Hallo,
probier mal die Einstellung (config ...) nur unter den Menu Options=>Compiler=>LCD vorzunehmen. So funktioniert das bei mir gut.
Gruß Stefan

khazad
10.01.2005, 08:48
Hab das LCD jetzt an meinen Mega8 geklemmt und da geht dasd jetzt hab keine Ahnung warum das beim Mega16 nicht geklapppt hat... Wie kann ich eigentlich werte die Größer als 255 sind in dem EEPROM speichern ? ? gibt es ne möglichkeite ihm zusagen das er die Zahl aufteilen soll ?? ich habe das jetzt erstmal so gelöst das er die werte die größer als 255 sind durch 4 teilt und vorher einene speicherplatz auf 00 setzt und einen danach auch aber ich bin mit der Lösung nicht richtig zufrieden weil er dann bei ungeraden zahlen nicht mehr genau ist.

Währe echt cool wenn ihr mir dabei weiter helfen könntet


Mfg Maik

Thebe
10.01.2005, 14:29
DIM B as Byte
DIM Platzhalter as Byte
DIM AnyVar as Long 'Deren Inhalt willst Du in den E²PROM schreibenWillst du reinschreiben (EDIT, hab ganz vergessen das Integer nur 2 Byte lang is, Long is richtig)
DIM EPromAddy as Integer

EPromAddy = 0
Platzhalter = 0
AnyVar = DeinWert

'schreiben
FOR PlatzHalter = 1 To 4
B = AnyVar
WriteEeprom B, EPromAddy
EPromAddy = EPromAddy + 1
ROTATE AnyVar, Right, 8
Next Platzhalter

EPromAddy = 0
AnyVar = 0
'Lesen
FOR Platzhalter = 1 to 4
ReadEEPROM B, EPromAddy
AnyVar = AnyVar + B
Rotate Anyvar, Right, 8
EPromAddy = EPromAddy + 1
Next Platzhalter


Habs getestet und funkt.

- Thebe