Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use LCD Display 128x64 (ST7920): Examples, Pinouts, and Specs

Image of LCD Display 128x64 (ST7920)
Cirkit Designer LogoDesign with LCD Display 128x64 (ST7920) in Cirkit Designer

Introduction

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.

Explore Projects Built with LCD Display 128x64 (ST7920)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano Controlled TFT Display with Multiple Pushbuttons
Image of rey: A project utilizing LCD Display 128x64 (ST7920) in a practical application
This circuit features an Arduino Nano microcontroller connected to a ST7735 128x128 1.44 TFT I2C Color display and multiple pushbuttons. The display is interfaced with the Arduino via digital pins for control signals and SPI pins for data transfer. The pushbuttons are connected to various digital and analog input pins on the Arduino, likely intended for user input to control the display or other functions within the code.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-C6 and ST7735S Display: Wi-Fi Controlled TFT Display Module
Image of ESP32-C6sm-ST7735: A project utilizing LCD Display 128x64 (ST7920) in a practical application
This circuit features an ESP32-C6 microcontroller interfaced with a China ST7735S 160x128 TFT display. The ESP32-C6 controls the display via SPI communication, providing power, ground, and control signals to render graphics and text on the screen.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560 Controlled TFT Touchscreen Interface
Image of Tablero Moto: A project utilizing LCD Display 128x64 (ST7920) in a practical application
This circuit connects an Arduino Mega 2560 microcontroller to a 3.5-inch 480x320 TFT LCD display. The Arduino provides power, ground, and digital signals to control the display, including data lines for pixel information and control lines for reset, write, and command/data selection. The embedded code initializes the display and configures the Arduino's pins for communication, likely to create a user interface or visual output for a project.
Cirkit Designer LogoOpen Project in Cirkit Designer
RTL8720DN-Based Interactive Button-Controlled TFT Display
Image of coba-coba: A project utilizing LCD Display 128x64 (ST7920) in a practical application
This circuit features an RTL8720DN microcontroller interfaced with a China ST7735S 160x128 TFT LCD display and four pushbuttons. The microcontroller reads the states of the pushbuttons and displays their statuses on the TFT LCD, providing a visual feedback system for button presses.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with LCD Display 128x64 (ST7920)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of rey: A project utilizing LCD Display 128x64 (ST7920) in a practical application
Arduino Nano Controlled TFT Display with Multiple Pushbuttons
This circuit features an Arduino Nano microcontroller connected to a ST7735 128x128 1.44 TFT I2C Color display and multiple pushbuttons. The display is interfaced with the Arduino via digital pins for control signals and SPI pins for data transfer. The pushbuttons are connected to various digital and analog input pins on the Arduino, likely intended for user input to control the display or other functions within the code.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP32-C6sm-ST7735: A project utilizing LCD Display 128x64 (ST7920) in a practical application
ESP32-C6 and ST7735S Display: Wi-Fi Controlled TFT Display Module
This circuit features an ESP32-C6 microcontroller interfaced with a China ST7735S 160x128 TFT display. The ESP32-C6 controls the display via SPI communication, providing power, ground, and control signals to render graphics and text on the screen.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Tablero Moto: A project utilizing LCD Display 128x64 (ST7920) in a practical application
Arduino Mega 2560 Controlled TFT Touchscreen Interface
This circuit connects an Arduino Mega 2560 microcontroller to a 3.5-inch 480x320 TFT LCD display. The Arduino provides power, ground, and digital signals to control the display, including data lines for pixel information and control lines for reset, write, and command/data selection. The embedded code initializes the display and configures the Arduino's pins for communication, likely to create a user interface or visual output for a project.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of coba-coba: A project utilizing LCD Display 128x64 (ST7920) in a practical application
RTL8720DN-Based Interactive Button-Controlled TFT Display
This circuit features an RTL8720DN microcontroller interfaced with a China ST7735S 160x128 TFT LCD display and four pushbuttons. The microcontroller reads the states of the pushbuttons and displays their statuses on the TFT LCD, providing a visual feedback system for button presses.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • User interfaces for embedded systems
  • Displaying sensor data in IoT devices
  • Graphical representations in industrial control systems
  • Educational and hobbyist projects
  • Portable devices requiring low-power graphical displays

Technical Specifications

Key Technical Details

Parameter Specification
Display Resolution 128x64 pixels
Controller ST7920
Communication Interface Parallel (8-bit/4-bit) or Serial (SPI)
Operating Voltage 4.5V to 5.5V
Backlight Voltage 4.2V to 4.6V
Current Consumption 1.5mA (typical, without backlight)
Operating Temperature -20°C to +70°C
Dimensions Varies by module (e.g., 93mm x 70mm)

Pin Configuration and Descriptions

Parallel Mode (8-bit/4-bit)

Pin No. Pin Name Description
1 VSS Ground (0V)
2 VDD Power supply (4.5V to 5.5V)
3 VO Contrast adjustment (connect to potentiometer)
4 RS Register Select (0: Command, 1: Data)
5 RW Read/Write (0: Write, 1: Read)
6 E Enable signal (latch data on high-to-low)
7-14 DB0-DB7 Data bus lines (DB4-DB7 used in 4-bit mode)
15 PSB Interface mode select (1: Parallel, 0: Serial)
16 NC Not connected
17 A Backlight anode (+)
18 K Backlight cathode (-)

Serial (SPI) Mode

Pin No. Pin Name Description
1 VSS Ground (0V)
2 VDD Power supply (4.5V to 5.5V)
3 VO Contrast adjustment (connect to potentiometer)
4 RS Register Select (0: Command, 1: Data)
5 RW Serial Clock (SCK)
6 E Serial Data Input (SID)
15 PSB Interface mode select (1: Parallel, 0: Serial)
17 A Backlight anode (+)
18 K Backlight cathode (-)

Usage Instructions

How to Use the Component in a Circuit

  1. Power Supply: Connect the VDD pin to a 5V power source and VSS to ground.
  2. Contrast Adjustment: Use a 10kΩ potentiometer connected to the VO pin to adjust the display contrast.
  3. Interface Selection: Set the PSB pin to 1 for parallel mode or 0 for serial mode.
  4. Backlight: Connect the A and K pins to a 5V power source and ground, respectively, to enable the backlight.
  5. Microcontroller Connection:
    • For parallel mode, connect the data bus (DB0-DB7 or DB4-DB7 for 4-bit mode) and control pins (RS, RW, E) to the microcontroller.
    • For serial mode, connect RS, RW (SCK), and E (SID) to the microcontroller.

Important Considerations and Best Practices

  • Ensure the power supply voltage is within the specified range to avoid damaging the display.
  • Use decoupling capacitors (e.g., 0.1µF) near the power pins to reduce noise.
  • Avoid leaving unused data pins floating; tie them to ground if not used.
  • For SPI mode, ensure the microcontroller supports the required clock speed for proper communication.

Example Code for Arduino UNO (Serial Mode)

#include <U8g2lib.h>

// Initialize the display in SPI mode
// U8G2_ST7920_128X64_F_SW_SPI: Constructor for ST7920 in software SPI mode
U8G2_ST7920_128X64_F_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10);

void setup() {
  u8g2.begin(); // Initialize the display
}

void loop() {
  u8g2.clearBuffer(); // Clear the display buffer
  u8g2.setFont(u8g2_font_ncenB08_tr); // Set font
  u8g2.drawStr(0, 10, "Hello, World!"); // Draw text at (0, 10)
  u8g2.sendBuffer(); // Send buffer to display
  delay(1000); // Wait for 1 second
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Display Not Turning On:

    • Verify the power supply connections (VDD and VSS).
    • Check the backlight connections (A and K).
  2. No Text or Graphics Displayed:

    • Ensure the contrast is properly adjusted using the potentiometer on the VO pin.
    • Verify the communication mode (parallel or serial) matches the microcontroller configuration.
  3. Flickering or Unstable Display:

    • Add decoupling capacitors near the power pins to reduce noise.
    • Check for loose or poor connections in the circuit.
  4. Incorrect or Garbled Output:

    • Ensure the data and control pins are correctly connected to the microcontroller.
    • Double-check the initialization code and communication settings.

FAQs

Q: Can I use the display with a 3.3V microcontroller?
A: The display requires a 5V power supply. Use a level shifter for 3.3V microcontrollers to safely interface with the display.

Q: How do I switch between 8-bit and 4-bit parallel modes?
A: In 4-bit mode, only DB4-DB7 are used for data transfer. Leave DB0-DB3 unconnected or tied to ground.

Q: Is the backlight mandatory for operation?
A: No, the backlight is optional. However, it improves visibility in low-light conditions.