
  ЖКИ представляет собой 10-разрядный индикатор, имеющий простой
2-х проводный интерфейс, а также встроенные часы и таймер.
  Вывод данных на индикатор осуществляется побитно по линии DI, последовательным
четырехбитным кодом, начиная с младшего бита. Выводимый бит стробируется отрицательным
перепадом на линии CLK. Выведенный символ печатается с правого разряда индикатора
и сдвигается влево по приходе следующего символа.
  Далее приводится текст программы на языке С для управления индикатором PIC-контроллером.
  Схема включения:
0-бит порта В - CLK LCD
1-бит порта В - DI LCD
/*-------------начало примера-------------*/
.
.
.
#define zero 10
#define blank 0
char lcd_code [10] = {zero, 1, 2, 3, 4, 5, 6, 7, 8 ,9 };
char display [10];
char tmp;
char temp;
void outDigit (char data) {
for (tmp=0; tmp<4; tmp++) {
asm bsf PORTB, 0; // CLK - up
if (data&8 == 8)
asm bsf PORTB, 1; // бит данных - 1
else
asm bcf PORTB, 1; // бит данных - 0
data = data << 1;
asm bcf PORTB, 0; // CLK - down
}
char convert(long value, long mod, long div) {
return ((value % mod) / div);
}
outString( long value, char pos) { // вывод числа value с позиции pos
char temp;
for ( temp = 1; temp < 11; temp++)
display [temp] = blank;
display [pos + 3] = lcd_code[ convert(value, 10, 1) ];
display [pos + 2] = lcd_code[ convert(value, 100, 10) ];
display [pos + 1] = lcd_code[ convert(value, 1000, 100) ];
display [pos ] = lcd_code[ convert(value, 10000, 1000) ];
for ( temp = 1; temp < 11; temp++) {
outDigit( display[temp]);
}
}
.
.
.
/* пример использования - вывод чисел от 0000 до 9999 на индикатор с 5-й позиции */
for (i=0; i<10000; i++) {
outString(i, 5);
delay_ms(250);
}
/*-------------окончание примера-------------*/