www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2x8 LCD mit 16f84a ansteuern


Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, bin total der Anfänger mit Pic. Ich will ein 2x8 LCDisplay mit 
dem 16f84a ansteuern (in Assembler) und hab keine Ahnung, wie ich das 
Display initialisieren soll. Hat jemand eins zufällig gemacht oder ist 
jemand so flink und hilft mir da weiter? Ich will wenigstens, dass der 
Cursor blinkt...weiter pack ich es bestimmt. Das Display hat den 
Baustein KS066.

Autor: Ralf Moshage (ego)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie immer bei PIC problemen hilft http://www.sprut.de/ weiter.
MFG
Ralf

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat da jemand zufällig ein Beispiel?

  Init

      bsf    status,rp0        ; Bank 1 aufrufen
      movlw    B'00000000'        ; PortB alles Ausgänge
      movwf    trisb
      bcf    status,rp0        ; verlasse Bank 1
so erstmal ok?

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das macht PORTB zum Ausgang. Dem LCD ist das aber egal.

Autor: Sebastian Hepp (sebihepp)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wir müssten schon wissen, wie das LCD an den PIC angeschlossen ist.
(Welche Ports)

Ansonsten stelle ich dir mal meine Routine zur Verfügung. Ich konnte
sie noch nicht testen, die Platine lässt noch auf sich warten. Aber
du bekommst vielleicht mal einen überblick.

Die Funktion ist für das "EA DIPS082-HNLED" mit dem KS0066 ausgelegt.
Benutzt wird ein PIC18F4550 also kannst du den Code so nicht
verwenden, da mein PIC einen größeren Befehlssatz und ein anderes
Speichermanagement besitzt. Also nicht wundern, wenn hinter den
Assembleranweisungen noch eine 0 oder 1 steht. Eine 0 bedeutet
Zugriff in die Special-Function-Register (PORTA, TRISA, STATUS, ...)
und eine 1 einen Zugriff auf den frei benutzbaren Speicher.
Grob könnte man sagen: eine 0 bedeutet eine Adresse zwischen
0x00 und 0x19 bei dir und eine 1 meint eine Adresse ab 0x20 aufwärts.
Allerdings ist die Bank noch nicht berücksichtigt.

Du müsstest noch die Delay-Routinen an deine Taktrate anpassen.
Meine sind für 10MHz ausgelegt (Also für einen 40MHz Quarz).

Ich könnte dir die Routinen anpassen, bräuchte dann aber wie weiter
oben schon gesagt die Portbelegung.

Viele Grüße
Sebihepp

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.