nlgplay for mbed
Dependencies: SDFileSystemEx mbed
lcd.cpp
- Committer:
- bkc_mbed
- Date:
- 2014-05-17
- Revision:
- 0:2053640461b5
- Child:
- 1:ec416e6d5739
File content as of revision 0:2053640461b5:
#include "mbed.h" I2C i2c(dp5, dp27); // sda, scl const int AQM0802_addr = 0x7C; void lcd_cmd(char x) { char data[2]; data[0] = 0x00; // CO = 0,RS = 0 data[1] = x; i2c.write(AQM0802_addr, data, 2); } void lcd_contdata(char x) { char data[2]; data[0] = 0xC0; //0b11000000 CO = 1, RS = 1 data[1] = x; i2c.write(AQM0802_addr, data, 2); } void lcd_lastdata(char x) { char data[2]; data[0] = 0x40; //0b11000000 CO = 0, RS = 1 data[1] = x; i2c.write(AQM0802_addr, data, 2); } void lcd_printStr(const char *s) { while(*s) { if(*(s + 1)) { lcd_contdata(*s); } else { lcd_lastdata(*s); } s++; } } void lcd_setContrast(unsigned char c) { lcd_cmd(0x39); lcd_cmd(0x70 | (c & 0x0f)); // contrast Low lcd_cmd(0x5C | ((c >> 4) & 0x03)); // contast High/icon/power lcd_cmd(0x38); } void lcd_printHex(unsigned char num) { lcd_contdata(num); } void lcd_init() { int cont = 0; wait(0.04); // LCD initialize lcd_cmd(0x38); // function set lcd_cmd(0x39); // function set lcd_cmd(0x04); // EntryModeSet lcd_cmd(0x14); // interval osc lcd_cmd(0x70 | (cont & 0xF)); // contrast Low lcd_cmd(0x5C | ((cont >> 4) & 0x3)); // contast High/icon/power lcd_cmd(0x6C); // follower control wait(0.2); lcd_cmd(0x38); // function set lcd_cmd(0x0C); // Display On lcd_cmd(0x01); // Clear Display wait(0.2); // need additional wait to Clear Display lcd_setContrast(36); } void lcd_setCursor(unsigned char x,unsigned char y) { lcd_cmd(0x80 | (y * 0x40 + x)); } void lcd_cls(void) { lcd_setCursor(0, 0); lcd_printStr(" "); lcd_setCursor(0, 1); lcd_printStr(" "); }