www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2313 mit LCD Display


Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat schon mal jemand ein 16*2 LCD Display an nen 2313 Atmel gehängt?

Ich habe gerade eine Testschaltung aufgebaut und komme nicht mehr
weiter. Krieg einfach keinen Text auf das Display.


Das LCD hängt mit den Datenleitungen an PB4..PB7
Die Steuersignale kommen wie folgt
PB0--> PIN4 (LCD)
PB1--> PIN5 (LCD)
PB2--> PIN6 (LCD)

Hier mein Code....
---------------------------------------------------------------------

$regfile = "2313def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 ,
Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0


Config Lcd = 16 * 2
Config Portb = Output
Reset Portb.1                                               Initlcd


Cursor On
Cls

Lcd "Test"
----------------------------------------------------------------

Vielleicht hat ja jemand eine Idee....

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab keine Ahnung von Atmels, daher 'ne vielleicht blöde Frage: Was ist
das für eine Programmiersprache?!

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sebastian
Ich glaube es ist Bascom.

@Johann Meier
Was zeigt denn das Display an?
-nichts
-schwarze klötzchen auf der ersten Zeile
-schwarze klötzchen auf beiden Zeilen
-Wirre Zeichen
......

Nik

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..hab noch was vergessen; was hängt denn an Portb.1 ?

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$regfile = "2313def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 ,
Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0


Config Lcd = 16 * 2
Cursor On
Cls

Lcd "Das ist ein Test"
Lowerline
Lcd "blablabla"

End


So klappt´s!

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian:
ja das ist Bascom Basic

@Nik:
das Display zeigt nichts an.
an PB1 hängt R/W vom LCD Display



@ Markus:
Was ist an deinem Code anders?
Aber ich probiers mal.

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Markus:
Habs probiert, läuft auch nicht.


Was mir noch aufgefallen ist: wenn ich das Display angeschlossen habe,
kann ich den Chip nicht programmieren. Abgesteckt gehts dann schon.
Aber es sollte ja kein Problem sein, wenn man an die
SCK/MISO/MOSI-Leitungen Peripherie hängen hat oder?

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Nik:
ich hab mal den KontrastPin (Pin 3) des Display auf GND gelegt, wie im
Tutorial beschrieben.--> jetzt seh ich in der ersten Zeile schwarze
Kästchen.

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@johann

Das bedeutet(die erste Reihe mit schwarzen Kästchen), dass die
Initialisierung falsch gelaufen ist. Ansonsten solltest du zwei Reihen
mit dunklen Kästchen sehen. Bei mir funktioniert das Programmieren
übrigens auch wenn das Display angeschlossen ist.(Ich habs auch an den
Programmieranschlüssen. Dann werden jedoch einige wirre Zeichen
angezeigt.  Aber wenn das so ist, wie funktionierts denn, wenn du den
Programmier Adapter wegnimmst? Wenn er in der Schaltung drinn ist,
würde ich es einfach mal versuchen, indem du das Display an einem
anderen Port anschliesst.

Nik

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ alle

jetzt gehts:

Die schwarzen Kästchen kommen nur wenn ich das Programmbeispiel von
Markus einspiele.

Mein Problem war anscheinen nur der Kontrast (Schäm)

Was nur noch nervt ist, das ich mit angeschlossenem Display nicht
programmieren kann.

@ Ník:
hast du die Programmieranschlüsse direkt mit dem Display verbunden oder
noch nen PullUp oder Pulldown Widerstand eingebaut?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise sollte eine feste Verdrahtung 1a klappen. In die Ports des
µC fliesst so ein geringer Strom rein, dass der LCD-Controller
praktisch nicht belastet wird und high und low eigentlich stabil sein
sollten.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nur:

Config Portb = Output
Reset Portb.1                                               Initlcd

rausgeschmissen, das war unnötig (macht Bascom allein) und ein End
eingefügt.
Habs in Hardware getestet und es funktioniert.
RW hast Du auf GND gelegt?

Kann es sein, dass Dein Display eine negative Kontrastspannung braucht
und Du deswegen nichts siehst.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"Was nur noch nervt ist, das ich mit angeschlossenem Display nicht
programmieren kann."

Bei Versuchssschaltungen und wenn irgendwas nicht funktioniert, ist es
immer günstig, wenn man das LCD über Widerstände ansteuert z.B. 1kOhm.
Dann macht es nichts, wenn das LCD mal selbst Daten "sendet". Es gibt
dann keine Überlastung der Ausgänge und das Programmieren müßte auch
mit angeschlossenem LCD klappen.

GRuß

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ALLE:
Vorab danke für die vielen Antworten....Hier wird einem immer sehr
schnell und zuverlässig geholfen!!!!


@Markus:

RW hab ich mit PortB1 vom AVR verbunden.
Das hab ich so von einer zuverlässigen Schaltung mit nem AT908035er
übernommen. Ich hab auch die Konfiguration in der Software nur auf die
geänderten Ports des 2313 umgeschrieben.

Wieso auf Ground??? Ich kenn die Funktion nicht so genau, aber braucht
der Controller keinen Signalwechsel auf dieser Leitung??



@Chris:
Werd ich mal probieren. Vielleicht liegts am Dongle?? Ich hab mir
selber einen gebaut. Die bekannte Schaltung für die parallele
Schnittstelle mit nem 74... er Chip dazwischen. Läuft auf dem o.g.
Testboard mit dem 8035er ohne Probleme

Warum hängt man die Widerstände dann nur zum Probieren rein?

Meinst du die Widerstände in alle Steuerleitungen zum Display oder nur
zwischen die Ports mit den Programmierleitungen? Hmm.. wahrscheinlich
nur in die "heissen" Leitungen ;)

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"Meinst du die Widerstände in alle Steuerleitungen zum Display"

wenn ich im Programm experimentieren möchte oder eine unerprobte
Schaltung aufgebaue, habe ich es lieber, wenn in ALLEN Leitungen
zwischen µC und LCD Widerstände drin sind. Der Wert ist
Geschmackssache, sollte aber 5V/0,02A = 270 Ohm nicht unterschreiten.
Bei zu großen Werten (etliche Kiloohm) werden die Daten nicht mehr
korrekt übertragen.
Die Widerstände können dauerhaft drin bleiben, wenn es mal
funktioniert. Bei einem Einzelstück spielt das keine Rolle.
Der Sinn ist der, daß im Fall wenn das LCD irrtümlich auf LESEN
geschaltet wurde, es einige PINs auf Ausgang schaltet und dann die
Ausgänge des LCDs gegen die Ausgänge des µC arbeiten, wobei
schlimmstenfalls einer der beiden kaputt geht. Bei LCD-Preisen >10Euro
sicher unangenehm.

Gruß

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

Bewertung
0 lesenswert
nicht lesenswert
Bau Deine Schaltung mal so wie im Bild um.
Tu es einfach und benutze den Code den ich Dir gepostet habe.
Bascom fragt RW nicht ab, wartet einfach so lange bis die Zeit beim
Init vergangen ist.
Macht also einfach so lange "nop", bis Zeit wie im LCD-Manual
beschrieben vorbei ist.

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Chris

Hab jetzt in die Ansteuerleitungen (SCK/MISO/MOSI) nach dem Abgriff zum
Programmieradapter 1,5k Widerstände reingelötet. Jetz klappt auch das
Programmieren mit angeschlossenem Display. Danke noch mal für den Tip.

@Markus

Deinen Vorschlag werd ich auch ausprobieren, wenn ich wieder mehr Zeit
habe. Schon aus reinem Interesse. Momentan muss ich meine Software
schreiben, damit ich mit meinem Projekt weiterkomme.

Gruß an alle die mir geholfen haben.....
Johann

Autor: Alexander Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hatte gleichen Stress, RW nicht an direkt GND, sondern an I/O-Pin und
dann Probleme beim Programmieren mit AVR910 und AVR-Prog, RW direkt an
GND und alles ist i.O

Gruss
A. arndt

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.