//PD0 = d7
//PD1 = d6
//PD2 = d5
//PD4 = d4
//PB4 = rs
//Rw = GNd
//PB3 = en
//first make port as output
void lcd_command(unsigned char cmd)
{
}
unsigned char cmd;
void setup() {
DDRB |= (1<<PB4) | (1<<PB3); // port b set as output
DDRD |= 0xff; // port d set as output
cmd = 0x38;
//PORTD |= cmd>>4;
PORTD = (PORTD & 0xF0) | (cmd >>4 & 0x0f);
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
PORTD = cmd & 0x0f;
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
cmd = 0x06;
//PORTD |= cmd>>4;
PORTD = (PORTD & 0xF0) | (cmd >>4 & 0x0f);
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
PORTD = cmd & 0x0f;
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
cmd = 0x0c;
//PORTD |= cmd>>4;
PORTD = (PORTD & 0xF0) | (cmd >>4 & 0x0f);
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
PORTD = cmd & 0x0f;
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
cmd = 0x01;
//PORTD |= cmd>>4;
PORTD = (PORTD & 0xF0) | (cmd >>4 & 0x0f);
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
PORTD = cmd & 0x0f;
PORTB &= ~(1<<(PB4));
PORTB |= (1<<PB3);
_delay_ms(10);
PORTB &= ~(1<<PB4);
}
void loop()
{
}