pcbway




lcd with 8051,8051 lcd display,circuit diagram for lcd with 8051,connect 8051 with lcdHello friends, hope you all are fine and having fun with your lives. Today’s post is about Interfacing of LCD with 8051 Microcontroller. In my previous post, we have seen How to do Serial Communication with 8051 Microcontroller, which was quite a basic tutorial and doesn’t need much hardware attached to it. Now today we are gonna have a look at Interfacing of LCD with 8051 Microcontroller. LCD is always the basic step towards learning embedded as it serves as a great debugging tool for engineering projects.

LCD is also used almost in every Engineering Project for displaying different values. For example, if you have used the ATM machine, which you must have, then you have seen an LCD there displaying the options to select. Obviously that’s quite a big LCD but still LCD. Similarly, all mobile phones are also equipped with LCDs. The LCD we are gonna use in this project is quite small and basic. It is normally known as the 16×2 LCD as it has rows and 2 columns for writing purposes. So, we are gonna interface that LCD with 8051 Microcontroller. The proteus Simulation along with hex file and the programming code in keil uvision 3 is given at the end of this post for download. If you are working with Arduino, then you should have a look at Interfacing of LCD with Arduino. The next level from LCD is Graphical LCD also known as GLCD, so if you wanna know more about that then you should read Interfacing of Arduino with GLCD. So, let’s get started with it.

Interfacing of LCD with 8051 Microcontroller in Proteus ISIS

  • First of all, we are gonna need to design the Proteus Simulation as we always did.
  • After designing the simulation, we are gonna write our embedded code for 8051 Microcontroller.
  • I will be designing the code in Keil uvision3 compiler and the 8051 Microcontroller I am gonna use is AT89C51.
  • So, let’s first get started with Proteus Simulation for interfacing of LCD with 8051 Microcontroller.
Proteus Simulation
  • First of all, get the below components from the Proteus components Library and place them in your workspace.

lcd with 8051,8051 lcd display,circuit diagram for lcd with 8051,connect 8051 with lcd

  • Now design a circuit in Proteus using these above components as shown in below figure:

lcd with 8051,8051 lcd display,circuit diagram for lcd with 8051,connect 8051 with lcd

  • If you have read the previous tutorial, you have noticed a small change, which is the RESET button.
  • Its a good thing to have a RESET button in your project. When you press this button, your 8051 Microcontroller will get reset and will start again.
  • Moreover, we have added a 20×4 LCD. The data pins of this LCD are attached with Port 2, while the RS and enable pins are connected to 0 and 1 pins of Port 1.
  • So, now let’s design the programming code for interfacing of LCD with 8051 Microcontroller.
Programming Code
  • For programming code I have used Keil uvision 3 software. I am gonna first explain the code in bits so let’s get started with it.
  • Before starting the LCD programming, let me clear few basic concepts.
  • In LCD, there are two types of data, we need to sent.
    • The first type is the command like we need to tell the LCD either to start from first column or second column so we need to place the LCD cursor at some point from where we need to start writing. So, this type of data is called commands to LCD.
    • The second type of data is the actual data we need to print on the LCD.
    • So first of all we send commands to the LCD like the cursor should go to second line and then we send the actual data which will start printing at that point.
  • The first function, I have used is named as lcdinit() , this function will initialize the LCD and will give the initializing commands to it.

  • Now in this function I have used another function which is writcmd, which is as follows:




  • In order to send the commands to LCD with 8051 Microcontroller, we have to make the RS pin LOW and then we send the data and make the Enable pin HIGH to LOW which I have done in the above writecmd() function.
  • Next function, we have used is writedata() function, which is as follows:

  • So, if you check above two functions then its quite clear that when we send command to the LCD then we have to make RS pin 0 but when we need to send data to be printed on LCD then we need to make RS pin 1. That’s the only thing worth understanding in interfacing of LCD with 8051 Microcontroller.
  • Now below is the complete code for interfacing of LCD with 8051 Microcontroller and I think now you can get it quite easily.

  • So, place this code in your keil software and get the hex file.
  • Upload this hex file in your Proteus software and Run it.
  • If everything goes fine then you will get something as shown in below figure:

lcd with 8051,8051 lcd display,circuit diagram for lcd with 8051,connect 8051 with lcd

  • Now, you can see we have printed our website address on the LCD with 8051 Microcontroller.
  • You can print anything you wanna print on this LCD instead of our address.
  • You can download the Proteus Simulation along with hex file and the programming code in keil uvision 3 by clicking on below button.

Download Proteus Simulation & Code



That’s all for today, in the next post I am gonna share how to display custom characters on LCD with 8051 Microcontroller, because till now you can just display the simple characters like alphabets and numbers on it but can’t display the custom characters like arrowhead etc. You should have a look at LCD Interfacing with Microcontrollers, where I have combined all tutorials related to LCD. So stay tuned and have fun.

1 Comment

  1. Hi Sir,

    Thank you for the very easy and understandable explanation. In the above code, the display is static. If I want my display to scroll towards the left direction, does it mean that I just need to manipulate the writecmd(int t) function so that the column will change? What if the LCD is composed 4 rows, what will now be the value for writecmd(int t)?

    Thanks,

    Cris

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment