avr-gcc LCD Library

Die LCD Library dient zur Ansteuerung von LCD Anzeigen mit HD44780 Controller

Funktionen

lcd_init

extern void lcd_init(uint8_t dispAttr);

Die Funktion lcd_init() initialisiert das Display. Als Parameter wird eine dieser Optionen übergeben

LCD_DISP_OFF             - Display aus
LCD_DISP_ON              - Display an, Cursor aus
LCD_DISP_ON_CURSOR       - Display an, Cursor an
LCD_DISP_ON_CURSOR_BLINK - Display an, Cursor blinkt

lcd_clrscr

extern void lcd_clrscr(void);

Löscht das Display und setzt den Cursor in die linke obere Ecke.

lcd_home

extern void lcd_home(void);

Setzt den Cursor in die linke obere Ecke.

lcd_gotoxy

extern void lcd_gotoxy(uint8_t x, uint8_t y);

Setzt den Cursor an die durch x und y angegebenen Koordinaten.

lcd_putc

extern void lcd_putc(char c);

Gibt ein Zeichen an der aktuellen Cursorposition aus.

lcd_cmd()

extern void lcd_cmd(uint8_t cmd);

Die Funktion lcd_cmd() sendet einen Befehl an das Display (RS=0). Vor dem Senden wird das Busy Flag abgefragt.

lcd_data

extern void lcd_data(uint8_t data);

Die Funktion lcd_data() sendet ein Datenbyte an das CGRAM oder an das DDRAM des Displays (RS=1). Vor dem Senden wird das Busy Flag abgefragt.

config.h

Um das Display zu konfigurieren müssen einige Defines in der config.h vorgenommen werden.

/*------------------------------------------------------------------------------
 * Defines for LCD
 *----------------------------------------------------------------------------*/
#define LCD_ROWS        2             // Number of Rows
#define LCD_COLS        16            // Number of Columns
#define LCD_DATA_PORT   PORTB         // Port Register of the LCD Data Port
#define LCD_D4          0             // Port Bit connected to D4 of the LCD
#define LCD_CTRL_PORT   PORTB         // Port Register for the LCD control signals
#define LCD_RS          7             // Port Bit of the RS Signal
#define LCD_RW          6             // Port Bit of the RW Signal
#define LCD_E           5             // Port Bit of the Enable Signal
#define LCD_BL          0             // Port Bit to control the Backlight
  • LCD_ROWS definiert die Anzahl der Zeilen des Displays. Erlaubte Werte sind 1, 2 und 4.
  • LCD_COLS definiert die Anzahl der Zeichen pro Zeile.
  • LCD_DATA_PORT definiert den Port, an dem die Datenleitungen des Displays angeschlossen sind.
  • LCD_D4 definiert das Portbit, an dem die Datenleitung D4 des Displays angeschlossen ist. Erlaubte Werte sind 0, wenn die Datenleitungen an die Portbits 0-3 angeschlossen sind und 4, wenn die Datenleitungen an die Portbits 4-7 angeschlossen sind.
  • LCD_CTRL_PORT definert den Port, an dem die Steuerleitungen angeschlossen sind.
  • LCD_RS definiert das Portbit, an dem die Leitung RS des Display angeschlossen ist.
  • LCD_RW definiert das Portbit, an dem die Leitung RW des Display angeschlossen ist.
  • LCD_E definiert das Portbit, an dem die Enable Leitung des Display angeschlossen ist.
  • LCD_BL definiert das Portbit, an dem die Hintergrundbeleuchtung des Display angeschlossen ist. (noch nicht implementiert)

Dieser Code kann direkt in die config.h übernommen und angepasst werden

Beispiele

#include <config.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <lcd.h>
 
const char HelloFlash[] PROGMEM = "Hello Flash!";
 
int main(void)
{
    /* initialize display, cursor off */
    lcd_init(LCD_DISP_ON);
 
    lcd_clr();                       /* Clear Display */
    lcd_putc("C");                      /* Prints the char C on the Display */
    write(lcd_putc, "Hello World!");    /* Writes "Hello World!" to the Display (needs utils.h)*/
    write_p(lcd_putc, HelloFlash);      /* Writes "Hello Flash!" from Program Memory to the Display (needs utils.h and avr/pgmspace.h */
    for (;;) ;                          /* loop forever */
}

Schaltpläne

Dieser Schaltplan zeigt eine Anschlussmöglichkeit an einem ATmega8-16PU (DIP). Hier wurde PortD verwendet und die Data Ports liegen an PD4 bis PD7.

Beispiel Schaltplan

Notes

Getestet mit:

  • HD44780 2×16
  • HD44780 2×40
  • HD44780 4×20
  • KS0073 4×20 (EA DIP204) Code für KS0073 vorübergehend entfernt

Diskussion

daniel44daniel44, 2009/08/18 15:34

wo finde ich den die config.h ?

Die > avr-gcc LCD Library < muss ich die erst installieren? Oder wie komme ich daran? Bei Synapic nix gefuden.

Danke

Markus BurrerMarkus Burrer, 2009/08/21 09:39

Du musst am besten das komplette Paket runterladen. Das findest du hier

http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/avr-gcc-library/start

Jay BJay B, 2011/06/26 20:51

guten tag

also leider funktioniert das ganze bei mir nicht, gibt ohne ende von fehler meldungen…

hab hab oben das beispiel mal rein kopiert… und config un so alles im ordner drinne. jetzt sagt avr studio er findet lcd_init nicht..

Geben Sie Ihren Kommentar ein (Wiki-Syntax ist zugelassen):
Wenn Sie die Buchstaben auf dem Bild nicht lesen können, laden Sie diese .wav Datei herunter, um sie vorgelesen zu bekommen.
/www/htdocs/w00645de/dokuwiki/data/pages/mikrocontroller/avr/avr-gcc-library/lcd_library.txt · Zuletzt geändert: 2009/08/19 06:04 von burli
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0