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
C51849NFJ.h@0:26fec5cf8ce1, 2015-04-28 (annotated)
- 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?
User | Revision | Line number | New 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 |