Цитата(Nekromant @ Feb 26 2010, 03:05)

нету этого самого отрицательного напряжения. если быть точным -0,128В
Значит либо ошибка в инициализации, либо в подключении, либо убитый дисплей. Покажите вашу схему подключения.
По вашему коду: ужас. С таким кодом не будет работать даже правильно подключеный исправный дисплей

.
1) Не вижу настройки выводов группы LCD_CTRL на вывод.
2)
Код
LCD_CTRL_PORT|= (0 << LCD_E);// LCD_E=0;
комментарий не соответствует коду. Код не имеет смысла. Чтобы код делал то, что написано в комментарии, он должен быть таким:
Код
LCD_CTRL_PORT &= ~(1 << LCD_E);
Таких мест в вашем коде очень много, не буду перечислять все.
3)
Код
//При необходимости настроить здесь шину данных на вывод
LCD_CTRL_PORT|= ((0 << LCD_RW)&&(cd << LCD_DI)&&(l << LCD_CS1)&&(r << LCD_CS2));
Этот код тоже делает не то, что вы ожидаете. Этот код делает то же самое, что и предыдущий: LCD_CTRL_PORT |= 0, т.е. ничего. Вы путаете логические и двоичные операции, функции "ИЛИ" и "И". Надо было написать:
Код
LCD_CTRL_PORT &= ~(1 << LCD_RW); // LCD_RW = 0
LCD_CTRL_PORT |= (cd << LCD_DI) | (l << LCD_CS1) | (r << LCD_CS2);
или, если на этом порту больше ничего не подключено, так:
Код
LCD_CTRL_PORT = (0 << LCD_RW) | (cd << LCD_DI) | (l << LCD_CS1) | (r << LCD_CS2);
А потом посмотрите в листинг и сравните с таким кодом:
Код
LCD_CTRL_PORT &= ~((1 << LCD_RW) | (1 << LCD_DI) | (1 << LCD_CS1) | (1 << LCD_CS2));
if(cd)
LCD_CTRL_PORT |= (1 << LCD_DI);
if(l)
LCD_CTRL_PORT |= (1 << LCD_CS1);
if(r)
LCD_CTRL_PORT |= (1 << LCD_CS2);
Потом вы можете заметить, что функция WriteByte() всегда вызывается или с r=1, l=0 или с r=0, l=1. Так зачем передавать в нее два взаимно однозначных параметра? Достаточно передвать лишь один.
4)
Код
_delay_ms(140); //Это время предустановки адреса (tAW)
Вы не попутали миллисекунды и наносекунды?
5) В закомментированном коде ReadByte() есть настройка шины данных индикатора на вывод данных, но нет настройки порта меги на ввод. Аналогично и для WriteByte() - есть настройка индикатора на ввод, но нет настроки порта меги на вывод.
Есть еще огромный простор для оптимизации.