www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2*20 LCD Panel (HD44780) mit PIC16F887, Initialisierungsproblem?


Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne jetzt irgendeine Zeile Deines Codes gelesen zu haben: Was bedeutet 
"macht keinen Zuck"? Ist wenigstens der schwarze Balken zu sehen, also 
Kontrastpin beschaltet?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Display hintergrundbeleuchtung ist zu sehen und man sieht die 
einzelnen Felder. Von daher schient es ok zu seien.

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ANSELH register löschen probiert?

Autor: obi-marc-kenobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hatte genau das gleiche Problem, jedoch wenn du die ANSELH Register 
löschst ... dann klappt es.

Autor: Tatonka (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mal bitte jemand eine funktionsfähigen Code für Pic16f887 und LCD 
einstellen?

Danke

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe den PIC nicht. Nur einen 16f877A.
Wenn dir das was nützt, dann kann ich den hochladen.

Autor: Tatonka (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, kann ich mal testen.

Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier die Datei.
PORTD4...D7 Daten
D2 = RS
D3 = EN
RW = GND

Autor: Tatonka (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

danke, super. Das läuft.
Häng doch bitte mal noch das .asm File dran.
Möchte ja was lernen.

Danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.