Forum: Mikrocontroller und Digitale Elektronik Problem bei LCD-Ansteuerung mit PIC


von hanshorst (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,
ich bring grad an der Programmierung eines PIC16F887 dran.
Am PORTA habe ich einen Drehimpulsgeber mit dem ich die Zahl am LCD 
(PORTD) in Zeile 1 zwischen 1 und 99 einstellen kann.
In Zeile 2 würde ich gerne je nach eingestellter Zahl eine andere Zahl 
darstellen. Also wenn zum Beispiel eine 50 oben in Zeile 1 eingestellt 
ist, soll unten in Zeile 2 die Zahl 26 stehen. Wie ich das miteinander 
verknüpfe ist mein Problem.
Der Drehimpulsgeber funktioniert einwandfrei. Lediglich zur Ansteuerung 
der zweiten Zahl fehlts.
Hoffe mein Problem ist einigermaßen verständlich.
Dabei steh ich zurzeit auf dem schlauch.

Wäre über Hilfe sehr dankbar.

von hanshorst (Gast)


Lesenswert?

anhang ist zwei mal gleich
sorry ;)

von Ottmar K. (wil1)


Angehängte Dateien:

Lesenswert?

Hallo  hanshorst

Ich gehe davon aus, dass Du ein HD44880 kompatibles LCD verwendest. In 
Deiner LCD_Init vermisse ich die 3malige initialisierung im 8Bit-Modus. 
Erst dann kann in den 4Bit-modus umgestellt werden. So steht es auch im 
Datenblatt des HD44780.

Ich habe nur kurz über Deinen Code geschaut. Dort habe ich aber nicht 
die erforderliche ODER-Verknüpfung der DDRAM-Adresse mit dem Befehl
"Set DDRAM-Address" = "80h" gesehen.

Beispiel:
; DDRAM-Adresse Zeile 2, Digit 0 ist 40h
; Die Ausgabe soll ab Digit 4 erfolgen

     movlw   40h + 04h     ;Ausgabe in Zeile 2, Digit 4
     iorlw   0x80h         ;mit "Set DDRAM-Address" verknüpfen
     CALL    OutLcdControl ;DDRAM-Adresse ans LCD senden
     movlw   "@"
     CALL    OutLcdData    ;Zeichen "@" an obiger Adresse ausgeben.

Als Anhaltspunkt habe ich in der Anlage die von mir verwendete 
Initialisierungs-Sequenz (MPLAB-Assembler) beigegeben.

Vielleicht hilft's
mfG Ottmar

sorry,
habe beim Kopieren das "RETURN" am Ende der Sub "Control8Bit" vergessen.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.