For basic details and operations of character LCD, refer LCD interfacing with 8051. Here LCD has been interfaced in 8-bit mode* with data pins (D0-D7) connected to PortB of PIC18F4550. The LCD control pins RS, R/W and EN are connected to PortA pins RA0, RA1 and RA2 respectively.
Before displaying anything on LCD, it needs to be configured with proper instructions. The following programming steps explain the procedure of configuring the LCD and display a character on it.
Step 1: Initialize the LCD.
The LCD must be initialized the by following pre-defined commands of character LCD.
· 0x38, to configure the LCD for 2-line, 5x7 font and 8-bit operation mode
· 0x0C, for Display On and Cursor Off
· 0x01, to Clear Display screen
· 0x06, to increment cursor
· 0x80, to set cursor position at first block of the first line of LCD.
The above set of commands is written in lcd_ini() function of the adjoining code.
Step 2: Send the commands to LCD.
· Send the command byte to the port connected to LCD data pins
· RS=0, to select command register of LCD
· RW=0, to set the LCD in writing mode
· EN=1, a high to low pulse to latch command instruction
· Delay of 1ms
The above set of commands is written in lcdcmd(unsigned char) function.
Step 3: Send data to LCD.
· Send data at the port which connected to LCD data pins
· RS=1, register select to select data register of LCD
· RW=0, this set the LCD in writing mode
· EN=1, a high to low pulse to latch data
· Delay of 1ms
The lcddata(unsigned char) function has the above set of instructions.
Step 4: Display character on LCD.
The functions lcdcmd() and lcddata() are user-defined functions. They are used to send a character (E in this case) to be displayed on LCD.
lcdcmd(0x38); // send command 0x38 to LCD
lcddata(‘E’); // send character E to LCD