Set of routines to access 16*32character LCD display on WattBob I board.
Dependents: Assignment_2_herpe Final_V1 ass2 ass2 ... more
WattBob_TextLCD.h@6:b2336a1a1810, 2010-11-29 (annotated)
- Committer:
- jimherd
- Date:
- Mon Nov 29 15:39:07 2010 +0000
- Revision:
- 6:b2336a1a1810
- Parent:
- 5:7d2072e818e8
- Child:
- 7:020722c18a8b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jimherd | 0:e5b7c70254ac | 1 | /* draft mbed TextLCD |
jimherd | 0:e5b7c70254ac | 2 | * (c) 2007/8, sford |
jimherd | 0:e5b7c70254ac | 3 | */ |
jimherd | 0:e5b7c70254ac | 4 | |
jimherd | 0:e5b7c70254ac | 5 | #ifndef WATTBOB_TEXTLCD_H |
jimherd | 0:e5b7c70254ac | 6 | #define WATTBOB_TEXTLCD_H |
jimherd | 0:e5b7c70254ac | 7 | |
jimherd | 0:e5b7c70254ac | 8 | #include "mbed.h" |
jimherd | 0:e5b7c70254ac | 9 | #include "Stream.h" |
jimherd | 0:e5b7c70254ac | 10 | #include "MCP23017.h" |
jimherd | 0:e5b7c70254ac | 11 | |
jimherd | 0:e5b7c70254ac | 12 | #define RS_BIT 7 |
jimherd | 0:e5b7c70254ac | 13 | #define RW_BIT 6 |
jimherd | 0:e5b7c70254ac | 14 | #define E_BIT 5 |
jimherd | 0:e5b7c70254ac | 15 | #define BL_BIT 4 |
jimherd | 0:e5b7c70254ac | 16 | |
jimherd | 1:190b705fb9e1 | 17 | /** Class to access 16*2 LCD display connected to an MCP23017 I/O extender chip |
jimherd | 1:190b705fb9e1 | 18 | * |
jimherd | 1:190b705fb9e1 | 19 | * Derived from the "stream" class to be able to use methods such as "printf" |
jimherd | 1:190b705fb9e1 | 20 | * |
jimherd | 1:190b705fb9e1 | 21 | * Example : |
jimherd | 1:190b705fb9e1 | 22 | * @code |
jimherd | 4:f06e69c4c7f3 | 23 | * ..... |
jimherd | 6:b2336a1a1810 | 24 | * #include "MCP23017" |
jimherd | 4:f06e69c4c7f3 | 25 | * #include "WattBob_TextLCD.h" |
jimherd | 4:f06e69c4c7f3 | 26 | * ..... |
jimherd | 1:190b705fb9e1 | 27 | * MCP23017 *par_port; |
jimherd | 1:190b705fb9e1 | 28 | * WattBob_TextLCD *lcd; |
jimherd | 1:190b705fb9e1 | 29 | * ..... |
jimherd | 3:9c142edbfae8 | 30 | * int main() |
jimherd | 6:b2336a1a1810 | 31 | * par_port = new MCP23017(p9, p10, 0x40); |
jimherd | 3:9c142edbfae8 | 32 | * lcd = new WattBob_TextLCD(par_port); |
jimherd | 3:9c142edbfae8 | 33 | * |
jimherd | 1:190b705fb9e1 | 34 | * par_port->write_bit(1,BL_BIT); // turn LCD backlight ON |
jimherd | 1:190b705fb9e1 | 35 | * lcd->cls(); lcd->locate(0,0); |
jimherd | 1:190b705fb9e1 | 36 | * lcd->printf("%s", message); |
jimherd | 1:190b705fb9e1 | 37 | * lcd->locate(1,0);lcd->printf("press 1 to cont"); |
jimherd | 1:190b705fb9e1 | 38 | * @endcode |
jimherd | 1:190b705fb9e1 | 39 | */ |
jimherd | 0:e5b7c70254ac | 40 | class WattBob_TextLCD : public Stream { |
jimherd | 0:e5b7c70254ac | 41 | |
jimherd | 0:e5b7c70254ac | 42 | public: |
jimherd | 1:190b705fb9e1 | 43 | /** Create TextLCD object connected to a MCP23017 device |
jimherd | 1:190b705fb9e1 | 44 | * |
jimherd | 1:190b705fb9e1 | 45 | * @param port pointer to MCP23017 object |
jimherd | 1:190b705fb9e1 | 46 | */ |
jimherd | 1:190b705fb9e1 | 47 | WattBob_TextLCD(MCP23017 *port); |
jimherd | 1:190b705fb9e1 | 48 | |
jimherd | 1:190b705fb9e1 | 49 | /** Set cursor to a known point |
jimherd | 1:190b705fb9e1 | 50 | * |
jimherd | 1:190b705fb9e1 | 51 | * Virtual function for stream class |
jimherd | 1:190b705fb9e1 | 52 | * |
jimherd | 1:190b705fb9e1 | 53 | * @param row integer row number (0 or 1) |
jimherd | 1:190b705fb9e1 | 54 | * @param col integer column number (0 or 15) |
jimherd | 1:190b705fb9e1 | 55 | */ |
jimherd | 0:e5b7c70254ac | 56 | virtual void locate(int row, int column); |
jimherd | 1:190b705fb9e1 | 57 | |
jimherd | 1:190b705fb9e1 | 58 | /** clear display |
jimherd | 1:190b705fb9e1 | 59 | * |
jimherd | 1:190b705fb9e1 | 60 | * Virtual function for stream class |
jimherd | 1:190b705fb9e1 | 61 | */ |
jimherd | 1:190b705fb9e1 | 62 | virtual void cls(); |
jimherd | 1:190b705fb9e1 | 63 | |
jimherd | 1:190b705fb9e1 | 64 | /** reset the display |
jimherd | 1:190b705fb9e1 | 65 | * |
jimherd | 1:190b705fb9e1 | 66 | * Virtual function for stream class |
jimherd | 1:190b705fb9e1 | 67 | */ |
jimherd | 0:e5b7c70254ac | 68 | virtual void reset(); |
jimherd | 0:e5b7c70254ac | 69 | |
jimherd | 0:e5b7c70254ac | 70 | protected: |
jimherd | 0:e5b7c70254ac | 71 | |
jimherd | 1:190b705fb9e1 | 72 | virtual int _putc(int c); |
jimherd | 1:190b705fb9e1 | 73 | virtual int _getc(); |
jimherd | 1:190b705fb9e1 | 74 | virtual void newline(); |
jimherd | 1:190b705fb9e1 | 75 | |
jimherd | 0:e5b7c70254ac | 76 | void clock(); |
jimherd | 0:e5b7c70254ac | 77 | void writeData(int data); |
jimherd | 0:e5b7c70254ac | 78 | void writeCommand(int command); |
jimherd | 0:e5b7c70254ac | 79 | void writeByte(int value); |
jimherd | 0:e5b7c70254ac | 80 | void writeNibble(int value); |
jimherd | 0:e5b7c70254ac | 81 | |
jimherd | 0:e5b7c70254ac | 82 | void _rs (int data); |
jimherd | 0:e5b7c70254ac | 83 | void _rw (int data); |
jimherd | 0:e5b7c70254ac | 84 | void _e (int data); |
jimherd | 0:e5b7c70254ac | 85 | void _d (int data); |
jimherd | 1:190b705fb9e1 | 86 | |
jimherd | 0:e5b7c70254ac | 87 | int _rows; |
jimherd | 0:e5b7c70254ac | 88 | int _columns; |
jimherd | 0:e5b7c70254ac | 89 | int _row; |
jimherd | 0:e5b7c70254ac | 90 | int _column; |
jimherd | 0:e5b7c70254ac | 91 | |
jimherd | 0:e5b7c70254ac | 92 | private: |
jimherd | 0:e5b7c70254ac | 93 | MCP23017 *par_port; |
jimherd | 0:e5b7c70254ac | 94 | }; |
jimherd | 0:e5b7c70254ac | 95 | |
jimherd | 0:e5b7c70254ac | 96 | #endif |