PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1*8 LCD Ansteuerung



Björn
11.08.2005, 20:03
Hi Leute!

Ich möchte >dieses< (http://www.reichelt.de/inhalt.html?ACTION=7;LASTACTION=6;SORT=artikel.art nr;GRUPPE=A523;WG=0;SUCHE=LCD%252081;ARTIKEL=LCD%2 52520081%252520DIP;START=0;END=16;STATIC=0;FC=670; PROVID=0;TITEL=0;DATASHEETSEARCH=LCD%2520081%2520D IP;FOLDER=A500;FILE=LCD081DIP%2523EAS.pdf;DOWNLOAD TYP=1;DATASHEETAUTO=;OPEN=1) LCD Display mit einem ATmega8 ansteuern (in Bascom).
Nun habe ich den gleichen Code wie für mein 2*16 Display (Bascom LCD Routine) genommen, dies funktionierte aber nicht.
Nun die Frage: Müsste es eigentlich gehen, oder muss ich es anders machen?

Gruß, Björn

P.S.: Ich habe nur D4-D7, E und RS verlötet (+ Versorgung etc)

chr-mt
11.08.2005, 20:32
WR an Masse ?

Gruß
Christopher

Björn
11.08.2005, 20:35
Du meinst R/W? Nee, gar nicht verlötet. Also an GND löten?

Gruß, Björn

Björn
11.08.2005, 21:36
Ok, ich habe R/W und die Kontrastspannung beide auf GND gelegt. Trotzdem leider kein Unterschied ;-(

Gruß, Björn

chr-mt
12.08.2005, 00:08
Hi,
dann sollte es eigentlich funktionieren, der Controller ist ja kompatibel... :(

Schreib' mal einen langen String rein, also über 40 Zeichen.
(Maximale Zeichenlänge für eine Zeile im Controller)

Manche LCDs sind da etwas komisch.
Es gibt zB. 16x1 LCDs, da sind die Zeichen 1-8 an der richtigen Stelle, die Zeichen 9-16 ab 41.
Wenn man die normal beschreibt, sieht man immer nur die ersten 8 Stellen
(Netterweise braucht man sich aber darum bei Bascom nicht zu kümmern, da es beide Typen kann, 16*1 und 16*1a)

Vielleicht fängt dein Display auch erst in der zweiten Zeile an zu schreiben... ?



Gruß
Christopher

Björn
12.08.2005, 08:07
Hi,

das Display hat ja nur eine Zeile mit 8 Zeichen.
Oder meinst du vorher ein "Lowerline" schreiben?

Gruß, Björn

Björn
12.08.2005, 08:46
Könnte es sein, dass der Kontrast bei 0V und 5V nichts anzeigt, sodass ich also noch einen Poti einbauen muss?

Gruß, Björn

Björn
12.08.2005, 08:49
Hier nochmal zur Verdeutlichung (um Misverständnissen vorzubeugen):
Alle Pins mit dem Kringel sind verlötet.

Björn
12.08.2005, 10:51
Hier (falls es zur Lösung des Problems beiträgt) die Beschaltung:
Die Pinnummern entsprechen dem Datenblatt.
1 - VSS -> GND der Platine
2 - VDD -> +5V der Platine
3 - VEE -> Poti zwischen +5V und GND
4 - RS -> PortB.6
5 - R/W -> GND der Platine
6 - E -> PortD.5
11 - D4 (D0) -> PortD.6
12 - D5 (D1) -> PortD.7
13 - D6 (D2) -> PortB.0
14 - D7 (D3) -> PortB.1
17 - A -> +5V der Platine
18 - C -> GND der Platine

Ist daran irgendetwas faul?
Die Tabelle der Pins aus Datenblatt siehe vorigen Post.

Gruß, Björn

Björn
12.08.2005, 10:57
Hier ist nochmal der Code. Bei 16*1 müsste eigentlich ja 8*1 stehen, das kennt der Compiler aber nicht.

Gruß, Björn



'================================================= ==============================
' Compiler
'================================================= ==============================
$regfile = "m8def.dat" 'Mega8
$crystal = 1000000
$baud = 9600
'-------------------------------------------------------------------------------


'================================================= ==============================
' LCD Parametrieren
'================================================= ==============================
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , _
Db7 = Portb.1 , E = Portd.5 , Rs = Portb.6

Config Lcd = 16 * 1

Cls
Cursor Off Noblink
'_________________________________________________ _____________________________


'************************************************* ******************************
'* HAUPTPROGRAMM *
'************************************************* ******************************

Do

Cls
Lcd "Hallo"
Waitms 2000

Loop

'-------------------------------------------------------------------------------


'===
End
'===

Björn
12.08.2005, 11:46
Hey es geht!

Nur leider ist der Kontrast katastrophal. Hab den Poti schon auf maximum. Könnte das daran liegen dass die Akkus schon leicht leer sind und statt 4,8V nur noch 4,6V bringen?

Gruß, Björn