-         

Ergebnis 1 bis 6 von 6

Thema: GLCD will nicht laufen (KS0713)

  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710

    GLCD will nicht laufen (KS0713)

    Anzeige

    Hallo,

    habe mehrere GLCD mit einem KS0713-Controler (Electronic Assembly EA W128-6x. Da Bascom den aber nicht von Hause aus unterstützt habe ich angefangen zu versuchen das Ding eben manuell anzusteuern.

    Aber irgendwie komm ich nicht weit. Normalerweise müßte das Display mit dem Source etwas ausgeben, tut es aber nicht. Ich steh voll auf dem Schlauch, weiß jemand von euch was ich falsch mache?

    Code:
    $crystal = 16000000
    $regfile = "m32def.dat"
    
    
    Const Lcd_on = &B10101111
    Const Lcd_off = &B10101110
    Const Lcd_refvoltmode = &B10000001
    Const Lcd_start = &B01000000
    Const Lcd_page = &B10110000
    Const Lcd_coll = &B00000000
    Const Lcd_colh = &B00010000
    Const Lcd_adc_sel = &B10100000
    Const Lcd_reverse = &B10100110
    Const Lcd_entire = &B10100100
    Const Lcd_bias = &B10100010
    Const Lcd_modify_rd = &B11100000
    Const Lcd_modify_rst = &B11101110
    Const Lcd_reset = &B11100010
    Const Lcd_shl_sel = &B11000000
    Const Lcd_pwr_ctrl = &B00101000
    Const Lcd_regu_regist = &B00100000
    Const Lcd_statind_mode = &B10101100
    
    
    Config Portb = Output
    Config Portc = Output
    
    Cs1 Alias Portb.0
    Cs2 Alias Portb.1
    Res Alias Portb.2
    Rs Alias Portb.3
    Rw Alias Portb.4
    E Alias Portb.5
    
    
    Reset Cs1
    Set Cs2
    
    Dim Temp As Byte
    
    Declare Sub Lcd_init()
    Declare Sub Lcd_cmd(byval Cmd As Byte)
    Declare Sub Lcd_data(byval _data As Byte)
    
    Call Lcd_init
    
    Dim I As Byte
    
    
    
    Ende:
    
    Print "ok"
    Input I
    Call Lcd_data(i)
    Goto Ende
    
    
    
    
    Sub Lcd_cmd(byval Cmd As Byte)
      Set Rw
          Portb.6 = Cmd.0
          Portb.7 = Cmd.1
          Portc.1 = Cmd.2
          Portc.2 = Cmd.3
          Portc.3 = Cmd.4
          Portc.4 = Cmd.5
          Portc.5 = Cmd.6
          Portc.6 = Cmd.7
       Set E
       Reset Rs
       Reset Rw
       Waitms 10
       Set Rw
       Set Rs
       Reset E
       Waitms 10
    End Sub
    
    
    
    Sub Lcd_data(byval _data As Byte)
       Set Rw
          Portb.6 = _data.0
          Portb.7 = _data.1
          Portc.1 = _data.2
          Portc.2 = _data.3
          Portc.3 = _data.4
          Portc.4 = _data.5
          Portc.5 = _data.6
          Portc.6 = _data.7
       Set E
       Set Rs
       Reset Rw
       Waitms 10
       Set Rw
       Set Rs
       Reset E
       Waitms 10
    End Sub
    
    
    
    Sub Lcd_init()
       Reset Res
       Waitms 10
       Set Res
       Waitms 10
          Call Lcd_cmd(50)
          Call Lcd_cmd(lcd_start)
          Call Lcd_cmd(lcd_on)
          Call Lcd_cmd(lcd_entire)
          Call Lcd_cmd(lcd_shl_sel)
          Temp = Lcd_adc_sel + 1
          Call Lcd_cmd(temp)
          Call Lcd_cmd(lcd_refvoltmode)
          Call Lcd_cmd(40)                                      'Contrast?
          Temp = Lcd_bias + 1
          Call Lcd_cmd(temp)
          Temp = Lcd_pwr_ctrl + &B00000111
          Call Lcd_cmd(temp)
          Temp = Lcd_regu_regist + &B00000110
          Call Lcd_cmd(temp)
    End Sub
    Leider habe ich im Netz nichts gefunden, was mir helfen könnte und aus dem Datenblatt werd ich einfach nicht schlau.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    also ich kenn das bei den GLCDs nur so, das zu Beginn
    der Datenübertragung erst der Modus gesetzt wird
    (RS / RW) und dann über E (=enable) die Ausführung
    veranlasst wird.
    sprich erst RW / RS / CS, dann Daten setzen, dann
    Puls mit E
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Genau das wars. Super, danke für den Hinweis!
    Die Denkweise der meisten Menschen ist vergleichbar mit einer Sicht durch ein Strohhalm.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    71
    Beiträge
    80
    Hallo zusamen ich habe eine Frage zum MK3 Board von myAVR.Das
    Board hat ein Display mit einem KS 0713 Controller.
    Ich bekomme es einfach nicht zum laufen.(Bascom AVR)
    Atmega2560 16Mhz

    Pin Belegung:
    // LCD-Informationen
    //
    // PortC = LCD-Data
    // PortA = LCD-Control
    // A7 = PS (std=High=parallel Mode)
    // A6 = C86 (std=High=6800 Mode)
    // A5 = Licht Steuerung
    // A4 = /RD = E (Schreibflanke H->L)
    // A3 = /WR = R/W (Low=Schreiben)
    // A2 = A0 (Low=ControlData; High=DisplayData)
    // A1 = /RES (Low=activ; std=High)
    // A0 = CS1 (ChipSelect=muss Low sein; std=High)
    //
    // LCD-information
    //
    // PortC = LCD-data
    // PortA = LCD-control
    // A7 = PS (std=high=parallel mode)
    // A6 = C86 (std=high=6800 mode)
    // A5 = Licht Steuerung
    // A4 = /RD = E (writing edge H->L)
    // A3 = /WR = R/W (low=write)
    // A2 = A0 (low=controldata; high=displaydata)
    // A1 = /RES (low=activ; std=high)
    // A0 = CS1 (chipselect=must be low; std=high)
    //--------------------------------------------------------------------------

    Kann mir mal vielleicht einer helfen,da ich leider kein Englisch kann hilft mir das Datenblatt auch nicht.

    Gruß raggy

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    hmm, ja, also ich kann das board nicht, daher kann ich
    auf nicht viel helfen, also soweit ich das ersehen kann ist
    Port C Dein Datenport und auf Port A liegt die Ansteuerung.
    A6 und A7 sind die Auswahl des Modus, standart wird sein
    A7 = 1, A6=0 für die normale parallele Ansteuerung per Port C
    Über A5 = 1 wird wohl die Hintergrundbeleuchtung eingeschaltet,

    Über A0 wird der Chip ausgewählt damit er weis das er mit den
    folgenden Aktionen gemeint ist.
    A1 ist der Reset, der wohl lowaktiv ist, also über 0 wird der Reset ausgelöst, normalerweise soll der wohl 1 sein.
    A2 wählt aus welche Art Daten an PortC kommen, ob Befehl oder Daten sind
    A3 ist die Auswahl ob Daten aus dem Display gelesen oder geschrieben werden sollen, wird in der Regel wohl 0, also schreiben sein.
    A4 ist der Enable, mit diesem Pin wird die Aktion dann schlussendlich ausgelöst werden.

    Ansonsten, was die befehle und die genaue Ansteuerung angeht wirst Du um das Lesen des Datenblattes wohl kaum herum kommen ... nimms als Übung, das wird Dir nämlich noch öfter begegnen, leider.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    71
    Beiträge
    80
    Vitis zuerst einmal Danke,ich glaub ichmach das KS0713 raus und mach ein GLCD mit KS0108 rein.
    Da weiß ich wie es funktioniert,sonst gehts mir wie Edison
    Gruß raggy

Berechtigungen

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