一関 Aチーム / ArduinoUsbHostShield
Committer:
kotakku
Date:
Sat Jan 18 15:06:35 2020 +0000
Revision:
0:b1ce54272580
1.0.0 first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kotakku 0:b1ce54272580 1 /* Copyright (C) 2011 Circuits At Home, LTD. All rights reserved.
kotakku 0:b1ce54272580 2
kotakku 0:b1ce54272580 3 This software may be distributed and modified under the terms of the GNU
kotakku 0:b1ce54272580 4 General Public License version 2 (GPL2) as published by the Free Software
kotakku 0:b1ce54272580 5 Foundation and appearing in the file GPL2.TXT included in the packaging of
kotakku 0:b1ce54272580 6 this file. Please note that GPL2 Section 2[b] requires that all works based
kotakku 0:b1ce54272580 7 on this software must also be made publicly available under the terms of
kotakku 0:b1ce54272580 8 the GPL2 ("Copyleft").
kotakku 0:b1ce54272580 9
kotakku 0:b1ce54272580 10 Contact information
kotakku 0:b1ce54272580 11 -------------------
kotakku 0:b1ce54272580 12
kotakku 0:b1ce54272580 13 Circuits At Home, LTD
kotakku 0:b1ce54272580 14 Web : http://www.circuitsathome.com
kotakku 0:b1ce54272580 15 e-mail : support@circuitsathome.com
kotakku 0:b1ce54272580 16 */
kotakku 0:b1ce54272580 17 //HD44780 compatible LCD display via MAX3421E GPOUT support header
kotakku 0:b1ce54272580 18 //pinout: D[4-7] -> GPOUT[4-7], RS-> GPOUT[2], E ->GPOUT[3]
kotakku 0:b1ce54272580 19 //
kotakku 0:b1ce54272580 20
kotakku 0:b1ce54272580 21 #ifndef _Max_LCD_h_
kotakku 0:b1ce54272580 22 #define _Max_LCD_h_
kotakku 0:b1ce54272580 23
kotakku 0:b1ce54272580 24 #include "Usb.h"
kotakku 0:b1ce54272580 25 #include "Print.h"
kotakku 0:b1ce54272580 26
kotakku 0:b1ce54272580 27 // commands
kotakku 0:b1ce54272580 28 #define LCD_CLEARDISPLAY 0x01
kotakku 0:b1ce54272580 29 #define LCD_RETURNHOME 0x02
kotakku 0:b1ce54272580 30 #define LCD_ENTRYMODESET 0x04
kotakku 0:b1ce54272580 31 #define LCD_DISPLAYCONTROL 0x08
kotakku 0:b1ce54272580 32 #define LCD_CURSORSHIFT 0x10
kotakku 0:b1ce54272580 33 #define LCD_FUNCTIONSET 0x20
kotakku 0:b1ce54272580 34 #define LCD_SETCGRAMADDR 0x40
kotakku 0:b1ce54272580 35 #define LCD_SETDDRAMADDR 0x80
kotakku 0:b1ce54272580 36
kotakku 0:b1ce54272580 37 // flags for display entry mode
kotakku 0:b1ce54272580 38 #define LCD_ENTRYRIGHT 0x00
kotakku 0:b1ce54272580 39 #define LCD_ENTRYLEFT 0x02
kotakku 0:b1ce54272580 40 #define LCD_ENTRYSHIFTINCREMENT 0x01
kotakku 0:b1ce54272580 41 #define LCD_ENTRYSHIFTDECREMENT 0x00
kotakku 0:b1ce54272580 42
kotakku 0:b1ce54272580 43 // flags for display on/off control
kotakku 0:b1ce54272580 44 #define LCD_DISPLAYON 0x04
kotakku 0:b1ce54272580 45 #define LCD_DISPLAYOFF 0x00
kotakku 0:b1ce54272580 46 #define LCD_CURSORON 0x02
kotakku 0:b1ce54272580 47 #define LCD_CURSOROFF 0x00
kotakku 0:b1ce54272580 48 #define LCD_BLINKON 0x01
kotakku 0:b1ce54272580 49 #define LCD_BLINKOFF 0x00
kotakku 0:b1ce54272580 50
kotakku 0:b1ce54272580 51 // flags for display/cursor shift
kotakku 0:b1ce54272580 52 #define LCD_DISPLAYMOVE 0x08
kotakku 0:b1ce54272580 53 #define LCD_CURSORMOVE 0x00
kotakku 0:b1ce54272580 54 #define LCD_MOVERIGHT 0x04
kotakku 0:b1ce54272580 55 #define LCD_MOVELEFT 0x00
kotakku 0:b1ce54272580 56
kotakku 0:b1ce54272580 57 // flags for function set
kotakku 0:b1ce54272580 58 #define LCD_8BITMODE 0x10
kotakku 0:b1ce54272580 59 #define LCD_4BITMODE 0x00
kotakku 0:b1ce54272580 60 #define LCD_2LINE 0x08
kotakku 0:b1ce54272580 61 #define LCD_1LINE 0x00
kotakku 0:b1ce54272580 62 #define LCD_5x10DOTS 0x04
kotakku 0:b1ce54272580 63 #define LCD_5x8DOTS 0x00
kotakku 0:b1ce54272580 64
kotakku 0:b1ce54272580 65 class Max_LCD : public Print {
kotakku 0:b1ce54272580 66 USB *pUsb;
kotakku 0:b1ce54272580 67
kotakku 0:b1ce54272580 68 public:
kotakku 0:b1ce54272580 69 Max_LCD(USB *pusb);
kotakku 0:b1ce54272580 70 void init();
kotakku 0:b1ce54272580 71 void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS);
kotakku 0:b1ce54272580 72 void clear();
kotakku 0:b1ce54272580 73 void home();
kotakku 0:b1ce54272580 74 void noDisplay();
kotakku 0:b1ce54272580 75 void display();
kotakku 0:b1ce54272580 76 void noBlink();
kotakku 0:b1ce54272580 77 void blink();
kotakku 0:b1ce54272580 78 void noCursor();
kotakku 0:b1ce54272580 79 void cursor();
kotakku 0:b1ce54272580 80 void scrollDisplayLeft();
kotakku 0:b1ce54272580 81 void scrollDisplayRight();
kotakku 0:b1ce54272580 82 void leftToRight();
kotakku 0:b1ce54272580 83 void rightToLeft();
kotakku 0:b1ce54272580 84 void autoscroll();
kotakku 0:b1ce54272580 85 void noAutoscroll();
kotakku 0:b1ce54272580 86 void createChar(uint8_t, uint8_t[]);
kotakku 0:b1ce54272580 87 void setCursor(uint8_t, uint8_t);
kotakku 0:b1ce54272580 88 void command(uint8_t);
kotakku 0:b1ce54272580 89
kotakku 0:b1ce54272580 90 #if defined(ARDUINO) && ARDUINO >=100
kotakku 0:b1ce54272580 91 size_t write(uint8_t);
kotakku 0:b1ce54272580 92 using Print::write;
kotakku 0:b1ce54272580 93 #else
kotakku 0:b1ce54272580 94 void write(uint8_t);
kotakku 0:b1ce54272580 95 #endif
kotakku 0:b1ce54272580 96
kotakku 0:b1ce54272580 97 private:
kotakku 0:b1ce54272580 98 void sendbyte(uint8_t val);
kotakku 0:b1ce54272580 99 uint8_t _displayfunction; //tokill
kotakku 0:b1ce54272580 100 uint8_t _displaycontrol;
kotakku 0:b1ce54272580 101 uint8_t _displaymode;
kotakku 0:b1ce54272580 102 uint8_t _initialized;
kotakku 0:b1ce54272580 103 uint8_t _numlines, _currline;
kotakku 0:b1ce54272580 104 };
kotakku 0:b1ce54272580 105
kotakku 0:b1ce54272580 106 #endif
kotakku 0:b1ce54272580 107