Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD Steuerung Klappt nicht
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
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
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
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
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, 12:42
Hallo,
probier mal die Einstellung (config ...) nur unter den Menu Options=>Compiler=>LCD vorzunehmen. So funktioniert das bei mir gut.
Gruß Stefan
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.