- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: LCD-Dislpay

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2007
    Beiträge
    26
    Anzeige

    Powerstation Test
    Hallo Richard,
    Ich habe vor ein paar Monaten ebenfalls ein Display dieser Serie verwendet.(2*8Zeichen, 4bit-Modus, AVR als Controller, Assembler). Nach mühseliger Bastelei hat es bei mir schließlich geklappt. Ich habe mich an dem Datenblatt des KS0066U orientiert.
    Wichtig war meinen Erkenntnissen zufolge, dass die Initalisierung in der richtigen Reihenfolge abläuft (Achtung: 4Bit Modus, das musst du evt. ändern) :
    - dreimal 0011 an LCD
    - 0001 (4-bit Modus)
    Die 8-bittigen Befehle werden im 4-bit Modus nibbleweise hintereinander gesendet:
    - 001XXXXX Hier wird der Cursor an die entsprechende Stelle positoniert (vom Displaytyp abhängig)(bei mir:00101000)
    - 00001100 Display ist an, Cursor ist ausgeblendet, blinkt nicht
    - 00000001 Lösche alle Zeichen aus Display
    - 00000110 Cursor bewegt sich nach schreiben eines Zeichens nach rechts,
    Displayshift ist aus

    Logischerweise musst du den Befehlsmodus verwenden, jeweils das Enable Bit setzen und rücksetzen und entsprechende Wartezeiten zwischen den Befehlen einhalten.

    Ist das Display erst einmal initalisiert, musst du nur noch ein Ascii Zeichen reipumpen und du siehst es auf dem Bildschirm (Datenmodus nicht Befehlsmodus!!!)

    Ich hoffe dir hiermit geholfen zu haben,
    wolli_bolli

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von wolli_bolli
    Hallo Richard,

    Ich habe mich an dem Datenblatt des KS0066U orientiert.
    Ich hoffe dir hiermit geholfen zu haben,
    wolli_bolli
    Danke, ein anderes Datenblatt, ohne "U" scheint auch nicht zu existieren?
    Angeblich soll sich die Anzeige selber (grund) Initialisieren mann muß
    allerdings vor jeden Befehl b.z.w. Datensatz Bit 7 abfragen und warten
    bis das anzeigt das wieder gesendet werden darf. So die Theorie aus
    dem Datenblatt. Entweder man schaltet den mit Bit7 verbundenen
    Ausgang zwischenzeitlich auf Eingang, oder man opfert ein zusätzliches Pord Bit als Eingang und geht damit Parallel auf Bi7 der Anzeige.

    So kann man z.B. beim CAN BUS auf Sender mit höhere Berechtigung
    eines anderen Teielnehmers prüfen, man liest sich selber ein und wenn
    das eigene Bit überschriben wird muß man raus und neu anfangen.

    Da ich noch etliche PIC herumliegen habe, versuche ich es erst einmal
    damit. Mein Testboart und Programmer sin allerdings gut 10..15 Jahre
    alt und benötigen DOS, also win 98. Das habe ich mir jetzt unter VMWARE
    eingerichtet, aber die alten Programme, warscheinlich mit Torbopascal
    erstellt, machen Runtime error. Die C´t hat glücklicherweise einen Patch
    der das Problem behebt, jetzt laufen diese Programme auch mit heutigen
    schnellen Prozessoren. Es klappt also langsam mit Soft /Hardware, auch der Programmer liest/schreibt die PIC`s.

    Ich muß nun etwas Handbücher neu nachlesen, ich habe mindestens
    auch 10..15 Jahre nicht mehr programmiert.....Deshalb werde ich
    auch so einsteigen wie ich angefangen bin, mit Assembler. Das ist
    einfach näher an die Hardware, in diesem Fall der vom Display.

    Mit Turbo Pascal bin ich FRÜÜÜÜHER ganz gut zurecht gekommen,
    C hat mir irgendwie nie zugesagt, Java auch nicht wirklich. Basic ist
    ja recht einfach, damit habe/hatte ich weniger Probleme aber besonders
    schnell und Platzschonend ist das dann auch nicht.

    Ich bin aber auf der Suche nach dem "richtigem" AVR Board. Es sollte
    möglichst flexiebel sein was den Prozessor betrifft (von AVR gibt es da
    ja ein Prototypen Board) K100 oder ähnlich. Es sollte aber auch test
    Aufauten ermöglichen ohne all zu viel herumlöten zu müssen. Also
    ein Board mit xyz 100 Anschlüssen, für das man dann aber erst einmal
    selber ne Platine zum draufsteken mit entsprechender Hartware bauen
    muß fällt somit erst einmal aus und 3 Boards im Monat kann/will ich
    mir dann auch nicht leisten.

    Was würdet ihr da jetzt vorschlagen? Am liebsten währe mir ein
    Mittelweg, halbwegs vielseitig einsetzbar und aufgebaut zu kaufen.

    Grüße Richard

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    moin moin allerseits,


    Jetzt da ich entdlich mal etwas Urlaub habe, habe ich mich um oben
    benanntes LCD gekümmert.

    Aus einem Beitrag in dieser NG AUS (20059habe ich eine Innitialusierungs
    Routine gefunden ; da diese mir etwas zu lang war habe ich das einmal
    anders umgesetzt.

    Code:
    $regfile = "m16def.dat"                                     ' specify the used micro
    $crystal = 16000000                                         ' used crystal frequency
    $baud = 19200                                               ' use baud rate
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 10                                               ' default use 10 for the SW stack
    $framesize = 40
    '$sim
    
    
    Config Portb = Output
    
    
    Dim A(8) As Byte
    Dim I As Byte
    '
    A(1) = &B00000000                                           ' Inni H_Byte
    A(2) = &B00001001                                           ' Inni L_Byte
    A(3) = &B00000010
    A(4) = &B00001000
    A(5) = &B00000000
    A(6) = &B00000110
    A(7) = &B00000000
    A(8) = &B00001100                                           ' u.s.W.
    
    For I = 1 To 8                                              ' LCD INI
    
       Portb = A(i) And 00001111                                'PB 0...3 Auf 0, BP 4...7 Data
       Portb.1 = 1                                              'E setzen und Daten übernehmen
       Waitms 1                                                 ' Waaaaarten
       Portb.1 = 0
       Waitms 1
    
    Next I
    
    Cls                                                         ' Das klappt schon Hier...!?
    
                                                                 'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen
       Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
       Config Lcd = 16 * 4
       Initlcd
    
    
    Locate 1 , 2
    Lcd "Motor_L"
    Locate 1 , 10
    Lcd "255"
    Portb.0 = 0                                                 'Leider setzt die Bascom LCD Routine Rs nach LCD "xyz" auf Hight,
                                                    'Dadurch Wird Die Anzeige Ausgeschaltet = Instrucktionsmodus. Deshalb
                                                    'musste ich diese Portb.0 = 0 einfügen. :-(
    
    
    End
    Leider gibt es da noch ein Problem, Im Bscomm Simulator wird "rs" ordentlich
    auf "1" gesetzt und das LCD zeigt ..lcd "Hallo" an. In der realen Welt, nicht!
    setze ich nach lcd "xyz" portb.0 (alias Rb.0) = 0, bekomme ich eine Anzeige.

    RS Piin Daenblatt :

    Used as register selection input.
    When RS = “High”, Data register is
    selected.
    When RS = “Low”, Instruction register is
    selected.

    Sollte doch eher umgedreht sein?

    Nach 3 Tagen mit quasie 24h reicht es mir jetzt erst einmal ein wenig.

    Immerhin, Die Motoren sind von Masse befreit und mit Hallgebern
    ausgerüßtet, die "Ticks" kommen sauber an und lösen bei einem Rad
    mit 20 cm Durchmesser ~ 0,26mm auf Wenn da dann noch die Softwre
    mitmacht?

    Gruß Richard.

  4. #14
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Schönen Abend,

    vor ein paar Tagen hatte ich hier im Forum zwei LCDisplays gewonnen. Davor hatte ich KEINE Ahnung, wie man so etwas zum Laufen bekommt. Das Datenblatt ist deutlich länger als das hier genannte, aber es trifft auch alle Displaytypen von Seiko und hatte mir beim Anschluss nicht wirklich geholfen (es war mir zu viel zum Lesen).

    Sowohl der Anschluss als auch die Inbetriebnahme mit C waren trotzdem problemlos. Ich habe die beiden Seiten im Wiki als Vorlage und die lib von P.Fleury genommen. Und nun läufts bestens. Spezialzeichen wie σ (sigma), fernöstliche Zeichen oder so, kann ich in meinem Datenblatt nachlesen.

    Viel Erfolg
    Ciao sagt der JoeamBerg

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Moin moin allerseits,

    Ich habe mein Display angeschlossen und alle Möglichen Ini
    Prozeduren welche so im netz zu finden sind ausgetestet.
    mit eher lauen erfolg.

    Es hat sich jetzt herausgestellt das das Vorgehen aus dem
    RN_Wissen mit Bascom ausreicht. NUR, zumindest (MEIN)
    LCD zeigt nur dann etwas an wenn (RS)= Bit PB.0 = 0 gesetzt
    ist?

    Code:
    $regfile = "m16def.dat"                                     ' specify the used micro
    $crystal = 16000000                                         ' used crystal frequency
    $baud = 19200                                               ' use baud rate
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 10                                               ' default use 10 for the SW stack
    $framesize = 40
    '$sim
    
       Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
       Config Lcd = 16 * 4
    
       Config Lcdbus = 4
    
       Cls
       Locate 1 , 1
       Lcd "Hallo"
       Portb.0 = 0                                              'Nur wenn ich diesen Befehl nach dem lcd Befehl
                                                                'setze bekomme ich eine Anzeige?????
       End
    Laut Datenblatt ist die Bascom Routine aber richtig.....

    Used as register selection input.
    When RS = “High”, Data register is
    selected.
    When RS = “Low”, Instruction register is
    selected

    Ich habe soeben auch mal mit nen Meßgerät vom Chip M16 nach
    RS geprüft ob es einen Verdratungsfehler gibt. Nee, ist alles O.K.
    Sehr eigenartig, außerdem gibt es Kontrastprobleme wenn ich mehrere
    Zeilen anspreche. Von Zeile 1,1 an nimmt der Kontrast ab, die jeweil
    letzte Zeile bleibt komplett O.K.?

    Ich glaube ich besorg mir ein anderes Display......((

    Grüße Richard

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen