24. November 2012

LCD Display mit ATmega16

Hallo, endlich kommt mal wieder was ;)

Abb.1: Mein 2x16 LCD Display.
Ich habe vor ca. einem Monat ( ~ Mitte Oktober ) ein 2x16 LCD Display geschenkt bekommen ( siehe Abb.1 ). Nun wollte ich natürlich unbedingt das Teil auch ausprobieren. Allerdings hatte ich so meine Startschwierigkeiten, weswegen ich es erst vor wenigen Tagen geschafft habe.


Problem:
 

Die Anschlussbelegung ( s. Abb.2 ):
Es gibt viele Tutorials, in denen gezeigt wird, wie man so ein LCD Display mit einem Standart Controller anschließt und auch ansteuert. Manche Tutorials sind allerdings unverständlich und auch manchmal falsch, was bei der Anschlussbelegung ( also wie man die 16 Pins des Displays anschließt ) zur Folge hat, dass nichts funktioniert.
Im AVR-GCC Tutorial von mikrocontroller.net habe ich allerdings ein gutes und funktionierendes Tutorial mit Code gefunden. Zum Tutorial

Anschlussbelegung bei einem LCD Display mit dem HD44780-Controller:

Abb.2: Belegung der Pins.

Abb.3: So sieht das ganze verkabelt aus.

Pin #-LCD Bezeichnung-LCD Pin-µC
1 Vss GND
2 Vcc VCC
3 Vee mit 330 OHM Wiederstand an GND
4 RS PD4
5 RW GND
6 E PD5
7 DB0 offen (unbenutzt)
8 DB1
9 DB2
10 DB3
11 DB4 PD0 am AVR
12 DB5 PD1 am AVR
13 DB6 PD2 am AVR
14 DB7 PD3 am AVR
15
LED - Beleuchtung: - VCC
16
LED - Beleuchtung: + PB7

Abb.4: Mit Pollin-Board von oben.
Programmieren mit C:

Zum Programmieren habe ich die Headerdatei lcd-routines.h, sowie die lcd-routines.c Datei vom Tutorial genommen, da diese gut funktioniert und einfach zu benutzen ist. Danach musste ich die .c Datei noch compilieren, aber das geht mit ProgrammersNotepad2 ( aus WIN-AVR Paket ) ja ganz schnell.

Nach anfänglichen Schwierigkeiten auch auf Seiten des Programmtextes gibts hier nun den fertigen Code.

Abb.5: Steckbrett mit LCD-Display.






Download als .zip
( Die Makefile-Datei muss natürlich an den Mikrocontroller, den ihr habd angepasst werden. UND die lcd-routines.c muss eingetragen werden -> s.u. )


LCD-Routines.c in Makefile eintragen:

1.) Makefile mit MFile o.ä. öffnen.
1.1) Wenn ihr MFile nutzt: Unter dem Menüpunkt "Makefile" den Punkt "Enable Editing of Makefile" aktivieren.
2.) Unter SRC = ... folgenes ändern:
Normal steht dort:  SRC = $(TARGET).c
Ihr Schreibt hin:     SRC = $(TARGET).c lcd-routines.c
3.) Speichern und fertig


Das wars auch schon wieder. Ich hoffe ich konnte euch ein paar Interessante Dinge zeigen und/oder euch beibringen. Ich werde gucken, was ich dem nächst mache. Schriebt doch mal in die Kommentare, was ihr gerne wissen wollt, oder interessant fändet. Ich freue mich für alle möglichen Antworten ;)

Download Code als .zip

mfg
Hauke