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
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?![]()
Leider habe ich im Netz nichts gefunden, was mir helfen könnte und aus dem Datenblatt werd ich einfach nicht schlau.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
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
Genau das wars. Super, danke für den Hinweis!
Die Denkweise der meisten Menschen ist vergleichbar mit einer Sicht durch ein Strohhalm.
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
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
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
Lesezeichen