PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 16*4 LCD



Verleihnix
01.09.2006, 07:47
Morgen,


zuerst mal "Hello Forum" *wachel* und Grüße an die "alten Hasen"....

bin noch recht neu hier unds lese fleissig wenn ich was suche.. hab auch zu meinen "neuen" 16x4LCd was gefunden aber nciht dieAntwort die ich mir erhofft habe..

Strom und Spannung bekommt das ganze jetzt 1.und 3 Zeile leuchtet wenn ich den Kontrast regle... soweit denke ich perfekt :) ..

so nun gehts auf die frage hin 4 oder 8 bit Datenmodus, wenn 4 bit welche Pins muss ich nicht belegen...und wenn 8bit Datenmodus wohin it den "7" Pins ..

geht sich aj nur unschwer aus wenn ein PortD nur 6 hat ??

Display ist ein PC 1604A 16x4 mit Flachbandkabel und Stecker gebastelt also um auch mal ohne Löten das Display wechseln zu können oder wenns mal Kaputt geht oder man es wo einbauen will..."proggen" tue ich auf nen myAVR Board mit den Stiftleisten wo ich +- und die 3 Ports habe also D,B,C ...auf welchen Port sollte grundsätzlich ein LCD hängen ??.

Der Atmega8 hat soweit ich mich entsinne nur 2 Timer, PMW usw.. verliere ich die Funktionen des Timers wenn ich die an das LCD anhänge also PortD z.B.

Hauptsächlich gehts um 4 oder 8 bit Datenmodus, angeschlossen wird es mit den RS,R/W,E Pins wie mein 16x2 LCD dann kommt eben Pin 7-14 also DB0- DB7...


Ihr werdet sicher öfters von mir lesen :mrgreen: ..bin bekannt dafür litaneien und ROmane zu schreiben ;)...


Danke schon mal für eine erste Hilfestellung


Gruß
Verleihnix

franzl
01.09.2006, 08:44
hallo,
also eigentlich verwenden die meisten den 4bit modus um einfach pins zu sparen. hier eine seite wo es eigentlich ganz gut beschrieben ist
http://www.the-starbearer.de/Roboterelektronik/LCDDisplays/LCD.htm
wenn du noch mehr wissen willst einfach fragen.
mfg franzl

m.a.r.v.i.n
01.09.2006, 09:10
Hallo Verleihnix,

wenn du das myAVR Board benutzt, wäre dieselbe Belegung wie für das myAVR LCD Addon sinnvoll, also 4-Bit Modus. Dann kannst du die Beispielprogramme übernehmen. :wink:

1 = Port D.2 LCD PIN 4 RS = Enable
2 = Port D.3 LCD PIN 6 E = Enable
3 = Port D.4 LCD PIN 11 DB4 = Datenbit 4
4 = Port D.5 LCD PIN 12 DB5 = Datenbit 5
5 = Port D.6 LCD PIN 13 DB6 = Datenbit 6
6 = Port D.7 LCD PIN 14 DB7 = Datenbit 7
7 = Port B.0 (Jumper R/W) LCD PIN 5 R/W =Read/Write (oder fest auf Low)
8 = Port B.1 (Jumper PWM) LCD PIN 15 Hintergrundbeleuchtung (Anode)

Die beiden letzten Ports sind über Jumper geführt, d.h. als Option gedacht.
Man kann R/W auch fest auf GND hängen, hat dann allerdings keine Möglchkeit, das BusyBit abzufragen. Hintergrundbeleuchtung über PWM zu dimmen, ist sicher auch nicht immer notwendig.

Die komplette Anleitung ist unter http://www.myavr.de/download.php zu finden.

Gruß m.a.r.v.i.n

Jahn Kohlhas
01.09.2006, 09:15
hallo verleihnix,

du brauchts minimal 6 leitungen wenn du rw auf masse legst, besser ist es aber rw zu nutzen da sonst die lcd-standardbibliotheken in C nicht gehen. es gibt aber im netz bibliotheken die auch ohne die rw-leitung auskommen. nimm nacha möglichkeit beim 4bit modus für die datenbits ein hi oder lo nibble des ports also D4-7 oder B0-3 etc. welchen port du benutzt hängt davon ab was du noch so machen willst. willst du PWM nutzen kannst du PORT B nicht nehmen willst du den ADC nutzen geht PORT C nicht willst du den Comparator nutzen geht PORT D nicht naja und so weiter. schau dir mal den schaltplan in dem pdf hier an, vielleicht gibt er dir ja anregungen ;-)

http://www.myavr.de/download/techb_lcd_22.pdf

wie wärs wenn du ne rasterleiterplatte nimmst es darauf realisierst und dir so eine steckerleiste machst das du dein display an die erweiterungsbuchse deines bords stecken kannst

gruß jahn

Verleihnix
01.09.2006, 10:11
Öhmm so habs fertig verdrahtet.es tut sich nüx. ..bzw. kommt jetzt DATENMÜLL ...(uii das kann aber viele Sonderzeichen ) :D .... ... Pin 5 geht über Jumper auf Portb.0 das Display hat kein Licht somit fällt PWM flach auf Portb.1

Das Display hat auf der Rückseite 4Chips ??.. 3xSEC C924B 1x SEC 0830..habe ich um 14 Eur bei ribu.at ergatter "abverkauf" ...

Pin Kompatibel ist es mit dem 16x2 eindeutig.. oder muss ich ne $lib einbinden ??... 4Prozessor LCD ??

Das ganze ist steckbar ans AVR board gemacht so das ich das Display und unterhalb wenn Notwendig taster noch drauf bekomme alles auf Streifenraster Platine...LCD

""7 = Port B.0 (Jumper R/W) LCD PIN 5 R/W =Read/Write (oder fest auf Low) "" << wenn ich das nicht benutze ?? ist der an Pinb.0 ?? oder gar nciht dran ?? wen ich es benutze geht der Pin7 auf masse ?? liegt es daran ?? das das LCD nicht geht..


Verleihnix

m.a.r.v.i.n
01.09.2006, 10:47
Hallo Verleihnix,

ob R/W verwendet wird oder auf GND gelegt wird, hängt ganz allein von deinem Programm ab. Die Standard Lib BASCOM z.B. unterstützt kein R/W.
Die LCD-Lib von P. Fleury hingegen benötigt R/W als Prozessor Port.

Im Hintergrund deines Bildes liegt ja ein myAVR LCD Modul. Wenn dein Programm damit funzt, liegt es wohl an der Verdrahtung. Probier mal das 4x16 Display am myAVR LCD Modul, falls das mit deinem angelötetem Kabel geht. Allerdings mußt du dazu dein Programm anpassen auf die unterschiedlichen Displays.

Gruß m.a.r.v.in

Verleihnix
01.09.2006, 11:08
Ok habs gefunden war Pin 7 Jumper hat jetzt auch 3 Pins und nicht nur 2 einmal auf masse und einmal auf portb.0

Danke an allen die mir geholfen haben...mit tips :) :mrgreen:




'--------------------------------------------------------------
' (c) 2006-2040 FHS Electronic
'--------------------------------------------------------------
' datei: lcd4_16.BAS
' versuch: Textausgabe auf 4 Zeilen
'--------------------------------------------------------------



$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
Dim R As Word
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 ,
Config Lcd = 16 * 4
Config Portd = Output
Initlcd

Do
Cls ' display löschen
Cursor Off 'cursor aus
Locate 1 , 1 'koordinaten text
Lcd "Danke" 'ausgabe lcd
Waitms 500 'warte ms
Locate 2 , 1
Lcd "funktioniert"
Waitms 500
Locate 3 , 1
Lcd "jetzt"
Locate 4 , 1
Lcd "Verleihnix :)"
Waitms 1000





Loop 'schleife endlos

End 'end program
[/code]