www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unbekanntes lcd Display


Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab hier ein LCd Display mal an den Mega32 angeschlossen.

Mit folgendem Code lässt es sich initialisieren aber zeigt nichts an:

[code]
$regfile "m32def.dat"
$crystal = 8000000

Config Portc = Output
Config Portd.6 = Output
Config Portd.7 = Output

Lcd_data Alias Portd
Lcd_rs Alias Portd.7
Lcd_en Alias Portd.6

Lcd_en = 0 : Waitms 50

Lcd_rs = 0
Lcd_data = 56 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2
Lcd_data = 12 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2
Lcd_data = 1 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2
Lcd_data = 2 : Lcd_en = 1 : Lcd_en = 0 : Waitms 2

Lcd_rs = 1
Lcd_data = 65 : Lcd_en = 1 : Lcd_en = 0 : Waitus 40

Stop
[code]

Weiß jemand wie das in dem Bascom Displaybefehlssatz mit lcd und so 
aussehen würde. ICh habs schon mehrmals probiert und nicht hingekriegt.

Ich habs in 8bit angeschlossen 4bit geht aber auch (aufjedenfall die 
init).
Mit dem 4bit Code auf http://www.dieelektronikerseite.de/

Komischerweise schreibt der nie was.
Das Display bleibt nur leer.

Noch was zum LCD: Es halt 5 solche schwarzen Kappen. Keine Ahnung für 
was so viele Chips.

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, ich hab gedacht die Display Daten stehen noch im Code:

Es ist ein 4*20 Zeichen Display.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sam schrieb:
> Mit folgendem Code lässt es sich initialisieren aber zeigt nichts an:

Wie stellst du die erfolgreiche Initialisation fest?

Sam schrieb:
> Noch was zum LCD: Es halt 5 solche schwarzen Kappen. Keine Ahnung für
> was so viele Chips.

Das hilft viel -.-
Bild vom Display her. Vorder- und Rückseite.

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt zufällig noch den Typ klein am Rand gefunden: YM2004A.

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

Bewertung
0 lesenswert
nicht lesenswert
Floh schrieb:
> Wie stellst du die erfolgreiche Initialisation fest?

Ganz einfach: Es zeigt nicht mehr die Balken in der 1. und 3. Zeile an. 
Sondern nichts. Der Bildschirm leutet einfach leer.

Chipsatz ist KS0065(X4).

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

In deiner Initialisierung fehlt er Befehl 'Entry Mode Set'.

MfG Spess

Autor: bix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sam schrieb:
> Config Portc = Output
> Config Portd.6 = Output
> Config Portd.7 = Output

Vermutung (1):
Portc = Datenleitungen
Portd = Steuerleitungen

> Lcd_data Alias Portd (* ??? *)
> Lcd_rs Alias Portd.7
> Lcd_en Alias Portd.6

Vermutung (2):
Lcd_data sollte als "Alias Portc" definiert werden

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> In deiner Initialisierung fehlt er Befehl 'Entry Mode Set'.

Kannst du mir vielleicht sagen wie das geht?

bix schrieb:
> Vermutung (2):
> Lcd_data sollte als "Alias Portc" definiert werden

Danke; hatte ich nicht beachtet (kommt davon wenn man Code nicht selber 
schreibt), aber ändert leider nichts.

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

Bewertung
0 lesenswert
nicht lesenswert
Hi

>>spess53 schrieb:
>> In deiner Initialisierung fehlt er Befehl 'Entry Mode Set'.

>Kannst du mir vielleicht sagen wie das geht?

Anhang S.18 und S.26.

>Danke; hatte ich nicht beachtet (kommt davon wenn man Code nicht selber
>schreibt), aber ändert leider nichts.

Als James Dean kann man zwar Filmkarriere machen, aber zum Programmieren 
taugt die Einstellung nicht.

MfG Spess

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Anhang S.18 und S.26.

Hab ich gemacht, danke.

Allerdings.. funktioniert es trotzdem nicht. Wie voher, display ist 
inited und zeigt weder Cursor noch Zeichen an.

Mein neuer Code (ich hab jetzt nicht alles umgerechnet in eine Zahl, 
sondern manches in Bits gelassen):
$regfile "m32def.dat"
$crystal = 8000000

Config Portc = Output
Config Portd.6 = Output
Config Portd.7 = Output

Lcd_data Alias Portc
Lcd_rs Alias Portd.7
Lcd_en Alias Portd.6

Waitms 50

Lcd_en = 0

'Function Set
Lcd_rs = 0
Lcd_data.7 = 0
Lcd_data.6 = 0
Lcd_data.5 = 1
Lcd_data.4 = 1
Lcd_data.3 = 1
Lcd_data.2 = 1
Gosub Writetolcd
Waitus 40

'Display ON/OFF Control
Lcd_rs = 0
Lcd_data.7 = 0
Lcd_data.6 = 0
Lcd_data.5 = 0
Lcd_data.4 = 0
Lcd_data.3 = 1
Lcd_data.2 = 1
Lcd_data.1 = 1
Lcd_data.0 = 1
Gosub Writetolcd
Waitus 40

'Display Clear
Lcd_rs = 0
Lcd_data = 1
Gosub Writetolcd
Waitms 2

'Entry Mode Set
Lcd_rs = 0
Lcd_data = 7
Gosub Writetolcd
Waitms 50

'Write Char
Lcd_rs = 1
Lcd_data = 60
Gosub Writetolcd

'Main Loop

Do

Loop

'Functions
Writetolcd:
Lcd_en = 1
Lcd_en = 0
Return

Ich weiß, dass es unnötig ist jedesmal Lcd_rs auf 0 zu setzen, aber 
solche Optimierungen kann ich auch später durchführen.

Autor: The_Ride (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

versuchs mal hiermit :)
http://www.yaoyu-lcm.com/english/admin/Software/20...

cya The_ride

Autor: frühaufsteher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

JTAG abgeschaltet?

MfG

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab JTAG nicht aktiviert, aber wenn das standardmäßig an ist, ist es 
immernoch an.

PS: Ich kann grad nicht nachkucken, bin in der Schule.

Autor: Winfried J. (Firma: Nisch-Aufzüge) (winne)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist standardmäßig an.....

muss entweder im initialisierungsprozess (Resetroutine Kaltstart) 
deaktivirert werden.  Achtung Das Register muss 2mal unmittelbar 
aufeinanderfolgend beschrieben werden sonst wird das datum nicht 
geändert!

oder man deaktiviertes mittels Jtagfusebit !!! Achtung umgekehrte Logik 
ALLER Fusebits beachten sonst gefahr den Aussperrens!!!

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke es klappt.

Ich hab noch nie was mit JTAG gemacht, aber es war doch so, dass der 
Controller die Ports nicht freigegeben hat (oder so ähnlich), und 
deswegen hat es nicht funktioniert?

Funktioniert jetzt auch in Bascom.

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sam schrieb:
> Funktioniert jetzt auch in Bascom.

ähh ich meine mit Config Lcd

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Winfried J. schrieb:
> Achtung umgekehrte Logik
> ALLER Fusebits beachten sonst gefahr den Aussperrens!!!

Darauf hab ich nicht geachtet, muss man in Avr burn o mat meines Wissens 
nicht.

Eine Frage noch:

Warum flakert das Lcd bei dem Code:
$regfile "m32def.dat"
$crystal = 8000000

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portd.6 , Rs = Portd.7
Config Lcdbus = 4

Cls
Locate 1 , 1
Lcd "Hallo Welt"

Bascom muss irgendetwas noch über die Datenleitungen senden, denn wenn 
man den 10pol Datenstecker zieht hört es auf; beim einstecken flackert 
es weiter. Liegt das daran, dass das Programm kein Ende hat?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sam schrieb:

> Warum flakert das Lcd bei dem Code:

Vielleicht deshalb, weil sich dein Programm in keiner obligaten 
Endlosschleife letztendlich fängt und daher von den BASCOM 
Basisfunktionen immer wieder neu gestartet wird und im Zuge dessen das 
LCD ständig löscht und neu beschreibt, was man, wenn es moderat schnell 
geschieht, als Flackern wahrnimmt?

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.