-         

Ergebnis 1 bis 8 von 8

Thema: LCD Steuerung Klappt nicht

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.10.2004
    Ort
    Hamburg
    Alter
    31
    Beiträge
    106

    LCD Steuerung Klappt nicht

    Anzeige

    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

    Code:
    $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

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    33
    Beiträge
    366
    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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.10.2004
    Ort
    Hamburg
    Alter
    31
    Beiträge
    106
    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

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    33
    Beiträge
    366
    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

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    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

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    22.11.2003
    Beiträge
    214
    Hallo,
    probier mal die Einstellung (config ...) nur unter den Menu Options=>Compiler=>LCD vorzunehmen. So funktioniert das bei mir gut.
    Gruß Stefan

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.10.2004
    Ort
    Hamburg
    Alter
    31
    Beiträge
    106
    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

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    30.12.2004
    Alter
    32
    Beiträge
    14
    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
    [EDIT] Habs getestet und funkt.[/EDIT]

    - Thebe

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •