www.botskool.com
TRANSCRIPT
-
7/28/2019 Www.botskool.com
1/6
REGISTER | LOGIN
GEEKS FREE EBOO KS TUTORIALS FORUM O NLINE TOOLS USER PAGES G AMES
Simple 8 bit 16x2 LCD interfacing with PIC 16FLike 12 0 Recommend this on Google
Advertise Here
Enter your email address Subscribe LCD Module Timer LCD LCD Display LCD 4 Line
Jobs Electrician Usajobrapido.com/jobs+electrician+usa
5 New jobs today. Apply now! Jobs ElectricianUsa
IC Programmer+AdapterXeltek.com/ProgrammerAdapter-Saving
Buy Xeltek Programmer & Adapter Together &Get Bundle Discount !
DaniWeb IT Communitywww.daniweb.com
Software Development Discussions Forums,Code Snippets, Tutorials
Broken Your Remote?www.ReplacementRemotes.com
Fix Your Remote With our Simple Key-Pad-Repair-Kit For Cheap!
LED VS LCD AVR LCD LCD Keypad Program Pic
Program Pic Pic 16F628 Pic RS232 I2C LCD
Page 1 of 6Simple 8 bit 16x2 LCD interfacing with PIC 16F | bOtskOOl
20-04-2013http://www.botskool.com/user-pages/tutorials/electronics/simple-8-bit-16x2-lcd-interfaci...
-
7/28/2019 Www.botskool.com
2/6
Control Signals
RS- Register Select
There are 2 very important registers in LCD
Command Code register
Data Register
If
RS=0 Instruction command Code register is selected, allowing user to send command
RS=1 Data register is selected allowing to send data that has to be displayed.
R\W- Read\Write
R\W input allows the user to write information to LCD or read information from it. How do we
read data from LCD????? The data that is being currently displayed will be stored in a buffer
memory DDRAM. This data could be read if necessary.
If
R\W=0 Reading
R\W=1Writing
E- Enable
The enable Pin is used by the LCD to latch information at its data pins. When data is supplied to
data pins, a high to low pulse must be applied to this pin in order for the LCD to latch the data
present in the data pins.
E Toggle
Data Bus- D0-D7
Power for Backlighting LEDs
VDD-Power 5V
Vss-GND
General Explanation
We have to prepare an LCD properly before the character we need, has to be displayed. For this a
number of commands have to be provided to the LCD before inputting the required data. The
commands will be discussed in the later part of this tutorial.
Find us on Facebook
bOtskOOl
Like
2,707 people like bOtskOOl.
Page 2 of 6Simple 8 bit 16x2 LCD interfacing with PIC 16F | bOtskOOl
20-04-2013http://www.botskool.com/user-pages/tutorials/electronics/simple-8-bit-16x2-lcd-interfaci...
-
7/28/2019 Www.botskool.com
3/6
LCD doesnt know about the content (data or commands) supplied to its data bus. It is the user
who has to specify whether the content at its data pins are data or commands. For this, if a
command is inputted then a particular combination of 0s and 1s has to be applied to the Control
lines so as to specify it is a Command on the other hand if a data is inputted at the data lines then
an another combination of 0s and 1s has to be applied to the control lines to specify it is Data.
(Hope you are not confused!!!!). The combinations are as follows-
If
Command RS=0, R\W=0, E=1\0
Data RS=1, R\W=0, E=1\0
Various Commands used in LCDs
Interfacing with PIC
Here 2 ports PORT B and PORT C of PIC 16F877A is taken. PORT B is used for providing control
signals and PORT C is used for providing Data signals.
Of which pins of PORT B are specified as below.
RB0 RS
Page 3 of 6Simple 8 bit 16x2 LCD interfacing with PIC 16F | bOtskOOl
20-04-2013http://www.botskool.com/user-pages/tutorials/electronics/simple-8-bit-16x2-lcd-interfaci...
-
7/28/2019 Www.botskool.com
4/6
RB1 R\W
RB2 E
Programming Steps
Before sending Data to be Displayed to the LCD, it should be prepared to
hold that particular value.
For this certain initializations are to be done as per the Instructions.
Move Value 0X38, 3 times.( Applied max 3 times due to rise time factor) Move Value 0X06, 1 time.
Move Value 0X0F, 1 time.
After each initializations command function and delay should be called.
After Initialization Move Data to the LCD
Call the Data Function and delay.
( 2 functions , one for command and the other for data is being written for the simplicity of the
program)
Program
#include"pic.h"
#include"delay.h"
void main()
{
void command(); //function for command manipolation
void data(); //function for data manipulation
int i;
char a[ ]={"bOtskOOl-hari"};
TRISC=0X00; //Made Port C Out put port (to use with in main function)
TRISB=0X00; //Made Port B output port (to use with outer function)
DelayMs(1);
PORTC=0X38; //to select the mode of the LED 0X38 - 8 bit 2 lines
command(); // Call command function, shows that the given values are commands and not datas
DelayMs(1);
PORTC=0X38; //to select the mode of the LED 0X38 - 8 bit 2 lines
command(); // Call command function
DelayMs(1);
PORTC=0X06; // to activate entry mode
command();
DelayMs(1);
PORTC=0X0F; //to get a blinking curser display
command();
DelayMs(1);
for(i=0;i
-
7/28/2019 Www.botskool.com
5/6
data(); //To show that the given values are data
DelayMs(1);
}
while(1);
}
void command() //command function definition
{
RB0=0;
RB1=0;
RB2=1;
DelayUs(1);
RB2=0;
}
void data() //data function definition
{
RB0=1;
RB1=0;
RB2=1;
DelayUs(1);
RB2=0;
}
PIC SIMULATOR IDE VIEW
- HARI
www.haripanangad.co.cc
Like 12 0 Recommend this on Google
Page 5 of 6Simple 8 bit 16x2 LCD interfacing with PIC 16F | bOtskOOl
20-04-2013http://www.botskool.com/user-pages/tutorials/electronics/simple-8-bit-16x2-lcd-interfaci...
-
7/28/2019 Www.botskool.com
6/6
Submitted by claudio1971 on Thu, 2012-12-13 19:53. #1
Member since:13 December 2012
Last activity:18 weeks 15 hours
Submitted by HARI on Sat, 2009-05-02 15:28. #2
Member since:10 March 2009
Last activity:3 years 34 weeks
Submitted by shobhitkukreti on Sat, 2009-05-02 12:49. #3
Member since:28 April 2009
Last activity:3 years 2 weeks
Tags: Electronics
Login orregisterto post comments
Comments
Hi i try to write your code successfully , i want create my own application
for lcd , i have just a question : how can i set line 2? you repeat just 2
times 0x38 but some display require 3 times , there is a reason for it? (to
me work properly)
Thank's :)
claudio
Login orregisterto post comments
Its HITECH PIC C
Login orregisterto post comments
Which compiler have you utilised ?
Login orregisterto post comments
bOtskOOl websiteby bOtskOOl is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 India License .Permissions beyond the scope of this license may be available at http://www.botskool.com/contact.
bOtskOOl.com Privacy Policy - bOt-XchangeProduct Listing Policy - Intellectual Property Rights (IPR) Protection Policy
Page 6 of 6Simple 8 bit 16x2 LCD interfacing with PIC 16F | bOtskOOl