Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TextLCD_4x40/TextLCD_4x40.h@0:18d40dac71ff, 2012-05-29 (annotated)
- Committer:
- kevin_38
- Date:
- Tue May 29 09:30:20 2012 +0000
- Revision:
- 0:18d40dac71ff
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kevin_38 | 0:18d40dac71ff | 1 | /*Modification de : mbed TextLCD Library, for a 4-bit LCD based on HD44780 |
| kevin_38 | 0:18d40dac71ff | 2 | pour la commande d'un afficheur 4x40 |
| kevin_38 | 0:18d40dac71ff | 3 | */ |
| kevin_38 | 0:18d40dac71ff | 4 | |
| kevin_38 | 0:18d40dac71ff | 5 | #ifndef MBED_TEXTLCD_H |
| kevin_38 | 0:18d40dac71ff | 6 | #define MBED_TEXTLCD_H |
| kevin_38 | 0:18d40dac71ff | 7 | |
| kevin_38 | 0:18d40dac71ff | 8 | #include "mbed.h" |
| kevin_38 | 0:18d40dac71ff | 9 | |
| kevin_38 | 0:18d40dac71ff | 10 | /** A TextLCD interface for driving 4-bit HD44780-based LCDs |
| kevin_38 | 0:18d40dac71ff | 11 | * |
| kevin_38 | 0:18d40dac71ff | 12 | * |
| kevin_38 | 0:18d40dac71ff | 13 | * @code |
| kevin_38 | 0:18d40dac71ff | 14 | * #include "mbed.h" |
| kevin_38 | 0:18d40dac71ff | 15 | * #include "TextLCD.h" |
| kevin_38 | 0:18d40dac71ff | 16 | * |
| kevin_38 | 0:18d40dac71ff | 17 | * TextLCD lcd(p10, p12, p15, p16, p29, p30); // rs, e, d0-d3 |
| kevin_38 | 0:18d40dac71ff | 18 | * |
| kevin_38 | 0:18d40dac71ff | 19 | * int main() { |
| kevin_38 | 0:18d40dac71ff | 20 | * lcd.printf("Hello World!\n"); |
| kevin_38 | 0:18d40dac71ff | 21 | * } |
| kevin_38 | 0:18d40dac71ff | 22 | * @endcode |
| kevin_38 | 0:18d40dac71ff | 23 | */ |
| kevin_38 | 0:18d40dac71ff | 24 | class TextLCD_4x40 : public Stream { |
| kevin_38 | 0:18d40dac71ff | 25 | public: |
| kevin_38 | 0:18d40dac71ff | 26 | |
| kevin_38 | 0:18d40dac71ff | 27 | /** Create a TextLCD interface |
| kevin_38 | 0:18d40dac71ff | 28 | * |
| kevin_38 | 0:18d40dac71ff | 29 | * @param rs Instruction/data control line |
| kevin_38 | 0:18d40dac71ff | 30 | * @param e Enable line (clock) |
| kevin_38 | 0:18d40dac71ff | 31 | * @param d0-d3 Data lines |
| kevin_38 | 0:18d40dac71ff | 32 | */ |
| kevin_38 | 0:18d40dac71ff | 33 | TextLCD_4x40(PinName rs, PinName e, PinName d0, PinName d1, PinName d2, PinName d3); |
| kevin_38 | 0:18d40dac71ff | 34 | |
| kevin_38 | 0:18d40dac71ff | 35 | #if DOXYGEN_ONLY |
| kevin_38 | 0:18d40dac71ff | 36 | /** Write a character to the LCD |
| kevin_38 | 0:18d40dac71ff | 37 | * |
| kevin_38 | 0:18d40dac71ff | 38 | * @param c The character to write to the display |
| kevin_38 | 0:18d40dac71ff | 39 | */ |
| kevin_38 | 0:18d40dac71ff | 40 | int putc(char c); |
| kevin_38 | 0:18d40dac71ff | 41 | |
| kevin_38 | 0:18d40dac71ff | 42 | /** Write a formated string to the LCD |
| kevin_38 | 0:18d40dac71ff | 43 | * |
| kevin_38 | 0:18d40dac71ff | 44 | * @param format A printf-style format string, followed by the |
| kevin_38 | 0:18d40dac71ff | 45 | * variables to use in formating the string. |
| kevin_38 | 0:18d40dac71ff | 46 | */ |
| kevin_38 | 0:18d40dac71ff | 47 | char printf(const char* format, ...); |
| kevin_38 | 0:18d40dac71ff | 48 | #endif |
| kevin_38 | 0:18d40dac71ff | 49 | |
| kevin_38 | 0:18d40dac71ff | 50 | /** Locate to a screen column and row |
| kevin_38 | 0:18d40dac71ff | 51 | * |
| kevin_38 | 0:18d40dac71ff | 52 | * @param column The horizontal position from the left, indexed from 0 |
| kevin_38 | 0:18d40dac71ff | 53 | * @param row The vertical position from the top, indexed from 0 |
| kevin_38 | 0:18d40dac71ff | 54 | */ |
| kevin_38 | 0:18d40dac71ff | 55 | void locate(char column, char row); |
| kevin_38 | 0:18d40dac71ff | 56 | |
| kevin_38 | 0:18d40dac71ff | 57 | /** Clear the screen and locate to 0,0 */ |
| kevin_38 | 0:18d40dac71ff | 58 | void cls(); |
| kevin_38 | 0:18d40dac71ff | 59 | |
| kevin_38 | 0:18d40dac71ff | 60 | protected: |
| kevin_38 | 0:18d40dac71ff | 61 | |
| kevin_38 | 0:18d40dac71ff | 62 | // Stream implementation functions |
| kevin_38 | 0:18d40dac71ff | 63 | virtual int _putc(int value); |
| kevin_38 | 0:18d40dac71ff | 64 | virtual int _getc(); |
| kevin_38 | 0:18d40dac71ff | 65 | |
| kevin_38 | 0:18d40dac71ff | 66 | char address(char column, char row); |
| kevin_38 | 0:18d40dac71ff | 67 | void character(char column, char row, char c); |
| kevin_38 | 0:18d40dac71ff | 68 | void writeByte(char value); |
| kevin_38 | 0:18d40dac71ff | 69 | void writeCommand(char command); |
| kevin_38 | 0:18d40dac71ff | 70 | void writeData(char data); |
| kevin_38 | 0:18d40dac71ff | 71 | |
| kevin_38 | 0:18d40dac71ff | 72 | DigitalOut _rs, _e; |
| kevin_38 | 0:18d40dac71ff | 73 | BusOut _d; |
| kevin_38 | 0:18d40dac71ff | 74 | |
| kevin_38 | 0:18d40dac71ff | 75 | char _column; |
| kevin_38 | 0:18d40dac71ff | 76 | char _row; |
| kevin_38 | 0:18d40dac71ff | 77 | }; |
| kevin_38 | 0:18d40dac71ff | 78 | |
| kevin_38 | 0:18d40dac71ff | 79 | #endif |