AQM1602 library
Dependents: mbed_AQM1602 CatPot_Main_T_2v00 CatPot_2v10_T_Main CatPot_2v20_T_Main ... more
See https://developer.mbed.org/users/yasuyuki/notebook/AQM1602/
AQM1602.cpp
- Committer:
- yasuyuki
- Date:
- 2015-03-06
- Revision:
- 0:4c3df2da124c
File content as of revision 0:4c3df2da124c:
//********************** // AQM1602.cpp for mbed // // AQM1602 lcd(P0_5,P0_4); // or // I2C i2c(P0_5,P0_4); // AQM1602 lcd(i2c); // // (C)Copyright 2015 All rights reserved by Y.Onodera // http://einstlab.web.fc2.com //********************** #include "mbed.h" #include "AQM1602.h" AQM1602::AQM1602 (PinName sda, PinName scl) : _i2c(sda, scl) { init(); } AQM1602::AQM1602 (I2C& p_i2c) : _i2c(p_i2c) { init(); } void AQM1602::put(unsigned char a, unsigned char b) { buf[0]=a; buf[1]=b; _i2c.write(AQM1602_ADDR, buf, 2); } void AQM1602::get(unsigned char a) { buf[0] = a; _i2c.write(AQM1602_ADDR, buf, 1, true); // no stop, repeated _i2c.read( AQM1602_ADDR, buf, 1); } void AQM1602::cls() { // Clear Display = 0x01 put(CMD, 0x01); // Wait 1.08ms wait_ms(2); } void AQM1602::locate(int x, int y) { // 16x2 put(CMD, 0x80 + y*0x40 + x); } void AQM1602::print(const char *a) { while(*a != '\0') { put(DAT, *a); a++; } } void AQM1602::init() { // Wait 40ms wait_ms(100); // Function set = 0x38 put(CMD, 0x38); // Wait 26.3us wait_ms(1); // Function set = 0x39 put(CMD, 0x39); // Wait 26.3us wait_ms(1); // Internal OSC frequency = 0x14 put(CMD, 0x14); // Wait 26.3us wait_ms(1); // Contrast set = 0x70 put(CMD, 0x70); // Wait 26.3us wait_ms(1); // Power/ICON/Contrast control = 0x56 put(CMD, 0x56); // Wait 26.3us wait_ms(1); // Follower control = 0x6C put(CMD, 0x6C); // Wait 200ms wait_ms(200); // Function set = 0x38 put(CMD, 0x38); // Wait 26.3us wait_ms(1); // Display ON/OFF control = 0x0C put(CMD, 0x0C); // Wait 26.3us wait_ms(1); // Clear Display = 0x01 put(CMD, 0x01); // Wait 1.08ms wait_ms(2); }