|
#define IR 0 void lcd_wr (char simb, bit id); #ifdef _LCD_4L_ //---------- 4-х проводная шина ЖКИ -------------- void lcd_init (void) { E = 1; E = 0; } void lcd_wr (char simb, bit id) char lcd_rd (bit id) #endif #ifdef _LCD_8L_ //---------- 8-ми проводная шина ЖКИ -------------- { char lcd_rd (bit id) #endif void printlcd(char addr, char data *str)
E-mail:
info@telesys.ru
#define DR 1
char lcd_rd (bit id);
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++);
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);
{
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 simb;
RS = id;
E = RW = 1;
simb = LCDP & 0xF0;
E = 0; E = 1;
simb |= (LCDP >> 4) & 0x0F;
E = 0;
RW = 0;
return simb;
}
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 simb;
RS = id;
E = RW = 1;
simb = LCDP & 0xF0;
E = 0;
RW = 0;
return simb;
}
{
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>
Ответы