Hallo, ich möchte ein LCD Panel der Firma Electronic Assembly (W162B-N3LW) mit einem PIC 16F887 im 8 bit Betrieb ansteuern. Dieses Panel sollte nach Data sheet den HD44780 chip benutzen. Die Datenleitungen liegen an portc, RS an bit 1 von portb RW an bit 2 von portb E an bit 3 von portb Der quarz ist ein 10MHZ Den code für das ansteuern habe ich aus dem Buch PIC in pracice, habe ihn aber für den 8 bit betrieb etwas abegewandelt und teile aus dem pic start programmen von microchip benutzt. Leider macht das display keinen zuck, ich habe schon hier im Forum nach einer Lösung gesucht aber noch nix passendes gefunden. Entweder ist es für einen Atmel oder in C gechrieben, wo ich mich beides mal mit der Sprache schwer tue da ich erst Anfänger bin. Ich habe meinen Code in den Anhang getan, wäre echt nett wenn da mal jemand drüber gucken könnten ob die Initialisierung überhaupt richtig ist. Nach dem Datasheet des Herstellers sieht es recht passend aus. Aber das Display macht eben keinen Zuck. (sind eventuell die Zeiten zu kurz?) Bin für jede Hilfe sehr dankbar
Michael wrote: > Ich habe meinen Code in den Anhang getan Ich bin mir sicher, auch beim PIC heißen Quelltexte *.asm und nicht *.pdf. Man kriegt besser Hilfe, wenn man das richtige Format nimmt, d.h. es dem Leser nicht unnötig schwer macht. Peter
Hallo Peter and sry @ all, ich wollte keine Umstände schaffen. Hier im Anhang die *.asm datei zum einbinden. Beim incircuit debugging kommt mir tmr0 irgendwie komisch vor. Irgendwie macht der nicht das was er soll. Vielleicht liegts daran? Wenn ich das Programm drch den normalen simulator rennen lasse geht die delay loop mit tmr0 allerdings ohne probleme. Michael
Ohne jetzt irgendeine Zeile Deines Codes gelesen zu haben: Was bedeutet "macht keinen Zuck"? Ist wenigstens der schwarze Balken zu sehen, also Kontrastpin beschaltet?
Die Display hintergrundbeleuchtung ist zu sehen und man sieht die einzelnen Felder. Von daher schient es ok zu seien.
Hallo zusammen, da ich auch ein Problem mit dem Display habe, dachte ich, klink dich hier mal ein. Habe das Display wie im AVR-GCC-Tutorial beschrieben, an nem Atmega8 (2Mhz) im STK500, hängen. C-Code (nachvollzogen) und übernommen, in der Zwischenzeit allerdings die Delays mindestens verdoppelt und probiert. Und siehe da, das Display gib Text aus, leider nur nach Zufallsprinzip, mit Vorliebe die Zeichen O, <- und o. Bei jedem Reset des Displays und Atmegas andere Kombinationen, in beiden Zeilen. Das STK500 hängt an einem anderen Netzteil als das Display, sodass zwischen den GNDs vom LCD und STK500 1V Differenz besteht. Könnte sein, dass dadurch die Pins des LCDs nicht eindeutige Signale bekommen? (ich begebe mich aufs Glatteis...) Darf ich die Masse-Leitung vom (LCD-)netzteil mit einem GND-Pin vom STK500 über ein Widerstand zwecks Pegelanpassung verbinden? Oder einfacher: Am STK500, rechts von der Taste "Program", sind 2 Pins, die ziemlich konstant 5V liefern. Kann mein LCD darüber versorgt werden? Dann wäre das Problem mit dem Potenzial beseitigt? Diese 2 Pins sind in der AVR-Studio-Hilfe leider nicht erwähnt, soweit ich das überblicke. Falls ich mit meinen Fragen bei einigen ungläubiges Kopfschütteln ausgelöst habe, naja, noch ist nichts abgeraucht :-) Danke auch für Ratschläge und sonstige Schläge...
Ich habe jetzt mal einen Code für 4 bit Betrieb von Sprut probiert, den code angepasst (Ich kann nicht mit PORTB bit 4-7 arbeiten wegen incircuit test.) Die neue Belegung ist PORTB: Bit 0 - 4 Daten PORTE: Bit 0 - 2 Steuer Der Pic ist immernoch ein 16F887 (hab das PICkit2 debugging set und n die platine das display gehangen) Aber das Display will immernoch nicht. Kann von euch vielleicht nochmal jemand über den code gucken bzw ihn debuggen? Ich finde den Fehler einfach nicht. Wäre für Hilfe super dankbar.
ANSELH register löschen probiert?
ich hatte genau das gleiche Problem, jedoch wenn du die ANSELH Register löschst ... dann klappt es.
Kann mal bitte jemand eine funktionsfähigen Code für Pic16f887 und LCD einstellen? Danke
Hier die Datei. PORTD4...D7 Daten D2 = RS D3 = EN RW = GND
Hallo Stefan, danke, super. Das läuft. Häng doch bitte mal noch das .asm File dran. Möchte ja was lernen. Danke
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.