Спойлер
Код: Выделить всё
void strob(void)
{
E1;
_delay_us (2);
E0;
_delay_us(2);
}
void Initialization (void) // Определяем функцию инициализации //
{
DDRLC = poryd; // подключенные к жки устанавливаем в 1- выходы, два не использующихся оставляем как входы
PORTLC = 0x00; // устанавливаем на выходах 0, где по условию RS and RW также должны быть = 0.
_delay_ms (20); // Wait time > 15 ms
RS0; // command mode
PORTLC = (0x30 & 0xF0);
strob();
_delay_ms (5); // Wait time > 4.1 ms
PORTLC = (0x30 & 0xF0);
strob();
_delay_us (120); // Wait time > 100 us
PORTLC = (0x30 & 0xF0);
strob();
PORTLC = (0x20 & 0xF0); // set 4-bit mode
strob();
command_lcd (0x20); // 0010 0000 rw=0, rs=0
command_lcd (0xc0); // 1100 0000 rw=0, rs=0
command_lcd (0x10); // 0001 0000 rw=0, rs=0 Display clear
command_lcd (0x60); // 0110 0000 rw=0, rs=0 Entry mode set
}
void command_lcd (unsigned char cmd)
{
_delay_us(50);
RS0; // command mode
PORTLC = (cmd & 0xF0); // Передаем старший полубайт *1111 0000
strob();
PORTLC = ((cmd & 0x0F) << 4); // Передаем младший полубайт * 0000 1111
strob();
}
void data_lcd (unsigned char data)
{
_delay_us(50);
RS1; // data mode
PORTLC = (data & 0xF0); // Передаем старший полубайт *1111 0000
strob();
PORTLC = ((data & 0x0F) << 4); // Передаем младший полубайт * 0000 1111
strob();
}


