Specifications

Chapter 6 - Samples
Reading data from the LCD is done in the same way, but control line R/W has to be high. When we
send a high to the LCD, it will reset and wait for instructions. Typical instructions sent to LCD
display after a reset are: turning on a display, turning on a cursor and writing characters from left
to right.
When the LCD is initialized, it is ready to continue receiving data or instructions. If it receives a
character, it will write it on the display and move the cursor one space to the right. The Cursor
marks the next location where a character will be written. When we want to write a string of
characters, first we need to set up the starting address, and then send one character at a time.
Characters that can be shown on the display are stored in data display (DD) RAM. The size of
DDRAM is 80 bytes.
The LCD display also possesses 64 bytes of Character-
Generator (CG) RAM. This memory is used for characters
defined by the user. Data in CG RAM is represented as an 8-
bit character bit-map.
Each character takes up 8 bytes of CG RAM, so the total
number of characters, which the user can define is eight. In
order to read in the character bit-map to the LCD display, we
must first set the CG RAM address to starting point (usually
0), and then write data to the display. The definition of a
'special' character is given in the picture .
Before we access DD RAM after defining a special character, the program must set the DD RAM
address. Writing and reading data from any LCD memory is done from the last address which was
set up using set-address instruction. Once the address of DD RAM is set, a new written character
will be displayed at the appropriate place on the screen.
Until now we discussed the operation of writing and reading to an LCD as if it were an ordinary
memory. But this is not so. The LCD controller needs 40 to 120 microseconds (uS) for writing and
reading. Other operations can take up to 5 mS. During that time, the microcontroller can not
access the LCD, so a program needs to know when the LCD is busy. We can solve this in two
ways.
One way is to check the BUSY bit found on data line D7. This is not the best method because
http://www.mikroelektronika.co.yu/english/product/books/PICbook/6_10Poglavlje.htm (2 of 11) [4/2/2003 16:19:08]