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

Committer:
MikamiUitOpen
Date:
Fri Jun 05 06:43:51 2015 +0000
Revision:
0:f177013dc4fc
Child:
1:18cd1c4212c3
1

Who changed what in which revision?

UserRevisionLine numberNew 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