Embedded Interface LCD HD44780

  • HD44780 compliant controllers 16×2 Character LCD is a very basic and low-cost LCD module that is commonly used in electronic products and projects.
  • 16×2 means it contains 2 rows that can display 16 characters.
  • Its other variants such as 16×1 and 16×4 are also available in the market.

LCD4 Bit Mode Functions

  • Lcd4_Clear() → Clears the screen
  • Display functions (0x0B–0x0E) → Set display, cursor, and blink states
  • Shift functions (0x18/0x1C) → Scroll the display left/right

Understanding HD44780 Commands

  • 0x01Clear Display
  • 0x0B → Display OFF, Blink ON, Cursor ON
  • 0x0C → Display ON, Blink OFF, Cursor OFF
  • 0x0D → Display ON, Blink OFF, Cursor ON
  • 0x0E → Display ON, Blink ON, Cursor OFF
  • 0x08, 0x0C, 0x18, 0x1C → Cursor or display shift commands

Commands are sent using a function like Lcd4_Cmd() in 4-bit mode, which splits each byte into two nibbles for transmission.


Function Explanation

a) Clear Screen

void Lcd4_Clear() {
  Lcd4_Cmd(0x00);
  Lcd4_Cmd(0x01);
}
  • 0x01 clears the display and sets the cursor at the home position.
  • The first 0x00 is likely a control prefix for 4-bit mode.

b) Display Modes

void Lcd4_DisplayOFF_BlinkON_CursorON() {
  Lcd4_Cmd(0x00);
  Lcd4_Cmd(0x0B);
}
  • Turns display off, enables blinking cursor, and sets cursor visible.
void Lcd4_DisplayON_BlinkOFF_CursorOFF() {
  Lcd4_Cmd(0x00);
  Lcd4_Cmd(0x0C);
}
  • Turns display on, disables blinking, hides the cursor.
void Lcd4_DisplayON_BlinkOFF_CursorON() {
  Lcd4_Cmd(0x00);
  Lcd4_Cmd(0x0D);
}
  • Display ON, blinking OFF, cursor visible.
void Lcd4_DisplayON_BlinkON_CursorOFF() {
  Lcd4_Cmd(0x00);
  Lcd4_Cmd(0x0E);
}
  • Display ON, blinking ON, cursor hidden.

c) Shift Commands (Commented Out)

// void Lcd4_Shift_Left() { Lcd4_Cmd(0x01); Lcd4_Cmd(0x08); }
// void Lcd4_Shift_Right() { Lcd4_Cmd(0x01); Lcd4_Cmd(0x0C); }
  • 0x18 → Shift display left
  • 0x1C → Shift display right

How It Works

  1. Lcd4_Cmd() sends commands to the LCD. In 4-bit mode, each byte is split into upper and lower nibble.
  2. Functions like Lcd4_Clear() or Lcd4_DisplayON_BlinkOFF_CursorON() wrap these commands for easier use in code.
  3. By calling these functions, you can control display on/off, cursor visibility, blinking, and clear or shift the display.
Please turn AdBlock off, and continue learning

Notice for AdBlock users

Please turn AdBlock off