how to display text on 16x2 lcd using pic18f4550 microcontroller

4
How to display text on 16x2 LCD using PIC18F4550 Microcontroller Several automated and semi-automated devices require a message to be displayed in order to indicate their working status. In continuation to LCD interfacing with PIC18F4550 , this article explains how to display a message or string on a 16x2 character LCD . In the previous article , a single character was displayed on LCD by properly configuring its data and command registers. A string is nothing but a sequential arrangement of several characters that can be displayed on LCD by using the programming steps mentioned here. The circuit connections and user-defined functions are same as earlier. The LCD data pins are connected to PortB of PIC18F4550 while the control pins are connected to first three pins of PortA. Programming steps: · Configure the LCD. · Store a string in a character array. unsigned char data[20]=“EngineersGarage”; · Run a loop till the loop counter encounters the null character ‘ \0’ of the string. · Use lcddata() function to send individual character values of the string to be displayed on LCD.

Upload: sourav-de

Post on 23-Oct-2015

29 views

Category:

Documents


6 download

DESCRIPTION

How to Display Text on 16x2 LCD Using PIC18F4550 Microcontroller

TRANSCRIPT

Page 1: How to Display Text on 16x2 LCD Using PIC18F4550 Microcontroller

How to display text on 16x2 LCD using

PIC18F4550 Microcontroller

Several automated and semi-automated devices require a message to be displayed in order to indicate their working status. In continuation to LCD interfacing with PIC18F4550, this article explains how to display a message or string on a 16x2 character LCD.

In the previous article, a single character was displayed on LCD by properly configuring its data and command registers. A string is nothing but a sequential arrangement of several characters that can be displayed on LCD by using the programming steps mentioned here. The circuit connections and user-defined functions are same as earlier. The LCD data pins are connected to PortB of PIC18F4550 while the control pins are connected to first three pins of PortA.

Programming steps: · Configure the LCD. · Store a string in a character array.

unsigned char data[20]=“EngineersGarage”; · Run a loop till the loop counter encounters the null character ‘\0’ of the string. · Use lcddata() function to send individual character values of the string to be displayed on LCD.

Page 2: How to Display Text on 16x2 LCD Using PIC18F4550 Microcontroller

Code:

// Program to display text on 16x2 LCD using PIC18F4550

Microcontroller

// Configuration bits

/* _CPUDIV_OSC1_PLL2_1L, // Divide clock by 2

_FOSC_HS_1H, // Select High Speed (HS)

oscillator

_WDT_OFF_2H, // Watchdog Timer off

MCLRE_ON_3H // Master Clear on

*/

//LCD Control pins

#define rs LATA.F0

#define rw LATA.F1

#define en LATA.F2

//LCD Data pins

#define lcdport LATB

void lcd_ini();

void lcdcmd(unsigned char);

void lcddata(unsigned char);

unsigned char data[20]="EngineersGarage";

unsigned int i=0;

void main(void)

{

TRISA=0; // Configure Port A as output

port

LATA=0;

TRISB=0; // Configure Port B as output

port

LATB=0;

lcd_ini(); // LCD initialization

while(data[i]!='\0')

{

lcddata(data[i]); // Call lcddata function

to send characters

// one by one from

"data" array

i++;

Delay_ms(300);

}

}

void lcd_ini()

{

lcdcmd(0x38); // Configure the LCD in

8-bit mode, 2 line and

Page 3: How to Display Text on 16x2 LCD Using PIC18F4550 Microcontroller

5x7 font

lcdcmd(0x0C); // Display On and

Cursor Off

lcdcmd(0x01); // Clear display screen

lcdcmd(0x06); // Increment cursor

lcdcmd(0x80); // Set cursor position

to 1st line, 1st column

}

void lcdcmd(unsigned char cmdout)

{

lcdport=cmdout; //Send command to

lcdport=PORTB

rs=0;

rw=0;

en=1;

Delay_ms(10);

en=0;

}

void lcddata(unsigned char dataout)

{

lcdport=dataout; //Send data to lcdport=PORTB

rs=1;

rw=0;

en=1;

Delay_ms(10);

en=0;

}

Page 4: How to Display Text on 16x2 LCD Using PIC18F4550 Microcontroller