

The LCD Display 128x64 (ST7920) is a graphical LCD module with a resolution of 128x64 pixels. It is widely used in embedded systems for displaying text, graphics, and images. The display is powered by the ST7920 controller, which supports both parallel and serial (SPI) communication, making it versatile and easy to integrate into various microcontroller-based projects.








Below are the key technical details of the LCD Display 128x64 (ST7920):
| Parameter | Specification |
|---|---|
| Display Resolution | 128x64 pixels |
| Controller | ST7920 |
| Communication Modes | Parallel (8-bit/4-bit) or Serial (SPI) |
| Operating Voltage | 4.5V to 5.5V |
| Operating Current | ~1.2mA (backlight off) |
| Backlight Voltage | 4.2V to 4.6V |
| Backlight Current | ~120mA |
| Operating Temperature | -20°C to 70°C |
| Dimensions | ~93mm x 70mm x 12mm |
The LCD Display 128x64 (ST7920) has a 20-pin interface. The pin configuration is as follows:
| Pin | Name | Description |
|---|---|---|
| 1 | VSS | Ground (0V) |
| 2 | VDD | Power supply (4.5V to 5.5V) |
| 3 | VO | Contrast adjustment (connect to a potentiometer) |
| 4 | RS | Register Select (0: Command, 1: Data) |
| 5 | RW | Read/Write (0: Write, 1: Read) |
| 6 | E | Enable signal (used to latch data) |
| 7-14 | DB0-DB7 | Data bus lines (used in parallel mode) |
| 15 | PSB | Interface selection (0: Serial, 1: Parallel) |
| 16 | NC | Not connected |
| 17 | RST | Reset pin (active low) |
| 18 | VOUT | Voltage output for internal use (connect a capacitor for stability) |
| 19 | BLA | Backlight anode (+) |
| 20 | BLK | Backlight cathode (-) |
The LCD Display 128x64 can be used in either parallel or serial mode. Below are the steps for connecting it to an Arduino UNO in serial mode (SPI), which requires fewer pins.
| LCD Pin | Arduino Pin |
|---|---|
| VSS | GND |
| VDD | 5V |
| VO | Potentiometer (middle pin) |
| RS | D8 |
| RW | GND |
| E | D9 |
| PSB | GND |
| RST | D10 |
| BLA | 5V |
| BLK | GND |
Below is an example of how to use the LCD Display 128x64 in serial mode with an Arduino UNO. This code uses the U8g2 library, which supports the ST7920 controller.
#include <U8g2lib.h>
// Initialize the display in SPI mode. Adjust the pins as per your wiring.
U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, /* clock=*/ 9, /* data=*/ 8, /* cs=*/ 10);
// Setup function
void setup() {
u8g2.begin(); // Initialize the display
u8g2.setFont(u8g2_font_ncenB08_tr); // Set font for text
}
// Loop function
void loop() {
u8g2.clearBuffer(); // Clear the display buffer
u8g2.drawStr(0, 10, "Hello, World!"); // Draw text at (0, 10)
u8g2.drawBox(10, 20, 50, 30); // Draw a filled rectangle
u8g2.sendBuffer(); // Send the buffer to the display
delay(1000); // Wait for 1 second
}
Blank Screen:
No Response from the Display:
Flickering or Unstable Display:
Can I use this display with a 3.3V microcontroller?
How do I display images on the LCD?
U8g2 to render it.What is the maximum cable length for SPI communication?
By following this documentation, you should be able to successfully integrate and use the LCD Display 128x64 (ST7920) in your projects.