LCD-Library
Dependents: Projekt_Wecker_LCD Projekt_Wecker_LCD Projekt_Wecker_LCD
LCD.h
- Committer:
- wolpra98
- Date:
- 2015-04-30
- Revision:
- 0:b25367985a15
File content as of revision 0:b25367985a15:
#ifndef _LCD_H #define _LCD_H class LCD { public: LCD(PinName RS, PinName EN, PinName DB4, PinName DB5, PinName DB6, PinName DB7); // Sendet den Befehl zur Löschung des Displays void clear(void); // Sendet den Befehl: Cursor Home void home(void); // Sendet ein Datenbyte an das LCD void data(unsigned char data); // Schreibt einen String auf das LCD void string(const char *data); // Setzt den Cursor in Spalte x (0..15) Zeile y (1..4) void setcursor(unsigned char x, unsigned char y); private: // Sendet eine 4-bit Ausgabeoperation an das LCD void out(unsigned char data); // Erzeugt einen Enable-Puls void enable(); // Sendet einen Befehl an das LCD void command(unsigned char data); PinName _rs; PinName _en; PinName _db4; PinName _db5; PinName _db6; PinName _db7; }; // LCD Befehle und Argumente. // Zur Verwendung in lcd_command // Kopiert von http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung //////////////////////////////////////////////////////////////////////////////// // LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden) #define LCD_BOOTUP_MS 30 #define LCD_ENABLE_US 20 #define LCD_WRITEDATA_US 46 #define LCD_COMMAND_US 42 #define LCD_SOFT_RESET_MS1 5 #define LCD_SOFT_RESET_MS2 1 #define LCD_SOFT_RESET_MS3 1 #define LCD_SET_4BITMODE_MS 5 #define LCD_CLEAR_DISPLAY_MS 2 #define LCD_CURSOR_HOME_MS 2 //////////////////////////////////////////////////////////////////////////////// // Zeilendefinitionen des verwendeten LCD // Die Einträge hier sollten für ein LCD mit einer Zeilenlänge von 16 Zeichen passen // Bei anderen Zeilenlängen müssen diese Einträge angepasst werden #define LCD_DDADR_LINE1 0x00 #define LCD_DDADR_LINE2 0x40 #define LCD_DDADR_LINE3 0x10 #define LCD_DDADR_LINE4 0x50 // Clear Display -------------- 0b00000001 #define LCD_CLEAR_DISPLAY 0x01 // Cursor Home ---------------- 0b0000001x #define LCD_CURSOR_HOME 0x02 // Set Entry Mode ------------- 0b000001xx #define LCD_SET_ENTRY 0x04 #define LCD_ENTRY_DECREASE 0x00 #define LCD_ENTRY_INCREASE 0x02 #define LCD_ENTRY_NOSHIFT 0x00 #define LCD_ENTRY_SHIFT 0x01 // Set Display ---------------- 0b00001xxx #define LCD_SET_DISPLAY 0x08 #define LCD_DISPLAY_OFF 0x00 #define LCD_DISPLAY_ON 0x04 #define LCD_CURSOR_OFF 0x00 #define LCD_CURSOR_ON 0x02 #define LCD_BLINKING_OFF 0x00 #define LCD_BLINKING_ON 0x01 // Set Shift ------------------ 0b0001xxxx #define LCD_SET_SHIFT 0x10 #define LCD_CURSOR_MOVE 0x00 #define LCD_DISPLAY_SHIFT 0x08 #define LCD_SHIFT_LEFT 0x00 #define LCD_SHIFT_RIGHT 0x04 // Set Function --------------- 0b001xxxxx #define LCD_SET_FUNCTION 0x20 #define LCD_FUNCTION_4BIT 0x00 #define LCD_FUNCTION_8BIT 0x10 #define LCD_FUNCTION_1LINE 0x00 #define LCD_FUNCTION_2LINE 0x08 #define LCD_FUNCTION_5X7 0x00 #define LCD_FUNCTION_5X10 0x04 #define LCD_SOFT_RESET 0x30 // Set CG RAM Address --------- 0b01xxxxxx (Character Generator RAM) #define LCD_SET_CGADR 0x40 #define LCD_GC_CHAR0 0 #define LCD_GC_CHAR1 1 #define LCD_GC_CHAR2 2 #define LCD_GC_CHAR3 3 #define LCD_GC_CHAR4 4 #define LCD_GC_CHAR5 5 #define LCD_GC_CHAR6 6 #define LCD_GC_CHAR7 7 // Set DD RAM Address --------- 0b1xxxxxxx (Display Data RAM) #define LCD_SET_DDADR 0x80 #endif