A moving message display is ideal to get your message (advertisements, greetings, etc) across in an eye-catching way. You can make an LCD show a brief moving message by interfacing it to a microcontroller. Here’s an AVR-based moving message display that uses a 16×2 LCD display incorporating HD44780. The 16×2 LCD can display 16 characters per line and there are two such lines.
Moving message display circuit
Fig. 1 shows the circuit for AVR ATmega16-based moving message display on an LCD. It consists of an ATmega16 microcontroller, a 16×2 LCD, an SPI6 connector and a power supply section.

To derive the power supply for the circuit, 230V AC mains is stepped down by a 9V, 250mA secondary transformer, rectified by bridge rectifier module BR1A and filtered by capacitor C1. The voltage is regulated by a 7805 regulator. LED1 glows to indicate the presence of power in the circuit. The regulated 5V DC powers the entire circuit including SPI6 connector.
Port-C pins PC4 through PC7 of the microcontroller (IC2) are connected to data lines D4 through D7 of the LCD. The LCD control lines—read/write (R/W), register-select (RS) and enable (E)—are connected to PD6, PC2 and PC3 of IC2, respectively.
Why AVR microcontroller?
AVR is faster and more powerful than 8051 microcontroller, yet reasonably cheaper and in-circuit programmable. Most AVR development software are free as these are Open Source. Moreover, discussions and tutorials on the AVR family of processors are available on the Internet.
ATmega16 is a high-performance, low-power 8-bit AVR microcontroller. It has 16 kB of in-system self-programmable flash, 1 kB of internal SRAM, 512 bytes of EEPROM, 32×8 general-purpose working registers and JTAG Interface (which supports programming of flash, EEPROM, fuse and lock bits).
On-chip peripheral features
1. Two 8-bit timers/counters with separate pre-scaler and compare modes
2. One 16-bit timer/counter with separate pre-scaler, comparator and capture modes
3. Four pulse-width-modulation channels
4. 8-channel, 10-bit analogue-to-digital converter
5. Byte-oriented two-wire serial interface
6. Programmable serial USART
7. Master/slave serial peripheral interface
8. Programmable watchdog timer with separate on-chip oscillator
LCD display module
The project uses a Hitachi HD44780-controlled LCD module. The HD44780 controller requires three control lines and four or eight input/output (I/O) lines for the data bus. The user may choose to operate the LCD with a 4-bit or 8-bit data bus. If a 4-bit data bus is used, the LCD will require a total of seven data lines—three lines for sending control signals to the LCD and four lines for the data bus. If an 8-bit data bus is used, the LCD will require a total of eleven data lines—three control lines and eight lines for the data bus.
Here in this project, 3 codes are given namely movm.c,lcd2.c and lcd2.h . I am confused among these 3 codes which code to be burn in the IC. Please give me the suitable suggestion.
How to calculate the value of c1 & c2. Pls tell the for this
Plz provide me the source code of this project