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.
USB_Host/max_LCD.h@0:b1ce54272580, 2020-01-18 (annotated)
- 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?
User | Revision | Line number | New 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 |