Peoples love to interface to a design that mainly related with LCD display, but the only problem is LCDs require both many I/O lines (at least 7) and also need some precise timing or command structure which seen hardly to achieve.
The best way to get rid all the matters is to develop a “front end” to the LCD. By this apply this method to the LCD, it will accept serial data and acquire only one line from the mcu (You need almost no programming effort to display some text with this method).
For this project, you will use the HD44780A LCD controller, as most text displaying LCDs are based on this system. The HD44780A is connects with the host mcu through an 8 bit bi-directional interface (D0-D7) and the other three control lines (E, RS and R/W).
Besides, of the 8 bit interface, the HD44780A supports also a 4-bit interface. The 4 bit mode is nearly the same as the 8 bit mode, the only different is the data transfers between the mcu and LCD controller are to be done in two cycles. Data is being transferred using lines DB7-DB4 lines, while the DB3-DB0 is not used in the 4 bit mode.
The LCD module contains three different blocks, which as:
The Character Generator ROM (CG-ROM)
It’s a factory programmed and contains the mainly 208 characters.
The Character Generator RAM (CG-RAM)
It’s allows the user to define up to eight character, where those characters that are not included in the CG-ROM.
Display Data RAM (DD-RAM)
It’s holds the characters that are genuinely displayed in the LCD.