LCD Interfaces Explained: I2C vs SPI vs UART vs Parallel (6800/8080)
Quick answer: small LCD modules connect to a microcontroller through one of four kinds of interface. I2C uses two wires and is simple but slow, so it suits character LCDs and small monochrome displays. SPI uses four or five wires and is much faster, so it is the usual choice for graphic LCDs and small TFTs up to about 3.5 inches. UART (often at RS-232 levels) sends commands to “smart” display modules that draw the screen themselves. Parallel 6800- or 8080-style buses move 8 or 16 bits at a time for faster updates. Larger color TFTs use video interfaces such as RGB, LVDS or MIPI DSI instead.
The right choice depends on the amount of data per frame, the pins your controller can spare and the cable length. SuccessLCD confirms the interface, connector and pin assignment for each module project, including the logic voltage of the host.

Interface Comparison
| Interface | Signal lines | Typical speed | Best for | Watch out for |
|---|---|---|---|---|
| I2C (two-wire) | SDA, SCL + ground | 100 kHz standard, 400 kHz fast mode, 1 MHz fast-mode plus | Character LCDs, small monochrome graphic displays, touch controllers | Pull-up resistors, bus capacitance, slow full-screen updates |
| SPI | SCLK, MOSI (SDA/SDI), CS, often D/C and RESET | Several MHz to tens of MHz, set by the display controller | Graphic LCDs, small TFTs, segment driver ICs | Signal integrity on long cables; many displays are write-only |
| UART / RS-232 | TX, RX + ground | Baud rates such as 9,600 or 115,200 bit/s | Intelligent display modules with their own graphics controller | RS-232 levels need a transceiver; limited bandwidth for raw pixels |
| Parallel 6800 / 8080 | 8 or 16 data lines + control lines | Fast; limited mainly by the bus timing | Character modules, graphic modules, MCU-interface TFTs | High pin count; short connections |
| RGB, LVDS, MIPI DSI | Video data, clock and sync lines or differential pairs | Continuous video streams | TFTs from about 4.3 inches and up | Needs a host with a display controller; see the TFT interface guide |
I2C: The Two-Wire Interface
I2C (inter-integrated circuit) is often called the two-wire interface. All devices share one data line (SDA) and one clock line (SCL), and each device has an address. The lines are open-drain, so they need pull-up resistors to the logic supply.
- Pros: only two signal pins, many devices on one bus, simple wiring.
- Cons: low throughput; every byte carries an acknowledge bit, and the bus was designed for short on-board connections (the specification limits bus capacitance to 400 pF in standard and fast mode).
- Typical LCD use: a character LCD with an I2C expander “backpack”, small monochrome graphic controllers and capacitive touch controllers on TFT modules.
SPI: The Usual Choice For Small TFTs
SPI (serial peripheral interface) uses a clock (SCLK), a data line from the host (MOSI, often labelled SDA or SDI on display datasheets) and a chip select (CS). Most display controllers add a data/command line (D/C or RS) and a reset line. Some use a 3-wire mode in which a ninth bit replaces the D/C pin.
- Pros: much faster than I2C, few pins, supported by almost every microcontroller with DMA.
- Cons: no addressing (one CS per device), and fast clocks need short, clean connections.
- Typical LCD use: graphic monochrome modules, 1.3- to 3.5-inch TFTs and segment LCD driver ICs. See the small TFT LCD display comparison and round TFT displays.
UART, Baud Rate And RS-232
A UART sends data asynchronously on a TX line and receives on RX, with no shared clock. Both ends must use the same baud rate, the number of signal changes per second; for standard UART framing it equals bits per second. With 8 data bits, no parity and one stop bit, each byte takes 10 bits, so 115,200 baud carries about 11.5 kB per second.
RS-232 is a voltage standard for UART signals over cables: logic levels are carried as positive and negative voltages (typically between ±3 V and ±15 V), so a microcontroller’s 3.3 V or 5 V UART needs a level-shifting transceiver. UART displays are usually intelligent modules: the host sends commands such as “draw text” or “show image 3”, and the module’s own controller renders the screen. Raw pixel streaming over UART is too slow for anything but tiny displays. See UART serial LCDs and baud rate for update times, clock error and troubleshooting.
Parallel 6800 And 8080 Buses
Parallel interfaces move 4, 8 or 16 bits per write. Two bus styles are common:
- 6800 style: an enable strobe (E), a read/write line (R/W) and a register select (RS or D/C). HD44780-compatible character modules use this style in 8-bit or 4-bit mode; 4-bit mode needs only RS, E and D4–D7.
- 8080 style: separate write (/WR) and read (/RD) strobes with chip select (/CS) and D/C. Many TFT controllers call this the “MCU interface” and support 8- and 16-bit widths.
Parallel buses are fast and easy to time but use many GPIO pins. On 128 × 64 graphic modules the controller decides what is available: KS0108-type controllers are parallel only, while ST7920- and ST7565-type controllers also offer serial modes. See graphic LCD display modules and the character LCD module guide.
How Much Bandwidth Does Your Display Need?
Estimate the data in one full frame and multiply by the update rate you need:
| Display | Bits per frame | Full-frame time | Practical interface |
|---|---|---|---|
| 128 × 64 monochrome | 8,192 (1 KB) | About 23 ms at 400 kHz I2C (9 clocks per byte) | I2C, SPI or parallel |
| 240 × 240 16-bit color (1.3-inch round) | 921,600 | About 23 ms at 40 MHz SPI | SPI |
| 320 × 240 16-bit color (QVGA) | 1,228,800 | About 31 ms at 40 MHz SPI; about 123 ms at 10 MHz | SPI for static screens; 8080 parallel or RGB for animation |
| 480 × 272 16-bit color (4.3-inch) | 2,088,960 | About 52 ms at 40 MHz SPI | RGB parallel |
| 800 × 480 24-bit color at 60 Hz | 9,216,000 per frame (about 553 Mbit/s) | Continuous stream | RGB, LVDS or MIPI DSI |
These are raw transfer times without protocol overhead. Partial updates, frame buffers in the display controller and DMA all change the picture, but the arithmetic shows why I2C is fine for a character LCD and why a 7-inch TFT needs a video interface. The trade-offs between RGB, LVDS and MIPI are compared in MIPI vs LVDS vs RGB.
Interface Checklist Before You Choose A Module
- Logic voltage: many character modules run at 5 V while most microcontrollers use 3.3 V. Check the input thresholds or add level shifting.
- Pin budget: count GPIO, SPI and I2C resources, including reset, backlight and touch interrupt lines.
- Update rate: work out the frame data as above and leave margin for touch and other bus traffic.
- Cable length and EMC: keep fast SPI and parallel signals short; a long cable to a remote display may favour UART, RS-485 or LVDS.
- Connector: match pitch, contact count and contact side; see FPC vs FFC and LCD connection types.
- Controller documentation: make sure the initialisation sequence for the exact display controller is available before the PCB is fixed.
LCD Interface FAQs
Is I2C or SPI better for an LCD?
SPI is better for anything that updates many pixels, such as graphic LCDs and color TFTs, because it is many times faster. I2C is fine for character LCDs and small monochrome displays and needs only two signal wires.
What is a two-wire interface?
Two-wire interface is another name for I2C: a bus with one data line (SDA) and one clock line (SCL) shared by several addressed devices, with pull-up resistors on both lines.
What is baud rate?
Baud rate is the number of signal changes per second on a serial line. For a standard UART it equals bits per second; with 8 data bits, no parity and one stop bit, each byte uses 10 bits, so 115,200 baud carries about 11,520 bytes per second.
What is the difference between 6800 and 8080 parallel interfaces?
A 6800-style bus uses one enable strobe and a separate read/write line. An 8080-style bus uses separate write and read strobes. Both carry 8 or 16 data bits plus a data/command line, and many display controllers support both.
Can SPI drive a 4.3-inch TFT?
It can for mostly static screens, but a 480 × 272 16-bit frame takes about 52 ms at 40 MHz, so smooth animation usually needs an RGB parallel interface or a display controller with its own frame buffer.
Choosing an interface for a new display? Send the host processor, required resolution and update rate, cable length and supply voltage. Send your display requirements for an engineering review, or browse TFT LCD modules and monochrome LCD modules. For a custom interface or FPC, see custom TFT display engineering.
