для 51(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено RUAL 20 января 2004 г. 11:26
В ответ на: tut nedavno probigal C cod raboty s LCD 4bit mode podska*ite esho raz Pliz отправлено KA 20 января 2004 г. 10:49

#define IR 0
#define DR 1

void lcd_wr (char simb, bit id);
char lcd_rd (bit id);

#ifdef _LCD_4L_ //---------- 4-х проводная шина ЖКИ --------------

void lcd_init (void)

{
unsigned int i;
RW = RS = 0;
E = 0;
LCDP = 0x30;
E = 1; E = 0;
for (i=0; i <1000; i++);
E = 1; E = 0;
for (i=0; i <253; i++);

E = 1; E = 0;
LCDP = 20;
E = 1; E = 0;
LCDP |= 0xF0;
while (i = lcd_rd(IR) < 0);
lcd_wr (0x28,IR);
while (lcd_rd(IR) < 0);
lcd_wr (0x0c,IR);
while (lcd_rd(IR) < 0);
lcd_wr (0x06,IR);
while (lcd_rd(IR) < 0);
lcd_wr (0x80,IR);

}

void lcd_wr (char simb, bit id)
{
RS = id;
RW = 0;
LCDP = (simb & 0xF0) | (LCDP & 0x0F);
E = 1; E = 0;
LCDP=((simb << 4) & 0xF0) | (LCDP & 0x0F);
E = 1;
E = 0;
RW = 0;
LCDP |= 0xF0;
}

char lcd_rd (bit id)
{
char simb;
RS = id;
E = RW = 1;
simb = LCDP & 0xF0;
E = 0; E = 1;
simb |= (LCDP >> 4) & 0x0F;
E = 0;
RW = 0;
return simb;
}

#endif

#ifdef _LCD_8L_ //---------- 8-ми проводная шина ЖКИ --------------


void lcd_init (void)

{
unsigned int i;
RW = RS = 0;
E = 0;
LCDP = 0x30;
E = 1; E = 0;
for (i=0; i <1000; i++);
E = 1; E = 0;
for (i=0; i <253; i++);
E = 1; E = 0;
LCDP = 30;
E = 1; E = 0;
LCDP |= 0xF0;
while (i = lcd_rd(IR) < 0);
lcd_wr (0x38,IR);
while (lcd_rd(IR) < 0);
lcd_wr (0x0c,IR);
while (lcd_rd(IR) < 0);
lcd_wr (0x06,IR);
while (lcd_rd(IR) < 0);
lcd_wr (0x80,IR);
}


void lcd_wr (char simb, bit id)
{
RS = id;
RW = 0;
LCDP = simb;
E = 1; E = 0;
RW = 0;
LCDP |= 0xFF;
}

char lcd_rd (bit id)
{
char simb;
RS = id;
E = RW = 1;
simb = LCDP & 0xF0;
E = 0;
RW = 0;
return simb;
}

#endif

void printlcd(char addr, char data *str)
{
char i;
while(lcd_rd(IR) < 0);
lcd_wr(addr | 0x80, IR);
for (i=0; str[i]!=0 && i < 16; i++)
{
while(lcd_rd(IR) < 0);
lcd_wr(str[i],DR);
}
}


<\bp>

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru