Sergio Mejía Carmona / TextLCD
Committer:
sergiomejia
Date:
Wed Jan 15 00:00:30 2020 +0000
Revision:
9:2dc192cd376a
Programa para probar el LCD

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sergiomejia 9:2dc192cd376a 1 /* mbed TextLCD Library, for LCDs based on HD44780 controllers
sergiomejia 9:2dc192cd376a 2 * Copyright (c) 2014, WH
sergiomejia 9:2dc192cd376a 3 * 2014, v01: WH, Extracted from TextLCD.h as of v14
sergiomejia 9:2dc192cd376a 4 * 2014, v02: WH, Added AC780 support, added I2C expander modules, fixed setBacklight() for inverted logic modules. Fixed bug in LCD_SPI_N define
sergiomejia 9:2dc192cd376a 5 * 2014, v03: WH, Added LCD_SPI_N_3_8 define for ST7070
sergiomejia 9:2dc192cd376a 6 * 2015, v04: WH, Added support for alternative fonttables (eg PCF21XX)
sergiomejia 9:2dc192cd376a 7 * 2015, v05: WH, Clean up low-level _writeCommand() and _writeData(), Added support for alt fonttables (eg PCF21XX), Added ST7066_ACM for ACM1602 module, fixed contrast for ST7032
sergiomejia 9:2dc192cd376a 8 *
sergiomejia 9:2dc192cd376a 9 * Permission is hereby granted, free of charge, to any person obtaining a copy
sergiomejia 9:2dc192cd376a 10 * of this software and associated documentation files (the "Software"), to deal
sergiomejia 9:2dc192cd376a 11 * in the Software without restriction, including without limitation the rights
sergiomejia 9:2dc192cd376a 12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
sergiomejia 9:2dc192cd376a 13 * copies of the Software, and to permit persons to whom the Software is
sergiomejia 9:2dc192cd376a 14 * furnished to do so, subject to the following conditions:
sergiomejia 9:2dc192cd376a 15 *
sergiomejia 9:2dc192cd376a 16 * The above copyright notice and this permission notice shall be included in
sergiomejia 9:2dc192cd376a 17 * all copies or substantial portions of the Software.
sergiomejia 9:2dc192cd376a 18 *
sergiomejia 9:2dc192cd376a 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
sergiomejia 9:2dc192cd376a 20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
sergiomejia 9:2dc192cd376a 21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
sergiomejia 9:2dc192cd376a 22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
sergiomejia 9:2dc192cd376a 23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
sergiomejia 9:2dc192cd376a 24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
sergiomejia 9:2dc192cd376a 25 * THE SOFTWARE.
sergiomejia 9:2dc192cd376a 26 */
sergiomejia 9:2dc192cd376a 27 #ifndef MBED_TEXTLCDCONFIG_H
sergiomejia 9:2dc192cd376a 28 #define MBED_TEXTLCDCONFIG_H
sergiomejia 9:2dc192cd376a 29
sergiomejia 9:2dc192cd376a 30 //Select hardware interface options to reduce memory footprint (multiple options allowed)
sergiomejia 9:2dc192cd376a 31 #define LCD_I2C 1 /* I2C Expander PCF8574/MCP23008 */
sergiomejia 9:2dc192cd376a 32 #define LCD_SPI 1 /* SPI Expander SN74595 */
sergiomejia 9:2dc192cd376a 33 #define LCD_I2C_N 1 /* Native I2C bus */
sergiomejia 9:2dc192cd376a 34 #define LCD_SPI_N 1 /* Native SPI bus */
sergiomejia 9:2dc192cd376a 35 #define LCD_SPI_N_3_8 1 /* Native SPI bus */
sergiomejia 9:2dc192cd376a 36 #define LCD_SPI_N_3_9 1 /* Native SPI bus */
sergiomejia 9:2dc192cd376a 37 #define LCD_SPI_N_3_10 1 /* Native SPI bus */
sergiomejia 9:2dc192cd376a 38 #define LCD_SPI_N_3_16 1 /* Native SPI bus */
sergiomejia 9:2dc192cd376a 39 #define LCD_SPI_N_3_24 1 /* Native SPI bus */
sergiomejia 9:2dc192cd376a 40
sergiomejia 9:2dc192cd376a 41 //Select options to reduce memory footprint (multiple options allowed)
sergiomejia 9:2dc192cd376a 42 #define LCD_UDC 1 /* Enable predefined UDC example*/
sergiomejia 9:2dc192cd376a 43 #define LCD_PRINTF 1 /* Enable Stream implementation */
sergiomejia 9:2dc192cd376a 44
sergiomejia 9:2dc192cd376a 45 //Select option to activate default fonttable or alternatively use conversion for specific controller versions (eg PCF2119C)
sergiomejia 9:2dc192cd376a 46 #define LCD_DEFAULT_FONT 1
sergiomejia 9:2dc192cd376a 47
sergiomejia 9:2dc192cd376a 48 //Pin Defines for I2C PCF8574/PCF8574A or MCP23008 and SPI 74595 bus expander interfaces
sergiomejia 9:2dc192cd376a 49 //Different commercially available LCD portexpanders use different wiring conventions.
sergiomejia 9:2dc192cd376a 50 //LCD and serial portexpanders should be wired according to the tables below.
sergiomejia 9:2dc192cd376a 51 //
sergiomejia 9:2dc192cd376a 52 //Select Serial Port Expander Hardware module (one option only)
sergiomejia 9:2dc192cd376a 53 #define DEFAULT 0
sergiomejia 9:2dc192cd376a 54 #define ADAFRUIT 0
sergiomejia 9:2dc192cd376a 55 #define DFROBOT 0
sergiomejia 9:2dc192cd376a 56 #define YWROBOT 0
sergiomejia 9:2dc192cd376a 57 #define GYLCD 0
sergiomejia 9:2dc192cd376a 58 #define SYDZ 0
sergiomejia 9:2dc192cd376a 59 #define ARDUINO 1
sergiomejia 9:2dc192cd376a 60
sergiomejia 9:2dc192cd376a 61 #if (ARDUINO==1)
sergiomejia 9:2dc192cd376a 62 //Definitions for Arduino I2C PCF8574 mapping port expander pins and LCD controller
sergiomejia 9:2dc192cd376a 63 //This hardware supports the I2C bus expander (PCF8574/PCF8574A or MCP23008) and SPI bus expander (74595) interfaces
sergiomejia 9:2dc192cd376a 64 //See https://mbed.org/cookbook/Text-LCD-Enhanced
sergiomejia 9:2dc192cd376a 65 //
sergiomejia 9:2dc192cd376a 66 //Note: LCD RW pin must be connected to GND
sergiomejia 9:2dc192cd376a 67 // E2 is used for LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 68 // BL may be used to control backlight
sergiomejia 9:2dc192cd376a 69
sergiomejia 9:2dc192cd376a 70 #define D_LCD_PIN_RS 0
sergiomejia 9:2dc192cd376a 71 #define D_LCD_PIN_E2 1
sergiomejia 9:2dc192cd376a 72 #define D_LCD_PIN_E 2
sergiomejia 9:2dc192cd376a 73 #define D_LCD_PIN_BL 3
sergiomejia 9:2dc192cd376a 74 #define D_LCD_PIN_D4 4
sergiomejia 9:2dc192cd376a 75 #define D_LCD_PIN_D5 5
sergiomejia 9:2dc192cd376a 76 #define D_LCD_PIN_D6 6
sergiomejia 9:2dc192cd376a 77 #define D_LCD_PIN_D7 7
sergiomejia 9:2dc192cd376a 78
sergiomejia 9:2dc192cd376a 79 #define D_LCD_PIN_RW D_LCD_PIN_E2
sergiomejia 9:2dc192cd376a 80
sergiomejia 9:2dc192cd376a 81 //Select I2C Portexpander type (one option only)
sergiomejia 9:2dc192cd376a 82 #define PCF8574 1
sergiomejia 9:2dc192cd376a 83 #define MCP23008 0
sergiomejia 9:2dc192cd376a 84
sergiomejia 9:2dc192cd376a 85 //Inverted Backlight control
sergiomejia 9:2dc192cd376a 86 #define BACKLIGHT_INV 0
sergiomejia 9:2dc192cd376a 87 #endif
sergiomejia 9:2dc192cd376a 88
sergiomejia 9:2dc192cd376a 89
sergiomejia 9:2dc192cd376a 90 #if (DEFAULT==1)
sergiomejia 9:2dc192cd376a 91 //Definitions for default (WH) mapping between serial port expander pins and LCD controller
sergiomejia 9:2dc192cd376a 92 //This hardware supports the I2C bus expander (PCF8574/PCF8574A or MCP23008) and SPI bus expander (74595) interfaces
sergiomejia 9:2dc192cd376a 93 //See https://mbed.org/cookbook/Text-LCD-Enhanced
sergiomejia 9:2dc192cd376a 94 //
sergiomejia 9:2dc192cd376a 95 //Note: LCD RW pin must be connected to GND
sergiomejia 9:2dc192cd376a 96 // E2 is used for LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 97 // BL may be used to control backlight
sergiomejia 9:2dc192cd376a 98 #define D_LCD_PIN_D4 0
sergiomejia 9:2dc192cd376a 99 #define D_LCD_PIN_D5 1
sergiomejia 9:2dc192cd376a 100 #define D_LCD_PIN_D6 2
sergiomejia 9:2dc192cd376a 101 #define D_LCD_PIN_D7 3
sergiomejia 9:2dc192cd376a 102 #define D_LCD_PIN_RS 4
sergiomejia 9:2dc192cd376a 103 #define D_LCD_PIN_E 5
sergiomejia 9:2dc192cd376a 104 #define D_LCD_PIN_E2 6
sergiomejia 9:2dc192cd376a 105 #define D_LCD_PIN_BL 7
sergiomejia 9:2dc192cd376a 106
sergiomejia 9:2dc192cd376a 107 #define D_LCD_PIN_RW D_LCD_PIN_E2
sergiomejia 9:2dc192cd376a 108
sergiomejia 9:2dc192cd376a 109 //Select I2C Portexpander type (one option only)
sergiomejia 9:2dc192cd376a 110 #define PCF8574 1
sergiomejia 9:2dc192cd376a 111 #define MCP23008 0
sergiomejia 9:2dc192cd376a 112
sergiomejia 9:2dc192cd376a 113 //Inverted Backlight control
sergiomejia 9:2dc192cd376a 114 #define BACKLIGHT_INV 0
sergiomejia 9:2dc192cd376a 115 #endif
sergiomejia 9:2dc192cd376a 116
sergiomejia 9:2dc192cd376a 117 #if (ADAFRUIT==1)
sergiomejia 9:2dc192cd376a 118 //Definitions for Adafruit i2cspilcdbackpack mapping between serial port expander pins and LCD controller
sergiomejia 9:2dc192cd376a 119 //This hardware supports both an I2C expander (MCP23008) and an SPI expander (74595) selectable by a jumper.
sergiomejia 9:2dc192cd376a 120 //Slaveaddress may be set by solderbridges (default 0x40). SDA/SCL has pullup Resistors onboard.
sergiomejia 9:2dc192cd376a 121 //See http://www.ladyada.net/products/i2cspilcdbackpack
sergiomejia 9:2dc192cd376a 122 //
sergiomejia 9:2dc192cd376a 123 //Note: LCD RW pin must be kept LOW
sergiomejia 9:2dc192cd376a 124 // E2 is not available on this hardware and so it does not support LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 125 // BL is used to control backlight
sergiomejia 9:2dc192cd376a 126 #define D_LCD_PIN_0 0
sergiomejia 9:2dc192cd376a 127 #define D_LCD_PIN_RS 1
sergiomejia 9:2dc192cd376a 128 #define D_LCD_PIN_E 2
sergiomejia 9:2dc192cd376a 129 #define D_LCD_PIN_D4 3
sergiomejia 9:2dc192cd376a 130 #define D_LCD_PIN_D5 4
sergiomejia 9:2dc192cd376a 131 #define D_LCD_PIN_D6 5
sergiomejia 9:2dc192cd376a 132 #define D_LCD_PIN_D7 6
sergiomejia 9:2dc192cd376a 133 #define D_LCD_PIN_BL 7
sergiomejia 9:2dc192cd376a 134
sergiomejia 9:2dc192cd376a 135 #define D_LCD_PIN_E2 D_LCD_PIN_0
sergiomejia 9:2dc192cd376a 136
sergiomejia 9:2dc192cd376a 137 //Force I2C portexpander type
sergiomejia 9:2dc192cd376a 138 #define PCF8574 0
sergiomejia 9:2dc192cd376a 139 #define MCP23008 1
sergiomejia 9:2dc192cd376a 140
sergiomejia 9:2dc192cd376a 141 //Inverted Backlight control
sergiomejia 9:2dc192cd376a 142 #define BACKLIGHT_INV 0
sergiomejia 9:2dc192cd376a 143 #endif
sergiomejia 9:2dc192cd376a 144
sergiomejia 9:2dc192cd376a 145 #if (DFROBOT==1)
sergiomejia 9:2dc192cd376a 146 //Definitions for DFROBOT LCD2004 Module mapping between serial port expander pins and LCD controller
sergiomejia 9:2dc192cd376a 147 //This hardware uses PCF8574 and is different from earlier/different Arduino I2C LCD displays
sergiomejia 9:2dc192cd376a 148 //Slaveaddress hardwired to 0x4E. SDA/SCL has pullup Resistors onboard.
sergiomejia 9:2dc192cd376a 149 //See http://arduino-info.wikispaces.com/LCD-Blue-I2C
sergiomejia 9:2dc192cd376a 150 //
sergiomejia 9:2dc192cd376a 151 //Definitions for DFROBOT V1.1
sergiomejia 9:2dc192cd376a 152 //This hardware uses PCF8574. Slaveaddress may be set by jumpers (default 0x40).
sergiomejia 9:2dc192cd376a 153 //SDA/SCL has pullup Resistors onboard and features a voltage level converter 3V3 <-> 5V.
sergiomejia 9:2dc192cd376a 154 //See http://www.dfrobot.com/index.php?route=product/product&product_id=135
sergiomejia 9:2dc192cd376a 155 //
sergiomejia 9:2dc192cd376a 156 //
sergiomejia 9:2dc192cd376a 157 //Note: LCD RW pin must be kept LOW
sergiomejia 9:2dc192cd376a 158 // E2 is not available on default Arduino hardware and so it does not support LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 159 // BL is used to control backlight
sergiomejia 9:2dc192cd376a 160 #define D_LCD_PIN_RS 0
sergiomejia 9:2dc192cd376a 161 #define D_LCD_PIN_RW 1
sergiomejia 9:2dc192cd376a 162 #define D_LCD_PIN_E 2
sergiomejia 9:2dc192cd376a 163 #define D_LCD_PIN_BL 3
sergiomejia 9:2dc192cd376a 164 #define D_LCD_PIN_D4 4
sergiomejia 9:2dc192cd376a 165 #define D_LCD_PIN_D5 5
sergiomejia 9:2dc192cd376a 166 #define D_LCD_PIN_D6 6
sergiomejia 9:2dc192cd376a 167 #define D_LCD_PIN_D7 7
sergiomejia 9:2dc192cd376a 168
sergiomejia 9:2dc192cd376a 169 #define D_LCD_PIN_E2 D_LCD_PIN_RW
sergiomejia 9:2dc192cd376a 170
sergiomejia 9:2dc192cd376a 171 //Force I2C portexpander type
sergiomejia 9:2dc192cd376a 172 #define PCF8574 1
sergiomejia 9:2dc192cd376a 173 #define MCP23008 0
sergiomejia 9:2dc192cd376a 174
sergiomejia 9:2dc192cd376a 175 //Inverted Backlight control
sergiomejia 9:2dc192cd376a 176 #define BACKLIGHT_INV 0
sergiomejia 9:2dc192cd376a 177 #endif
sergiomejia 9:2dc192cd376a 178
sergiomejia 9:2dc192cd376a 179 #if (YWROBOT==1)
sergiomejia 9:2dc192cd376a 180 //Definitions for YWROBOT LCM1602 V1 Module mapping between serial port expander pins and LCD controller.
sergiomejia 9:2dc192cd376a 181 //Very similar to DFROBOT. This hardware uses PCF8574.
sergiomejia 9:2dc192cd376a 182 //Slaveaddress may be set by solderbridges (default 0x4E). SDA/SCL has no pullup Resistors onboard.
sergiomejia 9:2dc192cd376a 183 //See http://arduino-info.wikispaces.com/LCD-Blue-I2C
sergiomejia 9:2dc192cd376a 184 //
sergiomejia 9:2dc192cd376a 185 //Note: LCD RW pin must be kept LOW
sergiomejia 9:2dc192cd376a 186 // E2 is not available on default hardware and so it does not support LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 187 // BL is used to control backlight, reverse logic: Low turns on Backlight. This is handled in setBacklight()
sergiomejia 9:2dc192cd376a 188 #define D_LCD_PIN_RS 0
sergiomejia 9:2dc192cd376a 189 #define D_LCD_PIN_RW 1
sergiomejia 9:2dc192cd376a 190 #define D_LCD_PIN_E 2
sergiomejia 9:2dc192cd376a 191 #define D_LCD_PIN_BL 3
sergiomejia 9:2dc192cd376a 192 #define D_LCD_PIN_D4 4
sergiomejia 9:2dc192cd376a 193 #define D_LCD_PIN_D5 5
sergiomejia 9:2dc192cd376a 194 #define D_LCD_PIN_D6 6
sergiomejia 9:2dc192cd376a 195 #define D_LCD_PIN_D7 7
sergiomejia 9:2dc192cd376a 196
sergiomejia 9:2dc192cd376a 197 #define D_LCD_PIN_E2 D_LCD_PIN_RW
sergiomejia 9:2dc192cd376a 198
sergiomejia 9:2dc192cd376a 199 //Force I2C portexpander type
sergiomejia 9:2dc192cd376a 200 #define PCF8574 1
sergiomejia 9:2dc192cd376a 201 #define MCP23008 0
sergiomejia 9:2dc192cd376a 202
sergiomejia 9:2dc192cd376a 203 //Inverted Backlight control
sergiomejia 9:2dc192cd376a 204 #define BACKLIGHT_INV 0
sergiomejia 9:2dc192cd376a 205 #endif
sergiomejia 9:2dc192cd376a 206
sergiomejia 9:2dc192cd376a 207 #if (GYLCD==1)
sergiomejia 9:2dc192cd376a 208 //Definitions for Arduino-IIC-LCD GY-LCD-V1 Module mapping between serial port expander pins and LCD controller.
sergiomejia 9:2dc192cd376a 209 //Very similar to DFROBOT. This hardware uses PCF8574.
sergiomejia 9:2dc192cd376a 210 //Slaveaddress may be set by solderbridges (default 0x4E). SDA/SCL has pullup Resistors onboard.
sergiomejia 9:2dc192cd376a 211 //See http://arduino-info.wikispaces.com/LCD-Blue-I2C
sergiomejia 9:2dc192cd376a 212 //
sergiomejia 9:2dc192cd376a 213 //Note: LCD RW pin must be kept LOW
sergiomejia 9:2dc192cd376a 214 // E2 is not available on default hardware and so it does not support LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 215 // BL is used to control backlight, reverse logic: Low turns on Backlight. This is handled in setBacklight()
sergiomejia 9:2dc192cd376a 216 #define D_LCD_PIN_D4 0
sergiomejia 9:2dc192cd376a 217 #define D_LCD_PIN_D5 1
sergiomejia 9:2dc192cd376a 218 #define D_LCD_PIN_D6 2
sergiomejia 9:2dc192cd376a 219 #define D_LCD_PIN_D7 3
sergiomejia 9:2dc192cd376a 220 #define D_LCD_PIN_EN 4
sergiomejia 9:2dc192cd376a 221 #define D_LCD_PIN_RW 5
sergiomejia 9:2dc192cd376a 222 #define D_LCD_PIN_RS 6
sergiomejia 9:2dc192cd376a 223 #define D_LCD_PIN_BL 7
sergiomejia 9:2dc192cd376a 224
sergiomejia 9:2dc192cd376a 225 #define D_LCD_PIN_E2 D_LCD_PIN_RW
sergiomejia 9:2dc192cd376a 226
sergiomejia 9:2dc192cd376a 227 //Force I2C portexpander type
sergiomejia 9:2dc192cd376a 228 #define PCF8574 1
sergiomejia 9:2dc192cd376a 229 #define MCP23008 0
sergiomejia 9:2dc192cd376a 230
sergiomejia 9:2dc192cd376a 231 //Force Inverted Backlight control
sergiomejia 9:2dc192cd376a 232 #define BACKLIGHT_INV 1
sergiomejia 9:2dc192cd376a 233 #endif
sergiomejia 9:2dc192cd376a 234
sergiomejia 9:2dc192cd376a 235 #if (SYDZ==1)
sergiomejia 9:2dc192cd376a 236 //Definitions for SYDZ Module mapping between serial port expander pins and LCD controller.
sergiomejia 9:2dc192cd376a 237 //Very similar to DFROBOT. This hardware uses PCF8574A and uses inverted Backlight control
sergiomejia 9:2dc192cd376a 238 //Slaveaddress may be set by switches (default 0x40). SDA/SCL has pullup Resistors onboard.
sergiomejia 9:2dc192cd376a 239 //See ebay
sergiomejia 9:2dc192cd376a 240 //
sergiomejia 9:2dc192cd376a 241 //Note: LCD RW pin must be kept LOW
sergiomejia 9:2dc192cd376a 242 // E2 is not available on default hardware and so it does not support LCD40x4 (second controller)
sergiomejia 9:2dc192cd376a 243 // BL is used to control backlight, reverse logic: Low turns on Backlight. This is handled in setBacklight()
sergiomejia 9:2dc192cd376a 244 #define D_LCD_PIN_RS 0
sergiomejia 9:2dc192cd376a 245 #define D_LCD_PIN_RW 1
sergiomejia 9:2dc192cd376a 246 #define D_LCD_PIN_E 2
sergiomejia 9:2dc192cd376a 247 #define D_LCD_PIN_BL 3
sergiomejia 9:2dc192cd376a 248 #define D_LCD_PIN_D4 4
sergiomejia 9:2dc192cd376a 249 #define D_LCD_PIN_D5 5
sergiomejia 9:2dc192cd376a 250 #define D_LCD_PIN_D6 6
sergiomejia 9:2dc192cd376a 251 #define D_LCD_PIN_D7 7
sergiomejia 9:2dc192cd376a 252
sergiomejia 9:2dc192cd376a 253 #define D_LCD_PIN_E2 D_LCD_PIN_RW
sergiomejia 9:2dc192cd376a 254
sergiomejia 9:2dc192cd376a 255 //Force I2C portexpander type
sergiomejia 9:2dc192cd376a 256 #define PCF8574 1
sergiomejia 9:2dc192cd376a 257 #define MCP23008 0
sergiomejia 9:2dc192cd376a 258
sergiomejia 9:2dc192cd376a 259 //Force Inverted Backlight control
sergiomejia 9:2dc192cd376a 260 #define BACKLIGHT_INV 1
sergiomejia 9:2dc192cd376a 261 #endif
sergiomejia 9:2dc192cd376a 262
sergiomejia 9:2dc192cd376a 263 //Bitpattern Defines for I2C PCF8574/PCF8574A, MCP23008 and SPI 74595 Bus expanders
sergiomejia 9:2dc192cd376a 264 //Don't change!
sergiomejia 9:2dc192cd376a 265 //
sergiomejia 9:2dc192cd376a 266 #define D_LCD_D4 (1<<D_LCD_PIN_D4)
sergiomejia 9:2dc192cd376a 267 #define D_LCD_D5 (1<<D_LCD_PIN_D5)
sergiomejia 9:2dc192cd376a 268 #define D_LCD_D6 (1<<D_LCD_PIN_D6)
sergiomejia 9:2dc192cd376a 269 #define D_LCD_D7 (1<<D_LCD_PIN_D7)
sergiomejia 9:2dc192cd376a 270 #define D_LCD_RS (1<<D_LCD_PIN_RS)
sergiomejia 9:2dc192cd376a 271 #define D_LCD_E (1<<D_LCD_PIN_E)
sergiomejia 9:2dc192cd376a 272 #define D_LCD_E2 (1<<D_LCD_PIN_E2)
sergiomejia 9:2dc192cd376a 273 #define D_LCD_BL (1<<D_LCD_PIN_BL)
sergiomejia 9:2dc192cd376a 274 //#define D_LCD_RW (1<<D_LCD_PIN_RW)
sergiomejia 9:2dc192cd376a 275
sergiomejia 9:2dc192cd376a 276 #define D_LCD_BUS_MSK (D_LCD_D4 | D_LCD_D5 | D_LCD_D6 | D_LCD_D7)
sergiomejia 9:2dc192cd376a 277 #define D_LCD_BUS_DEF 0x00
sergiomejia 9:2dc192cd376a 278
sergiomejia 9:2dc192cd376a 279 /* PCF8574/PCF8574A I2C portexpander slave address */
sergiomejia 9:2dc192cd376a 280 #define PCF8574_SA0 0x40
sergiomejia 9:2dc192cd376a 281 #define PCF8574_SA1 0x42
sergiomejia 9:2dc192cd376a 282 #define PCF8574_SA2 0x44
sergiomejia 9:2dc192cd376a 283 #define PCF8574_SA3 0x46
sergiomejia 9:2dc192cd376a 284 #define PCF8574_SA4 0x48
sergiomejia 9:2dc192cd376a 285 #define PCF8574_SA5 0x4A
sergiomejia 9:2dc192cd376a 286 #define PCF8574_SA6 0x4C
sergiomejia 9:2dc192cd376a 287 #define PCF8574_SA7 0x4E
sergiomejia 9:2dc192cd376a 288
sergiomejia 9:2dc192cd376a 289 #define PCF8574A_SA0 0x70
sergiomejia 9:2dc192cd376a 290 #define PCF8574A_SA1 0x72
sergiomejia 9:2dc192cd376a 291 #define PCF8574A_SA2 0x74
sergiomejia 9:2dc192cd376a 292 #define PCF8574A_SA3 0x76
sergiomejia 9:2dc192cd376a 293 #define PCF8574A_SA4 0x78
sergiomejia 9:2dc192cd376a 294 #define PCF8574A_SA5 0x7A
sergiomejia 9:2dc192cd376a 295 #define PCF8574A_SA6 0x7C
sergiomejia 9:2dc192cd376a 296 #define PCF8574A_SA7 0x7E
sergiomejia 9:2dc192cd376a 297
sergiomejia 9:2dc192cd376a 298 /* MCP23008 I2C portexpander slave address */
sergiomejia 9:2dc192cd376a 299 #define MCP23008_SA0 0x40
sergiomejia 9:2dc192cd376a 300 #define MCP23008_SA1 0x42
sergiomejia 9:2dc192cd376a 301 #define MCP23008_SA2 0x44
sergiomejia 9:2dc192cd376a 302 #define MCP23008_SA3 0x46
sergiomejia 9:2dc192cd376a 303 #define MCP23008_SA4 0x48
sergiomejia 9:2dc192cd376a 304 #define MCP23008_SA5 0x4A
sergiomejia 9:2dc192cd376a 305 #define MCP23008_SA6 0x4C
sergiomejia 9:2dc192cd376a 306 #define MCP23008_SA7 0x4E
sergiomejia 9:2dc192cd376a 307
sergiomejia 9:2dc192cd376a 308 /* MCP23008 I2C portexpander internal registers */
sergiomejia 9:2dc192cd376a 309 #define IODIR 0x00
sergiomejia 9:2dc192cd376a 310 #define IPOL 0x01
sergiomejia 9:2dc192cd376a 311 #define GPINTEN 0x02
sergiomejia 9:2dc192cd376a 312 #define DEFVAL 0x03
sergiomejia 9:2dc192cd376a 313 #define INTCON 0x04
sergiomejia 9:2dc192cd376a 314 #define IOCON 0x05
sergiomejia 9:2dc192cd376a 315 #define GPPU 0x06
sergiomejia 9:2dc192cd376a 316 #define INTF 0x07
sergiomejia 9:2dc192cd376a 317 #define INTCAP 0x08
sergiomejia 9:2dc192cd376a 318 #define GPIO 0x09
sergiomejia 9:2dc192cd376a 319 #define OLAT 0x0A
sergiomejia 9:2dc192cd376a 320
sergiomejia 9:2dc192cd376a 321 /* ST7032i I2C slave address */
sergiomejia 9:2dc192cd376a 322 #define ST7032_SA 0x7C
sergiomejia 9:2dc192cd376a 323
sergiomejia 9:2dc192cd376a 324 /* ST7036i I2C slave address */
sergiomejia 9:2dc192cd376a 325 #define ST7036_SA0 0x78
sergiomejia 9:2dc192cd376a 326 #define ST7036_SA1 0x7A
sergiomejia 9:2dc192cd376a 327 #define ST7036_SA2 0x7C
sergiomejia 9:2dc192cd376a 328 #define ST7036_SA3 0x7E
sergiomejia 9:2dc192cd376a 329
sergiomejia 9:2dc192cd376a 330 /* ST7066_ACM I2C slave address, Added for ACM1602 module */
sergiomejia 9:2dc192cd376a 331 #define ST7066_SA0 0xA0
sergiomejia 9:2dc192cd376a 332
sergiomejia 9:2dc192cd376a 333 /* PCF21XX I2C slave address */
sergiomejia 9:2dc192cd376a 334 #define PCF21XX_SA0 0x74
sergiomejia 9:2dc192cd376a 335 #define PCF21XX_SA1 0x76
sergiomejia 9:2dc192cd376a 336
sergiomejia 9:2dc192cd376a 337 /* AIP31068 I2C slave address */
sergiomejia 9:2dc192cd376a 338 #define AIP31068_SA 0x7C
sergiomejia 9:2dc192cd376a 339
sergiomejia 9:2dc192cd376a 340 /* SSD1803 I2C slave address */
sergiomejia 9:2dc192cd376a 341 #define SSD1803_SA0 0x78
sergiomejia 9:2dc192cd376a 342 #define SSD1803_SA1 0x7A
sergiomejia 9:2dc192cd376a 343
sergiomejia 9:2dc192cd376a 344 /* US2066/SSD1311 I2C slave address */
sergiomejia 9:2dc192cd376a 345 #define US2066_SA0 0x78
sergiomejia 9:2dc192cd376a 346 #define US2066_SA1 0x7A
sergiomejia 9:2dc192cd376a 347
sergiomejia 9:2dc192cd376a 348 /* AC780 I2C slave address */
sergiomejia 9:2dc192cd376a 349 #define AC780_SA0 0x78
sergiomejia 9:2dc192cd376a 350 #define AC780_SA1 0x7A
sergiomejia 9:2dc192cd376a 351 #define AC780_SA2 0x7C
sergiomejia 9:2dc192cd376a 352 #define AC780_SA3 0x7E
sergiomejia 9:2dc192cd376a 353
sergiomejia 9:2dc192cd376a 354 //Some native I2C controllers dont support ACK. Set define to '0' to allow code to proceed even without ACK
sergiomejia 9:2dc192cd376a 355 //#define LCD_I2C_ACK 0
sergiomejia 9:2dc192cd376a 356 #define LCD_I2C_ACK 1
sergiomejia 9:2dc192cd376a 357
sergiomejia 9:2dc192cd376a 358
sergiomejia 9:2dc192cd376a 359 // Contrast setting, 6 significant bits (only supported for controllers with extended features)
sergiomejia 9:2dc192cd376a 360 // Voltage Multiplier setting, 2 or 3 significant bits (only supported for controllers with extended features)
sergiomejia 9:2dc192cd376a 361 #define LCD_DEF_CONTRAST 0x20
sergiomejia 9:2dc192cd376a 362
sergiomejia 9:2dc192cd376a 363 //ST7032 EastRising ERC1602FS-4 display
sergiomejia 9:2dc192cd376a 364 //Contrast setting 6 significant bits
sergiomejia 9:2dc192cd376a 365 //Voltage Multiplier setting 3 significant bits
sergiomejia 9:2dc192cd376a 366 #define LCD_ST7032_CONTRAST 0x28
sergiomejia 9:2dc192cd376a 367 #define LCD_ST7032_RAB 0x04
sergiomejia 9:2dc192cd376a 368
sergiomejia 9:2dc192cd376a 369 //ST7036 EA DOGM1603 display
sergiomejia 9:2dc192cd376a 370 //Contrast setting 6 significant bits
sergiomejia 9:2dc192cd376a 371 //Voltage Multiplier setting 3 significant bits
sergiomejia 9:2dc192cd376a 372 #define LCD_ST7036_CONTRAST 0x28
sergiomejia 9:2dc192cd376a 373 #define LCD_ST7036_RAB 0x04
sergiomejia 9:2dc192cd376a 374
sergiomejia 9:2dc192cd376a 375 //SSD1803 EA DOGM204 display
sergiomejia 9:2dc192cd376a 376 //Contrast setting 6 significant bits
sergiomejia 9:2dc192cd376a 377 //Voltage Multiplier setting 3 significant bits
sergiomejia 9:2dc192cd376a 378 #define LCD_SSD1_CONTRAST 0x28
sergiomejia 9:2dc192cd376a 379 #define LCD_SSD1_RAB 0x06
sergiomejia 9:2dc192cd376a 380
sergiomejia 9:2dc192cd376a 381 //US2066/SSD1311 EastRising ER-OLEDM2002-4 display
sergiomejia 9:2dc192cd376a 382 //Contrast setting 8 significant bits, use 6 for compatibility
sergiomejia 9:2dc192cd376a 383 #define LCD_US20_CONTRAST 0x3F
sergiomejia 9:2dc192cd376a 384 //#define LCD_US20_CONTRAST 0x1F
sergiomejia 9:2dc192cd376a 385
sergiomejia 9:2dc192cd376a 386 //PCF2113, PCF2119 display
sergiomejia 9:2dc192cd376a 387 //Contrast setting 6 significant bits
sergiomejia 9:2dc192cd376a 388 //Voltage Multiplier setting 2 significant bits
sergiomejia 9:2dc192cd376a 389 #define LCD_PCF2_CONTRAST 0x20
sergiomejia 9:2dc192cd376a 390 #define LCD_PCF2_S12 0x02
sergiomejia 9:2dc192cd376a 391
sergiomejia 9:2dc192cd376a 392 //PT6314 VFD display
sergiomejia 9:2dc192cd376a 393 //Contrast setting 2 significant bits, use 6 for compatibility
sergiomejia 9:2dc192cd376a 394 #define LCD_PT63_CONTRAST 0x3F
sergiomejia 9:2dc192cd376a 395
sergiomejia 9:2dc192cd376a 396
sergiomejia 9:2dc192cd376a 397 #endif //MBED_TEXTLCDCONFIG_H