Introduction to 4-bit Mode

Till now whatever we discussed in the previous part of ths LCD tutorial, we were dealing with 8-bit mode. Now we are going to learn how to use LCD in 4-bit mode. There are many reasons why sometime we prefer to use LCD in 4-bit mode instead of 8-bit. One basic reason is lesser number of pins are needed to interface LCD.

In 4-bit mode the data is sent in nibbles, first we send the higher nibble and then the lower nibble. To enable the 4-bit mode of LCD, we need to follow special sequence of initialization that tells the LCD controller that user has selected 4-bit mode of operation. We call this special sequence as resetting the LCD. Following is the reset sequence of LCD.
  1. Wait for abour 20mS
  2. Send the first init value (0x30)
  3. Wait for about 10mS
  4. Send second init value (0x30)
  5. Wait for about 1mS
  6. Send third init value (0x30)
  7. Wait for 1mS
  8. Select bus width (0x30 - for 8-bit and 0x20 for 4-bit)
  9. Wait for 1mS

The busy flag will only be valid after the above reset sequence. Usually we do not use busy flag in 4-bit mode as we have to write code for reading two nibbles from the LCD. Instead we simply put a certain ammount of delay usually 300 to 600uS. This delay might vary depending on the LCD you are using, as you might have a different crystal frequency on which LCD controller is running. So it actually depends on the LCD module you are using. So if you feel any problem running the LCD, simply try to increase the delay. This usually works. For me about 400uS works perfect.

LCD connections in 4-bit Mode




Above is the connection diagram of LCD in 4-bit mode, where we only need 6 pins to interface an LCD. D4-D7 are the data pins connection and Enable and Register select are for LCD control pins. We are not using Read/Write (RW) Pin of the LCD, as we are only writing on the LCD so we have made it grounded permanently. If you want to use it.. then you may connect it on your controller but that will only increase another pin and does not make any big difference. Potentiometer RV1 is used to control the LCD contrast. The unwanted data pins of LCD i.e. D0-D3 are connected to ground.

LCD connections in 4-bit Mode

We will now look into the common steps to send data/command to LCD when working in 4-bit mode. As i already explained in 4-bit mode data is sent nibble by nibble, first we send higher nibble and then lower nibble. This means in both command and data sending function we need to saperate the higher 4-bits and lower 4-bits.


The common steps are:
  1. Mask lower 4-bits
  2. Send to the LCD port
  3. Send enable signal
  4. Mask higher 4-bits
  5. Send to LCD port
  6. Send enable signal

We are done with the theory part now, In the next section we will take a look at the programming microcontroller to control LCD in 4-bit mode.

Share it! Like it!

Conversation

ExperimenterUK
Thu Apr 28 2016, 01:15 AM
We don't provide project reports. We try to help you do your project
Wed Apr 27 2016, 06:02 PM
abebe tigabu
help me by sending final thesis project automatoc green house effect control by arduino or by at89c51 microcontroller
Mon Apr 25 2016, 03:40 AM
abhinav kumar
Hey there, i want to project report on the RFID BASED SECURITY SYSTEM using AVR microcontroler.please mail as soon as possible. Thank you
Mon Apr 18 2016, 01:07 PM
umesh parekh
i want c code for rfid based car parking system using 8051 and parking slot indicator.if u have please email me
Mon Apr 18 2016, 10:35 AM
Prakash Rao
i need to work on OCR for Numbers, could not find any such projects done using 8051
Wed Apr 13 2016, 07:27 PM
Sanket GUPTA
hey i am new to embedded system and i want to pursue ms in embedded, i have 2 years before i can apply for ms.. in two years can i gain sufficient knowledge. i know c and c++
ExperimenterUK
Wed Apr 13 2016, 05:15 PM
@Suraj.. the method will work ,but edit to suit your compiler
Wed Apr 13 2016, 01:05 AM
Suraj Sridhar
Can I use the LCD Device driver code for STM32F401RET6?
Mon Apr 11 2016, 04:38 PM
Ankith
Can I get the code to access the file from 8051
Mon Apr 11 2016, 04:37 PM
Ankith
can I access a file or folder from sdcard using 8051 microcontroller?

Downloads

Comments

afzal42
Wed May 04 2016, 11:16 AM
pd
Sun May 01 2016, 01:35 AM
uk2308
Fri Apr 29 2016, 12:27 PM
legomaniak
Thu Apr 28 2016, 03:26 PM
APEGEEKZ
Mon Apr 25 2016, 01:54 PM
aishwar
Sun Apr 24 2016, 10:58 AM
nitring
Sun Apr 24 2016, 09:38 AM
Yuri_Golden
Fri Apr 22 2016, 05:15 PM

Online

Guests: 41, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37760
Newest member: afzal42
Forum Activity
Karan123 Avatar
Posted By Karan123
Sat Apr 30 2016, 08:10 AM
Hi,C2000 has quite big series from TI.Which C2000 ...
uk2308 Avatar
Posted By uk2308
Fri Apr 29 2016, 12:33 PM
i need to know the harware connection of c2000 wit...
legomaniak Avatar
Posted By legomaniak
Thu Apr 28 2016, 03:29 PM
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Apr 28 2016, 01:12 AM
Did you read / understand my last post to your oth...
APEGEEKZ Avatar
Posted By APEGEEKZ
Mon Apr 25 2016, 02:54 PM
im sending mail using sim900 to gmail but its thro...
ExperimenterUK Avatar
Posted By ExperimenterUK
Sun Apr 24 2016, 06:51 PM
This file was hosted by Rapidshare.comRapidshare.c...
aishwar Avatar
Posted By aishwar
Sun Apr 24 2016, 11:02 AM
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Apr 22 2016, 07:29 PM
You will have to post your code and Proteus projec...
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Apr 22 2016, 07:19 PM
If the temperature is below the set point, "if (te...
Yuri_Golden Avatar
Posted By Yuri_Golden
Fri Apr 22 2016, 05:33 PM
Hey Guys, I searched in the forum about a similar ...