http://uk.farnell.com/batron/bthq21605v-cog-fsre-i2c/lcd-module-alphanumeric-2x16/dp/1220409
Dependents: PCF2119_16X2_LCD_test LPC1768BagSensor
Diff: PC2119_16X2_LCD.h
- Revision:
- 0:581d2def0734
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PC2119_16X2_LCD.h Fri May 13 13:25:10 2011 +0000 @@ -0,0 +1,50 @@ +#ifndef PCF2119_16X2_LCD_H +#define PCF2119_16X2_LCD_H + +#include "mbed.h" + + +#define ASCII_OFFSET 0x80 + +// Define LCD parameters +#define LCD_I2C_ADR 0x76 // address + W + +#define FUNCTION_SET 0x34 //Function_set - 2 lines x 16, 1:18 Multiplex drive mode, 8 bits, basic instr. set +#define DISPLAY_CTL 0x0C // Cursor off / Blink off / Character blink off + +#define INSTRUCTION_CTRL_BYTE 0x00 +#define DATA_CTRL_BYTE 0x40 + +#define VLCD_MULTIPLIER 0x90 +#define VLCD_CONTRAST 0xA8 +#define ENTRY_MODE 0x06 // DDRAM or CGRAM address increments by 1, cursor moves to the right / Display does not shift +#define CURSOR_DISLPAY_SHIFT 0x04 // cursor moves to the right (no display shift) +#define ICON_CTRL 0x08 // direct mode off / icon blink disabled / character mode full display + +#define CLEAR_DISPLAY 0x01 + +#define BLANK_CHAR ' ' + +class PC2119_16X2_LCD { +public: + PC2119_16X2_LCD(PinName p_sda, PinName p_scl, PinName p_reset); + PC2119_16X2_LCD(I2C& p_i2c, PinName p_reset); + void Init(); + void flip_display(); + void unflip_display(); + void clear_display(); + void clear_line(char row); + void write_xy(char ddram_byte, char row, char column, bool raw = false); + void write(char *b); + void printf(const char * format, ... ); +protected: + +private: + I2C _i2c; + DigitalOut _reset; + + char ascii_to_lcd(char ch); + +}; + +#endif \ No newline at end of file