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