I2C 接続の LCD AQM1602XA-RN-GBW 用のライブラリ. Library for LCD 1602XA-RN-GBW connected using I2C interface.
Dependents: UIT2_MovingAv_Intr UIT2_VariableFIR UIT2_VowelSynthesizer UIT2_ALE_LeakyLMS ... more
AQM1602.hpp@0:f177013dc4fc, 2015-06-05 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Fri Jun 05 06:43:51 2015 +0000
- Revision:
- 0:f177013dc4fc
- Child:
- 1:18cd1c4212c3
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:f177013dc4fc | 1 | //------------------------------------------------------- |
MikamiUitOpen | 0:f177013dc4fc | 2 | // Class for LCD, AQM1602XA-RN-GBW (Header) |
MikamiUitOpen | 0:f177013dc4fc | 3 | // |
MikamiUitOpen | 0:f177013dc4fc | 4 | // |
MikamiUitOpen | 0:f177013dc4fc | 5 | // Default pin assignments |
MikamiUitOpen | 0:f177013dc4fc | 6 | // D14 SDA ---- to pin4 of LCD module |
MikamiUitOpen | 0:f177013dc4fc | 7 | // D15 SCL ---- to pin3 of LCD module |
MikamiUitOpen | 0:f177013dc4fc | 8 | // |
MikamiUitOpen | 0:f177013dc4fc | 9 | // Assignment of I2C ports |
MikamiUitOpen | 0:f177013dc4fc | 10 | // SDA SCL |
MikamiUitOpen | 0:f177013dc4fc | 11 | // I2C1 PB_7 or PB_9(D14) PB_6(D10) or PB_8(D15) |
MikamiUitOpen | 0:f177013dc4fc | 12 | // I2C2 PB_3(D3) PB_10(D6) |
MikamiUitOpen | 0:f177013dc4fc | 13 | // I2C3 PB_4(D5) or PC_9 PA_8(D7) |
MikamiUitOpen | 0:f177013dc4fc | 14 | // |
MikamiUitOpen | 0:f177013dc4fc | 15 | // 2014/05/30, Copyright (c) 2015 MIKAMI, Naoki |
MikamiUitOpen | 0:f177013dc4fc | 16 | //------------------------------------------------------- |
MikamiUitOpen | 0:f177013dc4fc | 17 | |
MikamiUitOpen | 0:f177013dc4fc | 18 | #ifndef AQM1602I2C_HPP |
MikamiUitOpen | 0:f177013dc4fc | 19 | #define AQM1602I2C_HPP |
MikamiUitOpen | 0:f177013dc4fc | 20 | |
MikamiUitOpen | 0:f177013dc4fc | 21 | #include "mbed.h" |
MikamiUitOpen | 0:f177013dc4fc | 22 | |
MikamiUitOpen | 0:f177013dc4fc | 23 | namespace Mikami |
MikamiUitOpen | 0:f177013dc4fc | 24 | { |
MikamiUitOpen | 0:f177013dc4fc | 25 | class Aqm1602 |
MikamiUitOpen | 0:f177013dc4fc | 26 | { |
MikamiUitOpen | 0:f177013dc4fc | 27 | public: |
MikamiUitOpen | 0:f177013dc4fc | 28 | // Constructor |
MikamiUitOpen | 0:f177013dc4fc | 29 | Aqm1602(PinName sda = D14, // SDA |
MikamiUitOpen | 0:f177013dc4fc | 30 | PinName scl = D15, // SCL |
MikamiUitOpen | 0:f177013dc4fc | 31 | uint32_t clock = 100000, // clock: 100 kHz |
MikamiUitOpen | 0:f177013dc4fc | 32 | bool cursor = false, // cursor: off |
MikamiUitOpen | 0:f177013dc4fc | 33 | bool blink = false); // blink: off |
MikamiUitOpen | 0:f177013dc4fc | 34 | |
MikamiUitOpen | 0:f177013dc4fc | 35 | // All clear |
MikamiUitOpen | 0:f177013dc4fc | 36 | void Clear(); |
MikamiUitOpen | 0:f177013dc4fc | 37 | // Send command |
MikamiUitOpen | 0:f177013dc4fc | 38 | void WriteCmd(uint8_t cmd) { LcdTx(0x00, cmd); } |
MikamiUitOpen | 0:f177013dc4fc | 39 | // Write character (Not 0x80 but 0x40) |
MikamiUitOpen | 0:f177013dc4fc | 40 | void WriteChar(char data) { LcdTx(0x40, data); } |
MikamiUitOpen | 0:f177013dc4fc | 41 | // Specify display position, x: 0 - 7, y: 0, 1 |
MikamiUitOpen | 0:f177013dc4fc | 42 | void SetXY(uint8_t x = 0, uint8_t y = 0) |
MikamiUitOpen | 0:f177013dc4fc | 43 | { WriteCmd(x + y*0x40 | 0x80);} |
MikamiUitOpen | 0:f177013dc4fc | 44 | // Write string |
MikamiUitOpen | 0:f177013dc4fc | 45 | void WriteString(const char str[]); |
MikamiUitOpen | 0:f177013dc4fc | 46 | // Write string from specified position |
MikamiUitOpen | 0:f177013dc4fc | 47 | void WriteStringXY(const char str[], uint8_t x, uint8_t); |
MikamiUitOpen | 0:f177013dc4fc | 48 | // Clear of specified line |
MikamiUitOpen | 0:f177013dc4fc | 49 | void ClearLine(uint8_t line); |
MikamiUitOpen | 0:f177013dc4fc | 50 | // { WriteStringXY(" ", 0, line); } |
MikamiUitOpen | 0:f177013dc4fc | 51 | void SetContrast(uint8_t c); |
MikamiUitOpen | 0:f177013dc4fc | 52 | |
MikamiUitOpen | 0:f177013dc4fc | 53 | private: |
MikamiUitOpen | 0:f177013dc4fc | 54 | // Slave address of AQM0802A |
MikamiUitOpen | 0:f177013dc4fc | 55 | // left-justified 7-bit address |
MikamiUitOpen | 0:f177013dc4fc | 56 | static const uint8_t LCD_ADDRESS_ = 0x7C; |
MikamiUitOpen | 0:f177013dc4fc | 57 | static const uint8_t N_CHR = 16; |
MikamiUitOpen | 0:f177013dc4fc | 58 | |
MikamiUitOpen | 0:f177013dc4fc | 59 | I2C i2c_; // Object of I2C |
MikamiUitOpen | 0:f177013dc4fc | 60 | |
MikamiUitOpen | 0:f177013dc4fc | 61 | void LcdTx(uint8_t cmdData, uint8_t data); |
MikamiUitOpen | 0:f177013dc4fc | 62 | |
MikamiUitOpen | 0:f177013dc4fc | 63 | // Forbid to use copy constructor |
MikamiUitOpen | 0:f177013dc4fc | 64 | Aqm1602(const Aqm1602&); |
MikamiUitOpen | 0:f177013dc4fc | 65 | // Forbid to use substitution operator |
MikamiUitOpen | 0:f177013dc4fc | 66 | Aqm1602& operator=(const Aqm1602&); |
MikamiUitOpen | 0:f177013dc4fc | 67 | }; |
MikamiUitOpen | 0:f177013dc4fc | 68 | } |
MikamiUitOpen | 0:f177013dc4fc | 69 | #endif // AQM0802I2C_HPP |