Set of routines to access 16*32character LCD display on WattBob I board.

Dependents:   Assignment_2_herpe Final_V1 ass2 ass2 ... more

Committer:
jimherd
Date:
Mon Nov 29 14:51:07 2010 +0000
Revision:
3:9c142edbfae8
Parent:
2:1cba2dd23d65
Child:
4:f06e69c4c7f3

        

Who changed what in which revision?

UserRevisionLine numberNew 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 1:190b705fb9e1 23 * MCP23017 *par_port;
jimherd 1:190b705fb9e1 24 * WattBob_TextLCD *lcd;
jimherd 1:190b705fb9e1 25 * .....
jimherd 3:9c142edbfae8 26 * int main()
jimherd 3:9c142edbfae8 27 * par_port = new MCP23017(p9, p10, 0x40);
jimherd 3:9c142edbfae8 28 * par_port->config(0x0F00, 0x0F00, 0x0F00); // configure MCP23017 chip on WattBob
jimherd 3:9c142edbfae8 29 * lcd = new WattBob_TextLCD(par_port);
jimherd 3:9c142edbfae8 30 *
jimherd 1:190b705fb9e1 31 * par_port->write_bit(1,BL_BIT); // turn LCD backlight ON
jimherd 1:190b705fb9e1 32 * lcd->cls(); lcd->locate(0,0);
jimherd 1:190b705fb9e1 33 * lcd->printf("%s", message);
jimherd 1:190b705fb9e1 34 * lcd->locate(1,0);lcd->printf("press 1 to cont");
jimherd 1:190b705fb9e1 35 * @endcode
jimherd 1:190b705fb9e1 36 */
jimherd 0:e5b7c70254ac 37 class WattBob_TextLCD : public Stream {
jimherd 0:e5b7c70254ac 38
jimherd 0:e5b7c70254ac 39 public:
jimherd 1:190b705fb9e1 40 /** Create TextLCD object connected to a MCP23017 device
jimherd 1:190b705fb9e1 41 *
jimherd 1:190b705fb9e1 42 * @param port pointer to MCP23017 object
jimherd 1:190b705fb9e1 43 */
jimherd 1:190b705fb9e1 44 WattBob_TextLCD(MCP23017 *port);
jimherd 1:190b705fb9e1 45
jimherd 1:190b705fb9e1 46 /** Set cursor to a known point
jimherd 1:190b705fb9e1 47 *
jimherd 1:190b705fb9e1 48 * Virtual function for stream class
jimherd 1:190b705fb9e1 49 *
jimherd 1:190b705fb9e1 50 * @param row integer row number (0 or 1)
jimherd 1:190b705fb9e1 51 * @param col integer column number (0 or 15)
jimherd 1:190b705fb9e1 52 */
jimherd 0:e5b7c70254ac 53 virtual void locate(int row, int column);
jimherd 1:190b705fb9e1 54
jimherd 1:190b705fb9e1 55 /** clear display
jimherd 1:190b705fb9e1 56 *
jimherd 1:190b705fb9e1 57 * Virtual function for stream class
jimherd 1:190b705fb9e1 58 */
jimherd 1:190b705fb9e1 59 virtual void cls();
jimherd 1:190b705fb9e1 60
jimherd 1:190b705fb9e1 61 /** reset the display
jimherd 1:190b705fb9e1 62 *
jimherd 1:190b705fb9e1 63 * Virtual function for stream class
jimherd 1:190b705fb9e1 64 */
jimherd 0:e5b7c70254ac 65 virtual void reset();
jimherd 0:e5b7c70254ac 66
jimherd 0:e5b7c70254ac 67 protected:
jimherd 0:e5b7c70254ac 68
jimherd 1:190b705fb9e1 69 virtual int _putc(int c);
jimherd 1:190b705fb9e1 70 virtual int _getc();
jimherd 1:190b705fb9e1 71 virtual void newline();
jimherd 1:190b705fb9e1 72
jimherd 0:e5b7c70254ac 73 void clock();
jimherd 0:e5b7c70254ac 74 void writeData(int data);
jimherd 0:e5b7c70254ac 75 void writeCommand(int command);
jimherd 0:e5b7c70254ac 76 void writeByte(int value);
jimherd 0:e5b7c70254ac 77 void writeNibble(int value);
jimherd 0:e5b7c70254ac 78
jimherd 0:e5b7c70254ac 79 void _rs (int data);
jimherd 0:e5b7c70254ac 80 void _rw (int data);
jimherd 0:e5b7c70254ac 81 void _e (int data);
jimherd 0:e5b7c70254ac 82 void _d (int data);
jimherd 1:190b705fb9e1 83
jimherd 0:e5b7c70254ac 84 int _rows;
jimherd 0:e5b7c70254ac 85 int _columns;
jimherd 0:e5b7c70254ac 86 int _row;
jimherd 0:e5b7c70254ac 87 int _column;
jimherd 0:e5b7c70254ac 88
jimherd 0:e5b7c70254ac 89 private:
jimherd 0:e5b7c70254ac 90 MCP23017 *par_port;
jimherd 0:e5b7c70254ac 91 };
jimherd 0:e5b7c70254ac 92
jimherd 0:e5b7c70254ac 93 #endif