HD44780 Display via PCF8574 I²C IO-Expander

Code um ein HD44780 kompatibles LCD über den I²C-Bus durch einen 8-Bit IO-Expander-Baustein (PCF8574) zu steuern

All available languages for this article:

HD44780 Display via PCF8574 I²C IO-Expander [de]

Categories:

Mikrocontroller


Der PCF8574 von Philips ist ein 8-Bit IO-Expander für den I²C Bus (auch TWI genannt) mit dem man einen ATMega leicht mit 8 weiteren IO-Leitungen ausrüsten kann.

Besonders leicht lässt sich solch ein Expander dazu benutzen, ein HD44780 kompatibles LC Display im 4-Bit Modus anzusteuern. Man kann damit wertvolle IO-Pins am µC sparen.

Ich habe Code geschrieben um ein an einen PCF8574 angeschlossenes Display ganz simpel anzusteuern.

Konfiguriert wird die Belegung des Display in lcd.h:

/* i2c addr of expander chip */
#define LCD_I2C_ADDR 0x40 // (0100 000)


/* define what display-pin is connected
 * to what io-pin of expander */
#define LCD_D4 P7
#define LCD_D5 P6
#define LCD_D6 P5
#define LCD_D7 P4

#define LCD_RS P1
#define LCD_RW P2
#define LCD_E  P3

Es muss jediglich die I²C-Adresse des PCF8574 angegeben werden und welcher Pin des LCD an welchem Pin des Expanders hängt!

Initialisieren des Display mit:

/* init the lcd */
void lcdInit(void);

Löschen des Displayinhalts mit:

/* clear the display */
void lcdClear(void);

Anzeigen eines Strings auf dem Display:

/* print a string on display,
 * continues automatically in 2nd line,
 * note that lcdClear() should be called
 * before using this function */
void lcdPrintString(unsigned char *str);

Senden von Low-Level-Daten an das Display:

/* low level function, see lcd.c */
void lcd4BitOut(unsigned char c, unsigned char data);

Zusätzlich zu meinem Code ist zur Ansteuerung noch der I²C-Code der avrlib nötig.

Download des Codes (veröffentlicht unter der GPL):

Version 1.0: hd44780_via_pcf8574-1.0.tar.gz


Comments

Andreas (2011-09-14 19:56:47) [reply]
Hallo, ich habe alles zusammengelötet und nun scheitere ich am Test. Ich blicks irgendwie nicht richtig. Kannst Du mir bitte einen einfachen Test-Sketch senden, um das Display zum Laufen zu bringen? Gruß Andreas

Add a comment
 
     
© 1999 - 2017 ScriptKiller
Impressum | Sitemap