PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GLCD will nicht laufen (KS0713)



Rage_Empire
27.04.2007, 11:30
Hallo,

habe mehrere GLCD mit einem KS0713-Controler (Electronic Assembly EA W128-6x8). 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? :-s


$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.

Vitis
27.04.2007, 13:48
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

Rage_Empire
27.04.2007, 13:58
Genau das wars. Super, danke für den Hinweis!

raggy
06.03.2010, 15:33
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

Vitis
06.03.2010, 18:07
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.

raggy
06.03.2010, 20:55
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