Jhd-2x16-i2c Proteus ✰ ❲NEWEST❳
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Initialize the library with the I2C address found in Proteus
// Standard JHD simulation usually resolves to 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
// Initialize the LCD
lcd.init();
// Turn on the backlight (simulation visual effect)
lcd.backlight();
// Print a message
lcd.setCursor(0, 0);
lcd.print("JHD-2x16-I2C");
lcd.setCursor(0, 1);
lcd.print("Proteus Sim OK");
void loop()
// Nothing to do here for static text
#include <Wire.h> #include <LiquidCrystal_I2C.h>// Initialize LCD with address 0x27, 16 columns, 2 rows LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() Wire.begin(); // Initialize I2C bus lcd.init(); // Initialize LCD lcd.backlight(); // Turn on backlight
lcd.setCursor(0, 0); lcd.print("Proteus I2C LCD"); lcd.setCursor(0, 1); lcd.print("Hello World!");
void loop() // Scroll the second line lcd.setCursor(0, 1); lcd.print("Counter: "); lcd.print(millis() / 1000); delay(500);
The JHD-2x16-I2C is a 16-character by 2-line alphanumeric LCD module equipped with a PCF8574 I2C backpack. This backpack converts the standard 16-pin parallel interface of the HD44780 controller into a simple two-wire I2C interface (SDA, SCL), significantly reducing the number of GPIO pins required from a microcontroller.
In the Proteus Design Suite, there is no direct component labeled strictly "JHD-2x16-I2C". Instead, simulation is achieved by combining a standard LM016L (or similar HD44780-compatible 16x2 LCD) with a PCF8574 I/O expander. This paper provides a comprehensive guide to simulating this setup.
#include <Wire.h> #include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x20, 16, 2); // Address 0x20, 16x2
void setup() lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Hello Proteus!"); lcd.setCursor(0, 1); lcd.print("JHD-2x16-I2C OK"); jhd-2x16-i2c proteus
void loop() // Your code here
Important: In Proteus, you must include the LiquidCrystal_I2C library in the Arduino sketch properties. You may need to copy the library files into the Proteus Arduino library folder.
From the Proteus component library (P key), pick the following: #include <Wire
| Component | Library Reference | Description |
| :--- | :--- | :--- |
| Microcontroller | e.g., ARDUINO_UNO, PIC16F877A, ATMEGA32 | Master device (I2C controller) |
| LCD | LM016L | 16x2 character LCD (HD44780) |
| I2C Expander | PCF8574 or PCF8574A | 8-bit I2C to parallel converter |
| Pull-up Resistors | RES | 4.7kΩ for I2C bus |
| Potentiometer | POT-HG | 10kΩ for LCD contrast (V0) |
| Miscellaneous | CAP, CRYSTAL | For microcontroller clock (if not using internal) |
Add 4.7kΩ resistors from SDA to VCC and SCL to VCC. Proteus does not always emulate internal pull-ups.
The "JHD-2x16" refers to a standard LCD manufactured by JHD (Jinghua Display).