Forum: Mikrocontroller und Digitale Elektronik PIC18F4550 und LCD


von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

Hallo,
ich hätte eine Frage:
ich habe mir ein kleines PIC Übungsboard gebaut mit ein paar Tastern 
LED's und einem LCD, nun möchte ich es Testen ob das Board richtig 
funktioniert (Hardwaremäßig). Bisher habe ich die LED's und Taster 
getestet (Zur zeit bin ich erst am Anfangsstadum meiner 
Programmierkenntnisse) jetzt siche ich eine (villeicht fertige Lösung, 
vielleicht eine Bibliothek oder so was ähnliches).
Ich habe das LCD wie folgt angschlossen
   Port            PIC Pin              Beschreibung

RD0 - RD7  19 - 22, 27-30   8 bit Datenbus LCD - Display
RE0                 8  LCD - Pin ENABLE
RE1                 9  LCD - Pin Read/Write
RE2                10  LCD - Pin RS

falls jemand so ein Programm geschrieben hatt, könnte mir jemand so was 
schicken oder ein link? Die Ports im Programm kann ich selbst ändern.

Grüße Lukas

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

keiner eine Idee oder einen einfachen Vorschlag??
Habe ich vieleicht umständlich die Frage formuliert??

Grüße
Lukas

von Zwirbeljupp (Gast)


Lesenswert?

Hier gibts ganz viele Infos zu Deinem Problem:
http://www.gidf.de/pic18f4550+lcd

Ich glaube nicht, dass Du in diesem Forum jemanden finden wirst, der dir 
für ein unbekanntes LCD in einer unbekannten Programmiersprache ein 
fertiges Programm schreibt.

Zu Deiner Information: es gibt nicht nur ein einziges LCD und es gibt 
auch mehr als nur eine Programmiersprache. Ein paar präzisere Infos 
wären schon nicht schlecht...

von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

OK Sorry, werde mich bemühen um alle Daten anzugeben
also noch weitere Infos:

Ich verwende:
Entwicklungsumgebung: MPLAB Version 8.14
Programmiersprache: Microchip C18
Brenner: ICD2 debugger (Clone) das brennen funktioniert aber ohne 
Probleme
Controller: PIC18F4550, mit 20MHz Quarz
LCD: Display 2x16 Zeichen (weis nicht was ich sonst noch angeben muss, 
das Display kommt von
http://www.neuhold-elektronik.at/datenblatt/Display%2016216.pdf

Ich hoffe ich habe jetzt alles angeben wenn nicht bitte was sagen 
(schreiben).

Grüße Lukas

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?


von Lukas B. (lukas-1992) Benutzerseite


Lesenswert?

Danke vorerst, ich werde versuchen den Code auf mein Display mit 8bit 
Bus umzuschreiben, bin gespannt was da rauskommen wird.

Grüße Lukas

von Severino R. (severino)


Lesenswert?

In Microchips Application Maestro gibt es konfigurierbare Routinen für 
LCDs in C18.

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,
ich muss den alten Thread nochmals ausgraden ;)

Ich möchte ein LCD an einem PIC18F4550 anschließen, und habe dazu den 
Artikel von
http://www.mikrocontroller.net/articles/PIC18f4550_Experimentier_Platine
genommen.

Ich hab alles gleich angschlossen, der einzige unterschied zum Artikel 
ist der, das ich ein zweizeiliges Display verwende.

Das display wird weder inizialisiert noch tut sich sonnst was auf dem 
Display (Kontrast ist eingestellt ;)).

Ich find den Fehler nicht, angschlossen ist's richtig, hab in der While 
schleife noch eine als kontrolle Blinken lassen (diese tut dies auch auf 
dem Board.

Ich dachte schon das mein LCD zu langsam ist, darum habe ich noch die 
Delays hinzugefügt, gebracht hats nichts...

Weiß da jemand weiter?

Grüße Lukas

(Das gesamte Projekt ist im Anhang)

von Darkleon (Gast)


Lesenswert?

Hi Lukas.

Ich hab hier eine 2x16 LCD LIB, allerdings nur für den 4-Bit Modus. Hab 
die auch schon getestet und funktioniert eigentlich ganz gut.

Da ich LCDs bisher nur im 4-Bit Modus am Laufen hatte kann ich Dir 
leider bei deinem Problem nicht weiterhelfen.

Die LIB arbeitet mit dem weit verbreiteten Hitachi HD44780 Interface 
Chip.

Falls Dich die LIB interessiert, dann sag Bescheid und ich lad sie hier 
hoch :)

MfG Darkleon

von Michael (Gast)


Lesenswert?

>Das display wird weder inizialisiert noch tut sich sonnst was auf dem
>Display (Kontrast ist eingestellt ;)).

Wenn das Display nicht initialisiert wird kann sich auch nix tun. Passt 
denn die Taktrate zu den entsprechenden Zeiten? Ich weiß jetzt nicht 
welche Taktrate da im Artikel gilt aber so ein paar ms musst du dem LCD 
zu Initialisierung geben damit der LCD-Controller aus dem Trott kommt.

von Lukas B. (lukas-1992) Benutzerseite


Angehängte Dateien:

Lesenswert?

Wenn das display initialiesiert ist, dann gehn mal die Balken auf dem 
Display aus oder? Das macht es jetzt nicht.
Ich hab mir jetzt den Code aus dem Artikel nochmasl genau angesehen:

Ich kann nirgens finden wo die Konfigurations Bits gesetzt werden --> 
sie mussen im MPLAB konfiguriert werden oder ich isch schreib in der 
main.c ganz oben nach den includes:

#pragma config FOSC = HS   //20 MHz
#pragma config PWRT = ON
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

Dann steht noch irgendetwas über Interrups drin, hoff mal ds ich das 
nicht brauche:

Mainer Logik nach müsste ich das diisplay korrekt anschließen, un dann 
söllte es einfach funktionieren, ohne dass ich an irgendeinem Port was 
ändere.

Hat irgendjemand einen Funktionierenden Code für ein 2 ZEiliges LCD 
Display, mit C18?



In dem Angefügten Projekt, hab ich mit Maestro die Files generieren 
lassen:
-8Bit MOde an Port B
-20MHz Takt
- PIC Port D0 = LCD RS
- PIC Port D1 = LCD RW
- PIC Port D2 = LCD E

Weis nicht mehr weiter stehe komplett an, hab schon die Maestro 
Application von MIcrochip probiert, wenn ich diese Komplemiere kommen 
folgende Fehlermeldungen:

----------------------------------------------------------------------
Debug build of project `C:\Users\Lukas\Desktop\lcd_mp\lcd.mcp' started.
Language tool versions: mplink.exe v4.22, mcc18.exe v3.22
Preprocessor symbol `__DEBUG' is defined.
Sat Dec 05 13:20:19 2009
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F4550 /i"C:\mcc18\h" "xlcd.c" 
-fo="C:\Users\Lukas\Desktop\lcd_mp\xlcd.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- 
-Or- -Od- -Opa-
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:82:Error [1205] unknown member 
'RB0' in '__tag_44'
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:82:Error [1131] type mismatch in 
assignment
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:297:Error [1205] unknown member 
'RB0' in '__tag_44'
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:297:Error [1131] type mismatch in 
assignment
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:368:Error [1205] unknown member 
'RB0' in '__tag_44'
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:368:Error [1131] type mismatch in 
assignment
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:427:Error [1205] unknown member 
'RB0' in '__tag_44'
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:427:Error [1131] type mismatch in 
assignment
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:442:Warning [2053] return value 
expected
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:451:Warning [2053] return value 
expected
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:623:Error [1205] unknown member 
'RB0' in '__tag_44'
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:623:Error [1131] type mismatch in 
assignment
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:693:Error [1205] unknown member 
'RB0' in '__tag_44'
C:\Users\Lukas\Desktop\lcd_mp\xlcd.c:693:Error [1131] type mismatch in 
assignment
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `C:\Users\Lukas\Desktop\lcd_mp\lcd.mcp' failed.
Language tool versions: mplink.exe v4.22, mcc18.exe v3.22
Preprocessor symbol `__DEBUG' is defined.
Sat Dec 05 13:20:20 2009
----------------------------------------------------------------------
BUILD FAILED


Vielleicht weiß irgendjeamd irgendwas was da sein kann.

Grüße Lukas

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.