-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: LCD von Reichelt EA DIPS082

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2004
    Beiträge
    9

    LCD von Reichelt EA DIPS082

    Hallo zusammen,
    mal wieder ein Problem mit einem LCD, hängt Euch bestimmt schon zum Hals raus das Thema aber.....wat mut, dat mut
    Es handelt sich um ein 2-zeiliges, 8-stelliges Display mit KS0073/HD44780 kompatiblem Chip, das bei mir kein Zeichen zur Anzeige bringt. Das einzige was immer permanent angezeigt wird ist der schwarze Balken in der ersten Zeile, sonst regt sich nichts. Ich hab schon alles mögliche versucht...Verdrahtung 100-fach kontrolliert (ja, Kontrast funktioniert, Standard-Pinbelegung für 4-Bit-Modus: DB4=Portb.4, DB5=Portb.5, DB6=Portb.6, DB7=Portb.7, E=Portb.2, RS=Portb.0)
    Ich hab sogar schon manuell eine Initialisierungssequenz für den 4-Bit-Modus nach Datenblatt KS0073 geschrieben und verschiedene Libs getestet, alles ohne Erfolg. Keine Sorge, das Display hab ich auch schon getauscht, die Spannungsversorgung ist o.k. der Debugger vom AVR-Studio zeigt die richtigen Signale auf den Ports.... ich weiß nicht mehr weiter, hat jemand eine grundlegende Idee? Ach ja, ich verwende einen Tiny26, falls das interessiert...
    Gruß
    Heiner

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    poste mal bitte deinen bascom-code!
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2004
    Beiträge
    9
    na gut, vielleicht kann man das folgende als Diskussionsgrundlage gebrauchen:

    Code:
    '#############################################
    '#  Compiler Anweisungen
    '#############################################
    
    $crystal = 2000000                                '2 MHz,
    $regfile = "At26def.dat"                          'Tiny26
    '$sim
    '$lib "lcd4busy.lib"                              'testweise
    $lib "lcd4.lbx"
    
    '#############################################
    '#  Hardware initialisieren
    '#############################################
    
    Ddra = &B10011011               'DDRA 7,4,3,1,0 Ausgang / 6,5,2 Eingang
    Porta = &B01000000               'Pullup an 6
    Ddrb = &B11111111                'DDRB alle Ausgang
    'Portb = &B00000000               'testweise
    
    'EA DIPS082, Reichelt 2*8 Zeichen
    'bereits in Options/Compiler/LCD eingestellt:
    'Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.0 , E = Portb.2
    'Config Lcd = 16 * 2                                     '16*2 als Grundlage
    'Config Lcdbus = 4                                       '4-Bit Bus
    'Config Lcdmode = Port                                  'Data mode: PIN
    
    '#############################################
    '#  Konstanten, Variablen
    '#############################################
    
    'Const _lcdport = Portb      'zum Test mit "lcd4busy.lib"
    'Const _lcdddr = Ddrb
    'Const _lcdin = Pinb
    'Const _lcd_rs = 0
    'Const _lcd_e = 2
    'Const _lcd_rw = 6
    
    Dim X As Byte
    
    '#############################################
    '#  Hauptprogramm
    '#############################################
    
    Do
    
    Cls
    Locate 1 , 1
    Waitms 10
    Lcd "hello world"                 'Schnickschnack, Haupsache es läuft etwas
    Waitms 10
    
    For X = 1 To 5
       Shiftlcd Right
       Waitms 50
    Next X
    
    For X = 1 To 5
       Shiftlcd Left
       Waitms 50
    Next X
    
    Wait 1
    Toggle Porta.7            'Zur optischen Kontrolle mit einer LED
    Loop
    Der Simulator läuft übrigens prima. Könnte es vielleicht sein, daß eine Anpassung der Lib für das Modul notwendig ist? Leider kann ich mit der Demo-Version anscheinend keine Änderungen vornehmen.
    Bin gespannt...
    Heiner

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    18.10.2004
    Ort
    Cottbus
    Beiträge
    38
    irgendwie fehlt da die Initialisierung für das Display
    "INITLCD"

    Und die Config LCD Anweisungen, drin stehen lassen, nicht auskommentieren.

    MfG Andreas

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2004
    Beiträge
    9
    Hi Andreas,
    wenn Du mal im Handbuch nachliest, heißt es da unter initlcd: "The LCD display is initialized automatic at start up when LCD statements are used by your code. If fore some reason you would like to initialize it again you can use the INITLCD statement" ...wird also automatisch durchgeführt, hab ich aber trotzdem schon getestet....
    An der Auskommentierung kannst Du sehen, daß ich "Config LCD" auch schon versucht habe.....
    kennt vielleicht jemand ein grundlegendes Problem mit diesem Display?
    Gruß
    Heiner

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo HeinerDE,
    In deinem Code hast du das "End" vergessen.
    Wie hast du RW beschaltet?
    Gruß, Michael

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2004
    Beiträge
    9
    Hi Michael,
    !!! Do ... Loop !!!
    RW hab ich in verschiedenen Varianten getestet. einmal natürlich auf Masse gelegt, zum anderen und im Zusammenhang mit der lcd4busy.lib auf Portb.6 wie Du im Quelltext sehen kannst.
    Hat denn niemand so ein Display getestet?
    Gruß
    Heiner

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo HeinerDE,
    !!! Do ... Loop !!!
    ja, klar. Sollte man meinen. Leider klappt das nicht immer. Gerne werden noch Reste eines alten Programmes ausgeführt.
    Aber darauf kommst du sicher auch noch.

    Gruß, Michael

    Edit:
    im Zusammenhang mit der lcd4busy.lib auf Portb.6 wie Du im Quelltext sehen kannst
    meinem Verständnis nach kannst du für RW nur Ports zwischen 0 und 3 wählen.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Zitat Zitat von Michael
    meinem Verständnis nach kannst du für RW nur Ports zwischen 0 und 3 wählen.
    Nur für RW oder gilt das für E und RS auch?

  10. #10
    Gast
    Hallo Heiner

    hier ein einfaches LCD Programm das funktioniert
    Du brauchst nur deinen Prozessor und die LCD Verdrahtung anpassen, dann sollte es gehen. (hatte ich schonmal gepostet)


    Code:
    
    'Fehlersuche LCD
    
    'LCD mit HD44780 kompatiblem Controller
    'Anschluß
    'LCD Pin 1 =  0Volt (GND)
    'LCD Pin 2 =  +5 Volt (VDD)
    'LCD Pin 3 =  0-5 Volt Kontrast (V0): Poti 10k zwischen 0V und 5V Schleifer an LCD3
    'LCD Pin 4 =  RS an PortA.2
    'LCD Pin 5 =  R/W an GND      
    'LCD Pin 6 =  E an Porta.3
    'LCD Pin 7 =  DB0       'frei
    'LCD Pin 8 =  DB1       'frei
    'LCD Pin 9 =  DB2       'frei
    'LCD Pin 10 = DB3       'frei
    'LCD Pin 11 = DB4   an Porta.4
    'LCD Pin 12 = DB5   an Porta.5
    'LCD Pin 13 = DB6   an Porta.6
    'LCD Pin 14 = DB7   an Porta.7
    
    '_____________________________________________________________
    
     $crystal = 16000000
     '$regfile = "m8515.dat"        'auskommentiert, denn ich verwende ATMega16
     $regfile = "m16def.dat"
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
    
    Initlcd                                 'initialisiert das LCD
    
    '--------------------------------------------------------------
    
    Do                                      'Begin Hauptschleife
    Cls                                     'löscht LCD
    Upperline                               'setzt Cursor in die obere Zeile
    Lcd "Erster Test"                    ' schreibt ins LCD
    Lowerline                              'setzt Cursor in die untere Zeile
    Lcd "Hallo Welt!!!"                 'schreibt ins LCD
    
    Wait 1                                  'wartet 1 sekunde
    Cls                                     'löscht LCD
    Wait 1                                  'wartet 1s und schreibt erneut
    
    Loop                                    'erneut aufrufen
    End
    siehe auch http://www.roboternetz.de/phpBB2/viewtopic.php?t=7994

    Gruß Bernd (Gandalf)

    Das zentrale Problem wird leicht übersehn ! Dietrich Drahtlos.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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