ik ben al een tijdje aan het proberen om een grafische lcd (samsung S6B0108) aan te sturen met een PIC16F877, maar het lukt me niet om ook nog maar 1 pixel op het scherm te schrijven met de asm code die ik geschreven heb. Als ik het testprogramma gebruikt werkt de lcd wel, dus de hardware is in orde.
Nu denk ik dat er iets mis is met mijn routine om te kijken of de lcd bezig is, waardoor mijn programma niet eens aan de commando's toekomt. heeft er iemand anders ervaring met dit lcd, of weet er iemand wat ik verkeerd doe?
lcd_check_busy:
bcf lcd2, e
call dbus_R
bcf lcd2, dIc
bcf lcd1, Ics1
bcf lcd1, Ics2
bsf lcd2, e
call e_delay
movf dbus, w
movwf temp
bcf lcd2, e
call e_delay
call dbus_W
btfsc temp, 7
goto lcd_check_busy
return
dbus_R:
bsf STATUS, RP0
movlw 0FFh
movwf TRISD
bcf STATUS, RP0
bsf lcd1, rIw
return
dbus_W:
bsf STATUS, RP0
clrf TRISD
bcf STATUS, RP0
bcf lcd1, rIw
return
e_delay:
nop
nop
nop
nop
nop
nop
return
alvast bedankt!
RES
RES
Je moet in ieder geval het volgende doen.
KS0108 selecteren, dan DB7 (busy flag is bit7) als ingang zetten (of hele poort indien dat je databus is), dan R/W hoog (read mode), dan meteen D/I laag (instruction mode), dan minimaal 140 nsec wachten dan E lijn hoog maken, dan minder dan 320 nsec wachten, dan DB7 (bit7) beginnen te pollen (wachten op laag), dan DB7 weer als uitgang, dan 450 nsec wachten dan E lijn omlaag.
bedankt, ik ga het morgen eerst eens proberen in die exacte volgorde.
[Bericht gewijzigd door Dinghe op (65%)]
ik heb uw instructies exact opgevolgd, en nu kan ik al pixels op het scherm schrijven 
heel erg bedankt voor de hulp.
heb je anders ook zo een richtlijn om data door te kunnen sturen? want soms wordt mijn data of mijn command niet uitgevoerd.
RES
RES
Beginnen met kijken of display vrij is (dus de Busy Flag pollen, dus die routine uitvoeren.), dan R/W laag (write mode) en meteen D/I hoog (data mode) maken, dan minimaal 450 nsec wachten, dan E omhoog, dan data op de databus zetten, dan weer minimaal 450 nsec wachten dan E omlaag.