Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TextLCD_Config.h@9:2dc192cd376a, 2020-01-15 (annotated)
- 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?
User | Revision | Line number | New 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 |