# HD44780 LCD display driver ## Connection type Driver supports GPIO connections to module and I2C GPIO expanders as well. Define `HD44780_I2C = 0` in application makefile for direct GPIO connection. See `examples/i2c_lcd_test` and `examples/hd44780_test` . ## Display types ### 8x1 #### Memory layout ![0801 display](img/0801.png) #### Example ```C hd44780_t lcd = { .addr = ADDR, .font = HD44780_FONT_5X8, .lines = 1, .pins = { .rs = 0, .e = 2, .d4 = 4, .d5 = 5, .d6 = 6, .d7 = 7, .bl = 3 }, .backlight = true }; ``` ### 16x1 #### Memory layout ![1601 display](img/1601.png) #### Example ```C hd44780_t lcd = { .addr = ADDR, .font = HD44780_FONT_5X8, .lines = 2, .pins = { .rs = 0, .e = 2, .d4 = 4, .d5 = 5, .d6 = 6, .d7 = 7, .bl = 3 }, .backlight = true }; hd44780_init(&lcd); hd44780_gotoxy(&lcd, 0, 0); hd44780_puts(&lcd, "Hello wo"); hd44780_gotoxy(&lcd, 0, 1); hd44780_puts(&lcd, "rld!"); ``` ### 16x2, 20x2 #### Memory layout ![1602 display](img/1602.png) #### Example ```C hd44780_t lcd = { .addr = ADDR, .font = HD44780_FONT_5X8, .lines = 2, .pins = { .rs = 0, .e = 2, .d4 = 4, .d5 = 5, .d6 = 6, .d7 = 7, .bl = 3 }, .backlight = true }; ``` ### 16x4, 20x4 #### Memory layout ![1604 display](img/1604.png) #### Example ```C hd44780_t lcd = { .addr = ADDR, .font = HD44780_FONT_5X8, .lines = 4, .pins = { .rs = 0, .e = 2, .d4 = 4, .d5 = 5, .d6 = 6, .d7 = 7, .bl = 3 }, .backlight = true }; ```