Hallo zusammen, ich möchte mit meinem PIC16F877A das LCD- Grafik Modul EA DIP 128-6 (128x64 Pixel) ansteuern. Egal was ich auch probiere, es bleiben immer alle Pixel ausgefüllt. D.h. die Hintergrundbeleuchtung und der Kontrast funktionieren, doch ich kann keine Pixel ansteuern. Mein Assembler- Programm sieht dann etwa so aus: ;******************************************************************** MAIN CALL DISPLAY_ON ; Display einschalten CALL SET_PAGE ; X- Adresse def. CALL SET_ADDRESS ; Y- Adresse def. CALL WRITE_DATA ; Write Display Data GOTO $ ;******************************************************************** DISPLAY_ON BCF RW ; Schreibzugriff BCF DI ; Kommando BSF EN ; MOVLW B'00111111' ; MOVWF PORTD ; BCF EN ; RETURN ; ;******************************************************************** SET_PAGE BCF RW ; BCF DI ; BSF EN ; MOVLW B'10111100' ; MOVWF PORTD ; BCF EN ; RETURN ; ;******************************************************************** SET_ADDRESS BCF RW ; BCF DI ; BSF EN ; MOVLW B'01100000' ; MOVWF PORTD ; BCF EN ; RETURN ; ;******************************************************************** WRITE_DATA BCF RW ; BSF DI ; Daten BSF EN ; MOVLW B'01010101' ; MOVWF PORTD ; BCF EN ; RETURN ; ;******************************************************************** RW ist Read/Write DI ist Data/Instruction Auf PortD sind die Datenleitungen 0..7 EN ist Enable Kann mir jemand sagen was hier falsch ist? Oder hat jemand ein Beispielprogramm? Besteht die Möglichkeit, dass mein LCD- Modul defekt ist? Vielen Dank für eure Bemühungen Mike
Hallo Mike! Dreh mal am Kontrast, bis die Pixel verschwinden. Beispielprogramme gibt es für AVRs. Relevant ist der Controllerchip auf dem Display. Kritisch ist möglicherweise das Timing. Gruß Rick
Hallo Rick, verschwinden tun die nicht. Sie werden einfach heller oder dunkler, aber das sollte nicht das Problem sein. Muss die Ansteuerung mit einem PIC realisieren. Habe mir gedacht, das wäre eine kleine Sache, doch jetzt kann ich noch nicht einmal die Pixel setzen. Ich hatte erhofft, im Datenblatt des Moduls ein kurzes Beispiel zu finden, doch dies ist nicht der Fall. Da hat es nur ein Timing Diagramm und nachdem richte ich mich eigentlich... Der Controller- Chip ist der KS0108 von Samsung. Habe auch scho dieses Datenblatt studiert, doch auch da nichts hilfreiches gefunden. Das Timing sollte kein Problem darstellen, der PIC läuft mit einem 8Mhz Quarz, d.h. der PIC braucht für einen Zyklus 500ns. Gruss Mike
Hallo Mike! Ich sehe nirgends, wo Du die Ports konfigurierst!?! Ist dass Dein erstes Projekt mit einem PIC bzw. überhaupt mit einem Mikrocontroller? Bei den PICs ist es ja so, dass sie nach dem Einschalten oder nach einem Reset zunächst als Eingang geschaltet sind. In deinem Fall brauchst Du sie aber als Ausgänge (für das Grafik-Display). Dein Stichwort ist daher zunächst einmal das TRISD-Register des PIC. Weiters das TRISx-Register an dem die Steuerleitungen RW, DI und EN angeschlossen sind. Studier mal das Datenblatt des PIC wo die Ports beschrieben sind. oder schau mal bei www.sprut.de vorbei konkret für die IO-Ports: http://www.sprut.de/electronic/pic/grund/ioports.htm mfg Stefan B.
Im Datenblatt zum KS0108 sollte eigentlich alles drin stehen, was du zur Ansteuerung brauchst. Ist EN Low oder High aktiv? So oder so, dein Code ist nicht korekt. Die Daten sollte man mit einem kurzen Impuls ins Display "clocken"
@Stefan B.: Die Initialisierung habe ich schon im Griff. Ich arbeite schon länger mit PICs, habe auch schon "normale" LCD- Displays angesteuert. Der Code ist nur der Ausschnitt zur Ansteuerung des Displays. @====: Im Datenbaltt findet man ein Istruction Set und ein Timing- Diagramm, nach diesen beiden Sachen richte ich mich ja. Mehr steht da nicht drin. Enable ist Low- und High aktiv, mit der positiven Flanke werden R/W und D/I übernommen, mit der negativen die Daten. Habe auch schon versucht, die Daten mit einem kurzen Impuls zu übermitteln, nützt aber alles nichts. Langsam befürchte ich, dass das Modul defekt ist... Grüsse Mike
Hallo Mike! Ich beziehe mich jetzt auf das Datenblatt für den EA DIP128-6 der folgenden Homepage: http://www.electronic-assembly.de/deu/pdf/grafik/dip128-6.pdf Auf Seite 2 sind vier Applikationsbeispiele - benutzt Du eines davon? - Am ehesten Tippe ich auf Beispiel 3- Liege ich da richtig? Wie hast Du denn die Leitung RES beschaltet? - Ich würde mal vermuten, dass er bei dir direkt mit Vdd verbunden ist, oder? Stefan B. (Linz, Österreich)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.