C-51849NFJ-SLW-ADN by KYOCERA : LCD Module: 40 characters × 4 lines, F-STN / Black&White-mode

Dependents:   C-51849_LCD_40_x_4_test

Committer:
kenjiArai
Date:
Tue Apr 28 10:33:36 2015 +0000
Revision:
0:26fec5cf8ce1
1st working sample LCD Driver.  C-51849NFJ-SLW-ADN by KYOCERA : LCD Module: 40 characters ? 4 lines, F-STN / Black&White-mode.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:26fec5cf8ce1 1 /*
kenjiArai 0:26fec5cf8ce1 2 * mbed library program
kenjiArai 0:26fec5cf8ce1 3 * LCD Module: 40 characters × 4 lines, F-STN / Black&White-mode
kenjiArai 0:26fec5cf8ce1 4 * C-51849NFJ-SLW-ADN by KYOCERA Industrial Ceramics Corporation - Display Division.
kenjiArai 0:26fec5cf8ce1 5 *
kenjiArai 0:26fec5cf8ce1 6 * Copyright (c) 2015 Kenji Arai / JH1PJL
kenjiArai 0:26fec5cf8ce1 7 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 0:26fec5cf8ce1 8 * http://mbed.org/users/kenjiArai/
kenjiArai 0:26fec5cf8ce1 9 * Created: April 27th, 2015
kenjiArai 0:26fec5cf8ce1 10 * Revised: April 28th, 2015
kenjiArai 0:26fec5cf8ce1 11 *
kenjiArai 0:26fec5cf8ce1 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 0:26fec5cf8ce1 13 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 0:26fec5cf8ce1 14 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 0:26fec5cf8ce1 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 0:26fec5cf8ce1 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 0:26fec5cf8ce1 17 */
kenjiArai 0:26fec5cf8ce1 18 /*
kenjiArai 0:26fec5cf8ce1 19 *---------------- REFERENCE ----------------------------------------------------------------------
kenjiArai 0:26fec5cf8ce1 20 * http://www.kyocera-display.com/products/partdetail.asp?PartNumber=C-51849NFJ-SLW-ADN
kenjiArai 0:26fec5cf8ce1 21 * http://akizukidenshi.com/catalog/g/gP-05664/
kenjiArai 0:26fec5cf8ce1 22 */
kenjiArai 0:26fec5cf8ce1 23
kenjiArai 0:26fec5cf8ce1 24 #ifndef C51849NFJ_H
kenjiArai 0:26fec5cf8ce1 25 #define C51849NFJ_H
kenjiArai 0:26fec5cf8ce1 26
kenjiArai 0:26fec5cf8ce1 27 #include "mbed.h"
kenjiArai 0:26fec5cf8ce1 28
kenjiArai 0:26fec5cf8ce1 29 /** A Text LCD (40x4) interface for C-51849NFJ-SLW-ADN by KYOCERA (OPTREX)
kenjiArai 0:26fec5cf8ce1 30 *
kenjiArai 0:26fec5cf8ce1 31 * @code
kenjiArai 0:26fec5cf8ce1 32 * #include "mbed.h"
kenjiArai 0:26fec5cf8ce1 33 * #include "C51849NFJ.h"
kenjiArai 0:26fec5cf8ce1 34 *
kenjiArai 0:26fec5cf8ce1 35 * C51849NFJ lcd(D7, D8, D9, D10, D11, D12, D13); // rs, e1, e2, d4-d7
kenjiArai 0:26fec5cf8ce1 36 *
kenjiArai 0:26fec5cf8ce1 37 * int main() {
kenjiArai 0:26fec5cf8ce1 38 * lcd.printf("Hello World!\n");
kenjiArai 0:26fec5cf8ce1 39 * }
kenjiArai 0:26fec5cf8ce1 40 * @endcode
kenjiArai 0:26fec5cf8ce1 41 */
kenjiArai 0:26fec5cf8ce1 42
kenjiArai 0:26fec5cf8ce1 43 class C51849NFJ : public Stream {
kenjiArai 0:26fec5cf8ce1 44 public:
kenjiArai 0:26fec5cf8ce1 45
kenjiArai 0:26fec5cf8ce1 46 /** Create a TextLCD interface
kenjiArai 0:26fec5cf8ce1 47 * @param rs Instruction/data control line
kenjiArai 0:26fec5cf8ce1 48 * @param e1,e2 Enable line (clock) for two chips NT3881 controler
kenjiArai 0:26fec5cf8ce1 49 * @param d4-d7 Data lines for using as a 4-bit interface
kenjiArai 0:26fec5cf8ce1 50 */
kenjiArai 0:26fec5cf8ce1 51 C51849NFJ(PinName rs, PinName e1, PinName e2, PinName d4, PinName d5, PinName d6, PinName d7);
kenjiArai 0:26fec5cf8ce1 52
kenjiArai 0:26fec5cf8ce1 53 #if DOXYGEN_ONLY
kenjiArai 0:26fec5cf8ce1 54 /** Write a character to the LCD
kenjiArai 0:26fec5cf8ce1 55 * @param c The character to write to the display
kenjiArai 0:26fec5cf8ce1 56 */
kenjiArai 0:26fec5cf8ce1 57 int putc(int c);
kenjiArai 0:26fec5cf8ce1 58
kenjiArai 0:26fec5cf8ce1 59 /** Write a formated string to the LCD
kenjiArai 0:26fec5cf8ce1 60 * @param format A printf-style format string
kenjiArai 0:26fec5cf8ce1 61 */
kenjiArai 0:26fec5cf8ce1 62 int printf(const char* format, ...);
kenjiArai 0:26fec5cf8ce1 63 #endif
kenjiArai 0:26fec5cf8ce1 64
kenjiArai 0:26fec5cf8ce1 65 /** Locate to a screen column and row
kenjiArai 0:26fec5cf8ce1 66 * @param column horizontal position from the left, indexed from 0
kenjiArai 0:26fec5cf8ce1 67 * @param row vertical position from the top, indexed from 0
kenjiArai 0:26fec5cf8ce1 68 */
kenjiArai 0:26fec5cf8ce1 69 void locate(int column, int row);
kenjiArai 0:26fec5cf8ce1 70
kenjiArai 0:26fec5cf8ce1 71 /** Clear the screen and locate to 0,0 */
kenjiArai 0:26fec5cf8ce1 72 void cls();
kenjiArai 0:26fec5cf8ce1 73
kenjiArai 0:26fec5cf8ce1 74 protected:
kenjiArai 0:26fec5cf8ce1 75 virtual int _putc(int value);
kenjiArai 0:26fec5cf8ce1 76 virtual int _getc();
kenjiArai 0:26fec5cf8ce1 77 int16_t address(int column, int row);
kenjiArai 0:26fec5cf8ce1 78 void character(int column, int row, int c);
kenjiArai 0:26fec5cf8ce1 79 void writeCMD(int command);
kenjiArai 0:26fec5cf8ce1 80
kenjiArai 0:26fec5cf8ce1 81 DigitalOut _rs, _e1, _e2;
kenjiArai 0:26fec5cf8ce1 82 BusOut _d;
kenjiArai 0:26fec5cf8ce1 83
kenjiArai 0:26fec5cf8ce1 84 int _column;
kenjiArai 0:26fec5cf8ce1 85 int _row;
kenjiArai 0:26fec5cf8ce1 86 };
kenjiArai 0:26fec5cf8ce1 87
kenjiArai 0:26fec5cf8ce1 88 #endif // C51849NFJ_H