How to create text animation on 16x2 LCD using 8051 microcontroller (AT89C51)

Summary

A static message can be displayed on a 16x2 LCD by interfacing it to the microcontroller (AT89C51). The same message can also be displayed with certain animated effects like moving, blinking etc. This topic explains how to create dynamic effects with the text displayed in LCD.

Text animation on LCD using 8051 Microcontroller (AT89C51)

Description

A string or message can be displayed on LCD by sending its characters to data register after configuring the command register of LCD. To create dynamic effects, a specific command instruction is sent to LCD via microcontroller AT89C51.  The different command codes for LCD are tabulated below:

 

 
Hex Code
 
Command to LCD Instruction Register
1
Clear screen display
2
Return home
4
Decrement cursor
6
Increment cursor
5
Shift display right
7
Shift display left
8
Display OFF, cursor OFF
A
Display OFF, cursor ON
C
Display ON, cursor OFF
E
Display ON, cursor blinking
10
Shift cursor position to left
14
Shift cursor position to right
18
Shift the entire display to the left
1C
Shift the entire display to the right
80
Force the cursor to the beginning of the 1st line
C0
Force cursor to the beginning of the 2nd line
38
Use 2 lines and 5x7 matrix
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
To create a particular effect, any of these code(s) can be used in a pattern. For example, shifting the entire display right (5H) in a loop will keep moving the text to right. To create oscillating text, first keep shifting the string to right (for say, 8 positions) and then shift it to left. This left-right shifting can be done in an infinite loop.
 
Here P2 is used as output port of the 8051 microcontroller (AT89C51) which sends the data byte to data pins of the LCD. The control pins (pin 4, 5 & 6) are connected to pins 0, 1 & 6, respectively, of P3 port of the microcontroller. Pin 3 is connected to a preset of 10k to adjust the contrast on LCD screen.

Circuit Diagram

Video

Code

This Code is only visible to Registered users. Please Login/Register

Components

Presets | Variable Resistors
Preset
 
A preset is a three legged electronic component which can be made to offer varying resistance in a circuit. The resistance is varied by adjusting the rotary control over it. The adjustment can be done by using a small screw driver or...
AT89C51 Microcontroller, Atmel 89C51 Controller Image
AT89C51 Microcontroller

AT89C51 is an 8-bit microcontroller and belongs to Atmel's 8051 family. ATMEL 89C51 has 4KB of Flash programmable and erasable read only memory (...

16 x 2 LCD | 16x2 Character LCD Module
LCD

 

LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of applications. A 16x2 LCD display is very basic module and is very commonly used in various devices and circuits. These modules are preferred over seven segments...

You are here