Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Atmega lcd programing_with_header_file
1. #include<avr/io.h> //include avr header file
#include<util/delay.h> //include delay header file
#define LCD_PRT PORTC // define portb as a lcd port
#define LCD_DDR DDRC //define ddr for lcd
/*#define LCD_PIN PINB
#define LCD_RS 0
#define LCD_RW 1
#define LCD_EN 2*/
void lcdcommand( unsigned char cmnd )
{
//to send higher bit of cmnd to LCD_PRT
LCD_PRT=(LCD_PRT & 0X0F) | (cmnd & 0XF0); //masking of portb in nibbles
LCD_PRT = (LCD_PRT&0b11111100); //FOR MAKING RS=0, RW=0
LCD_PRT = (LCD_PRT|0b00000100); //FOR MAKING EN=1
_delay_us(100);
LCD_PRT = (LCD_PRT&0b11111011); //FOR MAKING EN=0
_delay_us(500);
//to send lower bit of cmd to LCD_PRT
LCD_PRT=(LCD_PRT & 0X0F) | (cmnd << 4);
LCD_PRT = (LCD_PRT|0b00000100);/*FOR MAKING EN=1*/
_delay_us(100);
LCD_PRT = (LCD_PRT&0b11111011);/*FOR MAKING EN=0*/
_delay_us(500);
}
void lcddata( unsigned char data ) //Function to send data to LCD
{
LCD_PRT = (LCD_PRT & 0x0F) | (data & 0xF0); //to send higher bit of cmnd to
LCD_PRT
LCD_PRT = (LCD_PRT|0b00000001); /*FOR MAKING RS=1*/
LCD_PRT = (LCD_PRT&0b11111101); /*FOR MAKING RW=0*/
LCD_PRT = (LCD_PRT|0b00000100); /*FOR MAKING EN=1*/
_delay_us(100);
LCD_PRT = (LCD_PRT&0b11111011); /*FOR MAKING EN=0*/
_delay_us(500);
LCD_PRT = (LCD_PRT & 0x0F)|(data<<4); //to send lower bit of data to
LCD_PRT
LCD_PRT = (LCD_PRT|0b00000100); /*FOR MAKING EN=1*/
_delay_us(100);
LCD_PRT = (LCD_PRT&0b11111011); /*FOR MAKING EN=0*/
_delay_us(500);
}
void lcd_init() //Function to initialize the LCD
{
LCD_DDR=0xFF; //LCD port as output port
2. LCD_PRT = (LCD_PRT&0b11111011); //FOR MAKING EN=0
lcdcommand(0x33);
_delay_us(1000);
lcdcommand(0x32);
_delay_us(1000);
lcdcommand(0x28); //these three command are for 4 bit LCD
mode
_delay_us(1000);
lcdcommand(0x0E); //display on cursor on
_delay_us(1000);
lcdcommand(0x01); //to clear display
_delay_us(1000);
lcdcommand(0x06); //shift the cursor to right
_delay_us(1000);
}
void lcd_gotoxy(unsigned char x,unsigned char y) // Function to set a
starting position on 16x2 LCD
{
unsigned char firstcharadr[]={ 0x80, 0xC0};
lcdcommand(firstcharadr [y-1]+x-1);
_delay_us(2000);
}
void lcd_puts(char *str) // Function to send a string to LCD
{
unsigned char i=0;
while(str[i]!=0)
{
lcddata(str[i]);
_delay_ms(1000);
i++;
}
}
void lcd_clr(void) // Function to clear the lcd
{
lcdcommand(0x01);
_delay_ms(2000);
}
int main(void)
{
lcd_init();
while(1)
{
lcd_gotoxy(1,1);
lcd_puts("E&C");