~ubuntu-branches/ubuntu/precise/arduino/precise

« back to all changes in this revision

Viewing changes to libraries/LiquidCrystal/LiquidCrystal.h

  • Committer: Bazaar Package Importer
  • Author(s): Scott Howard
  • Date: 2010-04-13 22:32:24 UTC
  • Revision ID: james.westby@ubuntu.com-20100413223224-jduxnd0xxnkkda02
Tags: upstream-0018+dfsg
ImportĀ upstreamĀ versionĀ 0018+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef LiquidCrystal_h
 
2
#define LiquidCrystal_h
 
3
 
 
4
#include <inttypes.h>
 
5
#include "Print.h"
 
6
 
 
7
// commands
 
8
#define LCD_CLEARDISPLAY 0x01
 
9
#define LCD_RETURNHOME 0x02
 
10
#define LCD_ENTRYMODESET 0x04
 
11
#define LCD_DISPLAYCONTROL 0x08
 
12
#define LCD_CURSORSHIFT 0x10
 
13
#define LCD_FUNCTIONSET 0x20
 
14
#define LCD_SETCGRAMADDR 0x40
 
15
#define LCD_SETDDRAMADDR 0x80
 
16
 
 
17
// flags for display entry mode
 
18
#define LCD_ENTRYRIGHT 0x00
 
19
#define LCD_ENTRYLEFT 0x02
 
20
#define LCD_ENTRYSHIFTINCREMENT 0x01
 
21
#define LCD_ENTRYSHIFTDECREMENT 0x00
 
22
 
 
23
// flags for display on/off control
 
24
#define LCD_DISPLAYON 0x04
 
25
#define LCD_DISPLAYOFF 0x00
 
26
#define LCD_CURSORON 0x02
 
27
#define LCD_CURSOROFF 0x00
 
28
#define LCD_BLINKON 0x01
 
29
#define LCD_BLINKOFF 0x00
 
30
 
 
31
// flags for display/cursor shift
 
32
#define LCD_DISPLAYMOVE 0x08
 
33
#define LCD_CURSORMOVE 0x00
 
34
#define LCD_MOVERIGHT 0x04
 
35
#define LCD_MOVELEFT 0x00
 
36
 
 
37
// flags for function set
 
38
#define LCD_8BITMODE 0x10
 
39
#define LCD_4BITMODE 0x00
 
40
#define LCD_2LINE 0x08
 
41
#define LCD_1LINE 0x00
 
42
#define LCD_5x10DOTS 0x04
 
43
#define LCD_5x8DOTS 0x00
 
44
 
 
45
class LiquidCrystal : public Print {
 
46
public:
 
47
  LiquidCrystal(uint8_t rs, uint8_t enable,
 
48
                uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
 
49
                uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
 
50
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
 
51
                uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
 
52
                uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
 
53
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
 
54
                uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
 
55
  LiquidCrystal(uint8_t rs, uint8_t enable,
 
56
                uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
 
57
 
 
58
  void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
 
59
            uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
 
60
            uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
 
61
    
 
62
  void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
 
63
 
 
64
  void clear();
 
65
  void home();
 
66
 
 
67
  void noDisplay();
 
68
  void display();
 
69
  void noBlink();
 
70
  void blink();
 
71
  void noCursor();
 
72
  void cursor();
 
73
  void scrollDisplayLeft();
 
74
  void scrollDisplayRight();
 
75
  void leftToRight();
 
76
  void rightToLeft();
 
77
  void autoscroll();
 
78
  void noAutoscroll();
 
79
 
 
80
  void createChar(uint8_t, uint8_t[]);
 
81
  void setCursor(uint8_t, uint8_t); 
 
82
  virtual void write(uint8_t);
 
83
  void command(uint8_t);
 
84
private:
 
85
  void send(uint8_t, uint8_t);
 
86
  void write4bits(uint8_t);
 
87
  void write8bits(uint8_t);
 
88
  void pulseEnable();
 
89
 
 
90
  uint8_t _rs_pin; // LOW: command.  HIGH: character.
 
91
  uint8_t _rw_pin; // LOW: write to LCD.  HIGH: read from LCD.
 
92
  uint8_t _enable_pin; // activated by a HIGH pulse.
 
93
  uint8_t _data_pins[8];
 
94
 
 
95
  uint8_t _displayfunction;
 
96
  uint8_t _displaycontrol;
 
97
  uint8_t _displaymode;
 
98
 
 
99
  uint8_t _initialized;
 
100
 
 
101
  uint8_t _numlines,_currline;
 
102
};
 
103
 
 
104
#endif