lcd

Dependencies:   Keypad mbed

Committer:
crizz777
Date:
Wed Oct 03 00:42:11 2018 +0000
Revision:
0:33c425e06a2c
lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
crizz777 0:33c425e06a2c 1 /* mbed TextLCD Library
crizz777 0:33c425e06a2c 2 * Copyright (c) 2007-2009 sford
crizz777 0:33c425e06a2c 3 * Released under the MIT License: http://mbed.org/license/mit
crizz777 0:33c425e06a2c 4 *
crizz777 0:33c425e06a2c 5 * TODO: Needs serious rework/neatening up!
crizz777 0:33c425e06a2c 6 */
crizz777 0:33c425e06a2c 7
crizz777 0:33c425e06a2c 8 /*
crizz777 0:33c425e06a2c 9 * 2010/05/14 modified for 20X4 LCD by ym1784
crizz777 0:33c425e06a2c 10 */
crizz777 0:33c425e06a2c 11
crizz777 0:33c425e06a2c 12 #ifndef MBED_TEXTLCD_20X4_H
crizz777 0:33c425e06a2c 13 #define MBED_TEXTLCD_20X4_H
crizz777 0:33c425e06a2c 14
crizz777 0:33c425e06a2c 15 #include "Stream.h"
crizz777 0:33c425e06a2c 16 #include "DigitalOut.h"
crizz777 0:33c425e06a2c 17 #include "BusOut.h"
crizz777 0:33c425e06a2c 18
crizz777 0:33c425e06a2c 19 namespace mbed {
crizz777 0:33c425e06a2c 20
crizz777 0:33c425e06a2c 21 /* Class: TextLCD_20X4
crizz777 0:33c425e06a2c 22 * A 20x4 Text LCD controller ... ym1784
crizz777 0:33c425e06a2c 23 *
crizz777 0:33c425e06a2c 24 * Allows you to print to a Text LCD screen, and locate/cls. Could be
crizz777 0:33c425e06a2c 25 * turned in to a more generic libray.
crizz777 0:33c425e06a2c 26 *
crizz777 0:33c425e06a2c 27 * If you are connecting multiple displays, you can connect them all in
crizz777 0:33c425e06a2c 28 * parallel except for the enable (e) pin, which must be unique for each
crizz777 0:33c425e06a2c 29 * display.
crizz777 0:33c425e06a2c 30 *
crizz777 0:33c425e06a2c 31 * Example:
crizz777 0:33c425e06a2c 32 * > #include "mbed.h"
crizz777 0:33c425e06a2c 33 * > #include "TextLCD_20X4.h"
crizz777 0:33c425e06a2c 34 * >
crizz777 0:33c425e06a2c 35 * > TextLCD_20X4 lcd(p21, p22, p23, p24, p25, p26); // rs, e, d0, d1, d2, d3
crizz777 0:33c425e06a2c 36 * >
crizz777 0:33c425e06a2c 37 * > int main() {
crizz777 0:33c425e06a2c 38 * > lcd.printf("Hello World!");
crizz777 0:33c425e06a2c 39 * > }
crizz777 0:33c425e06a2c 40 */
crizz777 0:33c425e06a2c 41 class TextLCD_20X4 : public Stream {
crizz777 0:33c425e06a2c 42
crizz777 0:33c425e06a2c 43 public:
crizz777 0:33c425e06a2c 44 /* Constructor: TextLCD_20X4
crizz777 0:33c425e06a2c 45 * Create a TextLCD_20X4 object, connected to the specified pins
crizz777 0:33c425e06a2c 46 *
crizz777 0:33c425e06a2c 47 * All signals must be connected to DigitalIn compatible pins.
crizz777 0:33c425e06a2c 48 *
crizz777 0:33c425e06a2c 49 * Variables:
crizz777 0:33c425e06a2c 50 * rs - Used to specify data or command
crizz777 0:33c425e06a2c 51 * e - enable
crizz777 0:33c425e06a2c 52 * d0..d3 - The data lines
crizz777 0:33c425e06a2c 53 */
crizz777 0:33c425e06a2c 54 TextLCD_20X4(PinName rs, PinName e, PinName d0, PinName d1,
crizz777 0:33c425e06a2c 55 PinName d2, PinName d3, int columns = 20, int rows = 4);
crizz777 0:33c425e06a2c 56
crizz777 0:33c425e06a2c 57 #if 0 // Inhereted from Stream, for documentation only
crizz777 0:33c425e06a2c 58 /* Function: putc
crizz777 0:33c425e06a2c 59 * Write a character
crizz777 0:33c425e06a2c 60 *
crizz777 0:33c425e06a2c 61 * Variables:
crizz777 0:33c425e06a2c 62 * c - The character to write to the serial port
crizz777 0:33c425e06a2c 63 */
crizz777 0:33c425e06a2c 64 int putc(int c);
crizz777 0:33c425e06a2c 65
crizz777 0:33c425e06a2c 66 /* Function: printf
crizz777 0:33c425e06a2c 67 * Write a formated string
crizz777 0:33c425e06a2c 68 *
crizz777 0:33c425e06a2c 69 * Variables:
crizz777 0:33c425e06a2c 70 * format - A printf-style format string, followed by the
crizz777 0:33c425e06a2c 71 * variables to use in formating the string.
crizz777 0:33c425e06a2c 72 */
crizz777 0:33c425e06a2c 73 int printf(const char* format, ...);
crizz777 0:33c425e06a2c 74 #endif
crizz777 0:33c425e06a2c 75
crizz777 0:33c425e06a2c 76 /* Function: locate
crizz777 0:33c425e06a2c 77 * Locate to a certian position
crizz777 0:33c425e06a2c 78 *
crizz777 0:33c425e06a2c 79 * Variables:
crizz777 0:33c425e06a2c 80 * column - the column to locate to, from 0..19
crizz777 0:33c425e06a2c 81 * row - the row to locate to, from 0..3
crizz777 0:33c425e06a2c 82 */
crizz777 0:33c425e06a2c 83 virtual void locate(int column, int row);
crizz777 0:33c425e06a2c 84
crizz777 0:33c425e06a2c 85 /* Function: cls
crizz777 0:33c425e06a2c 86 * Clear the screen
crizz777 0:33c425e06a2c 87 */
crizz777 0:33c425e06a2c 88 virtual void cls();
crizz777 0:33c425e06a2c 89
crizz777 0:33c425e06a2c 90 virtual void reset();
crizz777 0:33c425e06a2c 91
crizz777 0:33c425e06a2c 92 //protected:
crizz777 0:33c425e06a2c 93
crizz777 0:33c425e06a2c 94 void clock();
crizz777 0:33c425e06a2c 95 void writeData(int data);
crizz777 0:33c425e06a2c 96 void writeCommand(int command);
crizz777 0:33c425e06a2c 97 void writeByte(int value);
crizz777 0:33c425e06a2c 98 void writeNibble(int value);
crizz777 0:33c425e06a2c 99 virtual int _putc(int c);
crizz777 0:33c425e06a2c 100 virtual int _getc();
crizz777 0:33c425e06a2c 101 virtual void newline();
crizz777 0:33c425e06a2c 102
crizz777 0:33c425e06a2c 103 int _row;
crizz777 0:33c425e06a2c 104 int _column;
crizz777 0:33c425e06a2c 105 DigitalOut _rs, _e;
crizz777 0:33c425e06a2c 106 BusOut _d;
crizz777 0:33c425e06a2c 107 int _columns;
crizz777 0:33c425e06a2c 108 int _rows;
crizz777 0:33c425e06a2c 109 int address;
crizz777 0:33c425e06a2c 110 };
crizz777 0:33c425e06a2c 111
crizz777 0:33c425e06a2c 112 }
crizz777 0:33c425e06a2c 113
crizz777 0:33c425e06a2c 114 #endif