-         

Ergebnis 1 bis 9 von 9

Thema: 4*20 LCD ansteuern 2Chips auf dem Display?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627

    4*20 LCD ansteuern 2Chips auf dem Display?

    Anzeige

    Hallo,
    bisher habe ich immer 2 Zeilige Display über 4Bit angesteuert.
    Nun brachte ich mehr Platz und habe ein 20*4 LCD von Reichelt bestellt(LCD 204B LED). Das sieht so aus als ob es 2 Controller hat und es hat auch doppelt so viele Anschlusspinns!

    Wie schließe ich es an, und wie programmiere ich das in Basic?

    Ich habe es sonst immer so programmiert:
    Code:
    'Konfiguration µC:
    $regfile = "2313def.dat"                                    'AT90S2313-Deklarationen
    $crystal = 3686400                                          'Quarz: 3.6864 MHz
    
    
    '-------------------------------------------------------------------------------
    'Ein-/Ausgänge:
    
    
    
    'Konfiguration LCD
    Dim Sresult As String * 16 At &H64 Overlay
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portd.6 , Rs = Portb.0
    Cursor Off Noblink
    
    
    '-------------------------------------------------------------------------------
    'Variablen
    '-------------------------------------------------------------------------------
    
    
    
    
    '-------------------------------------------------------------------------------
    'Programm
    '-------------------------------------------------------------------------------
    
    Do
    
    'Hauptprogramm
    
    
    Gosub Anzeige                                               'In die Anzeigeroutiene springen
    Loop
    
    '-------------------------------------------------------------------------------
    'UnterProgramme:
    '-------------------------------------------------------------------------------
    
    Anzeige:
    Home Upper                                                  'in die obere zeile gehen
    'Locate 1 , 1                                                'Cursor auf 1 Zeile, 1 Spalte
     Cls : Lcd "Zaehler: " + Str(zähler)                        'Anzahl Türöffnungen
    Home Lower                                                  'in die untere zeile gehen
    Lcd "Zaehlermerker: " + Str(zählermerker)                   ' ; ":" + Str(minuten) ; ":" + Str(sekunden)
    
    
    Return                                                      ' wichtig
    '-------------------------------------------------------------------------------
    'Programmende
    vielen Dank schonmal,
    Tobias

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    29
    Beiträge
    373
    hallo tobias,
    das display wird nach datenblatt wie folgt angeschlossen.
    1 Vss GND
    2 Vcc 5V
    3 Vee Kontrastspannung (0V-5V)
    4 RS Register/Select (AVR)
    5 RW Read/Write (GND)
    6 E Enable (AVR)
    7 DB0 Datenbit0 (GND)
    8 DB1 Datenbit1 (GND)
    9 DB2 Datenbit2 (GND)
    10 DB3 Datenbit3 (GND)
    11 DB4 Datenbit4 (AVR)
    12 DB5 Datenbit5 (AVR)
    13 DB6 Datenbit6 (AVR)
    14 DB7 Datenbit7 (AVR)

    du musst natürlich im programm dann statt Config Lcd = 16 * 2
    Config Lcd = 20 * 4 schreiben.
    mfg franzl

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Hallo Franzl,
    aber warum hat das ding dann eine Reihe Pinns mit der Bezeichung 1-16 und unten nochmal die Bezeichung 17-32? Kann ich die wahlweise anschließen oder müssen davon auch noch welche angeschlossen werden?

    LCD ist Reichelt
    Datenblatt:
    http://www.reichelt.de/?SID=28goMyCH...4B%2523DIS.pdf

    mfg Tobias

  4. #4
    Hi,

    Seite 2 Blockdiagramm:

    1=17
    2=18
    .
    .
    .
    .

    sind also Identisch.

    Gruß
    Ralf

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Hmmm,
    dann habe ichmir das wohlzu kompliziert gemacht

    ich werde das mal anschließen!

    mfgTobias

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Also es geht nicht so richtig...

    Die ersten 2 Zeilen laufen wunderbar aber die unteren 2 passen von der formatierung nicht! Wenn ich nur die unteren beiden Zeilen anspreche sieht mein 20*4 LCD so ausdie weißen nullen sind nur Platzhalter!)


    00000000000000001234
    00000000000000001234
    5678901234567890
    5678901234567890

    Kann mir mal einer sagen wie ich das ändern kann?

    Code:
    '-------------------------------------------------------------------------------
    ' LCD nur Text
    '-------------------------------------------------------------------------------
    'Beschreibung:
    'Werte auf LCD im 4-Bit I/O Mode anzeigen
    'Wenn R/W LCD Leitung auf MASSE ist nur schreiben möglich!!!
    '-------------------------------------------------------------------------------
    'Konfiguration µC:
    $regfile = "2313def.dat"                                    'AT90S2313-Deklarationen
    $crystal = 3686400                                          'Quarz: 3.6864 MHz
    
    
    '-------------------------------------------------------------------------------
    'Ein-/Ausgänge:
    
    
    
    'Konfiguration LCD
    Dim Sresult As String * 16 At &H64 Overlay
    'Config Lcd = 16 * 1 'LCD größe
    'Config Lcd = 16 * 2 'LCD größe
    'Config Lcd = 16 * 4 'LCD größe
    'Config Lcd = 20 * 2 'LCD größe
    'Config Lcd = 20 * 4 'LCD größe
    Config Lcd = 40 * 4                                         'LCD größe
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portd.6 , Rs = Portb.0
    Cursor Off Noblink
    
    
    
    
    '-------------------------------------------------------------------------------
    'Programm
    '-------------------------------------------------------------------------------
    
    Do
    
    
    Gosub Anzeige                                               'In die Anzeigeroutiene springen
    
    Waitms 500                                                  '500 millisekunden warten damit man das zählen vernünftig sehen kann ;-)
    
    Loop
    
    '-------------------------------------------------------------------------------
    'UnterProgramme:
    '-------------------------------------------------------------------------------
    
    Anzeige:
    Cls                                                         'Display löschen (IMMER ERST LCD LÖSCHEN UND DANN POSITION ANGEBEN!!!)
    'Locate 1 , 1
    'Lcd "12345678901234567890"
    
    'Locate 2 , 1
    'Lcd "12345678901234567890"
    
    Locate 3 , 1
    Lcd "12345678901234567890"
    
    Locate 4 , 1
    Lcd "12345678901234567890"
    
    
    Return

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    36
    Beiträge
    170
    "Config Lcd = 40 * 4"


    ich dachte das ist ein 20x4??

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    DANKE!
    Wie peinlich....
    Ja, jetzt funktioniert es

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    36
    Beiträge
    170
    hehe, das kommt vor

Berechtigungen

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