EngineersGarage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise
You are here: Home / Replies / Thank u Sir…This is the

Thank u Sir…This is the

|

Microcontroller › AVR › Interfacing LCD using AVRatmega32 with 4 bit mode › Thank u Sir…This is the

December 22, 2012 at 12:54 pm #8873
BhanuKiran Chaluvadi
Participant

Thank u Sir…

This is the final code and its working…

 

 

// Program to interface LCD in 4 bit mode with AVR microcontroller
//#define F_CPU 12000000UL
#include<avr/io.h>
#include<util/delay.h>
#include<inttypes.h>
 
#define rs PD3
#define rw PD6
#define en PB4
 
void lcd_init(void);
void dis_cmd(char);
void dis_data(char);
void lcdcmd(char);
void lcddata(char);
 
int main(void)
{
unsigned char data0[11]=”JAI”;
unsigned char data1[10]=”BALAYYA”;
 
int i=0;
DDRA=0xFF;
DDRD=0xFF; //modified
DDRB=0xFF; //modified
 
lcd_init();
 
while(data0!=’’)
{
dis_data(data0);
_delay_ms(200);
i++;
}
 
dis_cmd(0xC5);
 
i=0;
while(data1!=’’)
{
dis_data(data1);
_delay_ms(200);
i++;
}
 
while(1);
}
 
 
 
void lcd_init() // fuction for intialize 
{
dis_cmd(0x02); // to initialize LCD in 4-bit mode.
dis_cmd(0x28); //to initialize LCD in 2 lines, 5X7 dots and 4bit mode.
dis_cmd(0x0C);
dis_cmd(0x06);
dis_cmd(0x83);
}
 
void dis_cmd(char cmd_value)
{
char cmd_value1;
 
cmd_value1 = (cmd_value>>4) & 0x0F; //mask lower nibble because PA4-PA7 pins are used. 
lcdcmd(cmd_value1); // send to LCD
 
cmd_value1 = ((cmd_value) & 0x0F); //shift 4-bit and mask
lcdcmd(cmd_value1); // send to LCD
}
 
 
void dis_data(char data_value)
{
char data_value1;
 
data_value1=(data_value>>4)&0x0F;
lcddata(data_value1);
 
data_value1=((data_value)&0x0F);
lcddata(data_value1);
}
 
void lcdcmd(char cmdout)
{
PORTB=cmdout;
PORTD&=~(1<<rs);
PORTD&=~(1<<rw);
PORTB|=(1<<en);
_delay_ms(1);
PORTB&=~(1<<en);
}
 
void lcddata(char dataout)
{
PORTB=dataout;
PORTD|=(1<<rs);
PORTD&=~(1<<rw);
PORTB|=(1<<en);
_delay_ms(1);
PORTB&=~(1<<en);
}
 
 

RSS feed: Recent Posts Recent Posts

  • Subject: [FS] Soviet Vintage Electronic Components (Capacitors, Transistors, ICs, Relays, Vacuum Tubes) October 13, 2026
  • Request for a 5W transistor controlled LED flash light controller circuit review October 12, 2026
  • Frustration, single phase, high KW, high voltage battery charge module, rectifier. October 12, 2026
  • Delco alternator (12SI) AC-tap - what is the mate to this connector called and where to find it? October 11, 2026
  • Voltage divider response time - is it relevant? October 11, 2026

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2026 Arrowfly LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of Arrowfly
Privacy Policy | Advertising

Search Engineers Garage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise