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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.