The Introduction for HD44780-based LCDs with AVR Microcontroller
Most of you’ve heard of the HD44780 before, but do you really know what is the behind story for this buddy?
Today, you will learn and gain knowledge, from the very beginning part of the HD4780-based displays to its software part.
Ok, let’s get the learning party started…
The HD44780 LCDs with AVR Microcontroller
You can simply apply the HD44780-based LCDs displays to be operated, either in 4-bit or 8-bit mode. If you selecting the 4-bit mode, the two nibbles of each bytes is sent in a sequence on the high 4 bits of the data bus, such as in this order: DB7…DB4 and the low bits, DB3-DB0 are not connected.
Beside that, there are also the RS (Register Select) lines, which use to determine if the information should be interpreted as data or a command. The R/W (Read/Write) line plays its important role to switch the data direction between the module and the microcontroller.
Software Part
If you a layback person, then it’s better for you to find some existing code than write it in your own. Well, the different libraries exist for use with assembler or C. You can try the lcd16 code by Ron Kreymborg, as it’s a very simple and only made for 2×16 character displays, which immensely suitable for the new beginners.
Above figure is the schematic diagram for this project, you can refer it and it should be help your project becoming easier. Few important links that may help to master LCD:
- Peter Ouwehand’s How to control a HD44780-based Character-LCD.
- LCD Module FAQ by Christopher Burian.
- Ron Kreymborg’s lcd16 library for AVR’s with avrgcc.
- Procyon AVRlib. Library of a lot of C-functions for AVR-controllers, including a more comprehensive HD44780-library.
- AVR-Tutorial – 4. LCD. Describes how to use a HD44780 with an AVR microcontroller programmed in assembler (in German).
- Using An LCD In 4 bit Mode. Another introduction to HD44780’s and AVR in assembler.
- Scott Bruck’s LCD FAQ Describes the physics and principles of operation of LCDs.


