реклама на сайте
подробности

 
 
> Не запускается ЖКИ DG16080
topic starter
сообщение Aug 15 2011, 07:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 30-06-11
Из: Москва
Пользователь №: 65 998



Уважаемые сэнсэи, подсобите, плз!
В одном несложном девайсе на PIC16F877A понадобилось в качестве индикатора использовать ЖКИ DG16080-57S2FBLY
Но он никак не хочет отображать данные.
По-началу думал, что он сам для себя выдает -10В, но оказалось, надо подавать от внешнего источника.
Все равно, вместо отображаемых данных сверху вниз с периодичностью ~300мс пробегает черная полоса спадающей яркости, но данные не выводятся.

Попросил программиста написать простейшую програмку с испытательной сеткой, чтоб хоть как-то оживить экран.
Увы, глухо!
Вот эта програмка. Что не так???

#define wait() DelayUs(5)
#define LCD_GRAPHIC_WIDTH 160
void lcd_graphics_init(void)
{
// unsigned char commandData;
lcd_res_low();// сброс индикатора
lcd_enable_low();
lcd_rs_low();
lcd_cs_low();
DelayMs(1);
lcd_res_high();// резет в 1
DelayMs(50);
// инициализация графического режима
lcd_write_command(0x00,0x32);
lcd_write_command(0x01,0x07);
lcd_write_command(0x02,(LCD_GRAPHIC_WIDTH / 8)-1);
lcd_write_command(0x03,0x4F);
lcd_write_command(0x08,0x00);
lcd_write_command(0x09,0x00);
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
// очистка индикатора
lcd_graphics_clear();
}
void lcd_graphics_clear(void)
{
unsigned int i;
lcd_write_command(0x0A,0x00);// установка в начало
lcd_write_command(0x0B,0x00);
// обнуление
for(i = 0; i < 800; i++)
{
lcd_write_command(0x0C,0x00);
}
// вывод "сетки" для тестовой проверки второй половины экрана
for(i = 800; i < 1600; i++)
{
lcd_write_command(0x0C,0x55);
}
lcd_write_command(0x0A,0x00);// установка в начало
lcd_write_command(0x0B,0x00);
}
//---------------------------------------------
void lcd_write_command(unsigned char command, unsigned char data)
{
lcd_writecom(command);
wait();
lcd_writedat(data);
wait();
}
//--------------------------------------------
void lcd_writedat(unsigned char byte)
{
lcd_rs_low();
lcd_rw_low();
wait();
fnSetLcdData(byte);// вывод байта на шину данных
wait();
lcd_strobe_enable();
}
//------------------------------------------
void lcd_writecom(unsigned char byte)
{
lcd_rs_high();
lcd_rw_low();
wait();
fnSetLcdData(byte);// вывод байта на шину данных
wait();
lcd_strobe_enable();
}
//-------------------------------------------
void lcd_strobe_enable(void)
{
wait();
lcd_enable_high();
wait();
lcd_enable_low();
wait();
}
//--------------------------------------------

Заранее благодарю.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016