Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: И снова дисплеи от WINSTAR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Зверюга
Господа, прикупил себе индикатор WH0802A. Подключал - парился, не смог запустить. МНого интересного прочитал в форуме про работу с ним, завтра налажу осциллограф и буду смотреть сигналы.

А начать дифференциальную диагностику мертвого дисплея от кривых рук хочу с описания следующего симптома:

итак - у меня дисплей с синими негативными кристаллами, и белой подсветкой. То есть на синем фоне по идее должны появляться белые буквы.
Включаю дисплей (подсветку питаю от питания контроллера напаяв на специально для этого предназначенные площадки по одному 36 Ом резистору), питание 4,5 вольт.
Контрастность: подключаю подстроечник на 10 кОм, движок посередине - ничего особенного. Двигаю движок к минусу - нижняя строка сначала темнеет, потом становится светло-рыжего цвета. Почему-то только нижняя строка. Верхняя строка вся синяя.

Ваши мнения - это нормально?
Alex11
Нормально, пока дисплей не проинициирован. Т.е. питание и контраст подведены верно.
Зверюга
Хм...

А почему только одна строка? И почему она рыжая? Контраст нужно настраивать до черного (точнее до темно-синего) или до рыжего?

Теперь по поводу инициализации вот стандартная библиотечная функция CodeVision:

Код
unsigned char lcd_init(unsigned char lcd_columns)
{
#asm
    cbi   __lcd_port,__lcd_enable;EN=0
    cbi   __lcd_port,__lcd_rs;RS=0
#endasm
_lcd_maxx=lcd_columns;
_base_y[2]=lcd_columns+0x80;
_base_y[3]=lcd_columns+0xc0;

_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x30);
_long_delay();
_lcd_init_write(0x20);
_long_delay();
_lcd_write_data(0x28);
_long_delay();
_lcd_write_data(4);
_long_delay();
_lcd_write_data(0x85);
_long_delay();
#asm
    in    r26,__lcd_direction
    andi  r26,0xf            ;set as input
    out   __lcd_direction,r26
    sbi   __lcd_port,__lcd_rd;RD=1
#endasm

if (lcd_read_byte0()!=5) return 0;

_lcd_ready();
_lcd_write_data(6);
lcd_clear();
return 1;
}



Эта функция завершается с возвращением нуля.
При дальнейшем lcd_goto_xy программа зависает, причем на портах PC0 и PC1 у меня светодиоды, так вот они горят в полнакала, и гаснут, когда прикасаешься пальцами к пайке разъема на индикаторе.
EugeNNe
Проверьте подключение. Правильно ли от контроллера к дисплею сигналы подключены.... С ВинСтарами была похожая история с зависанием когда на схеме перепутали линии данных... А вообщем часто их пользуем и без проблем....
Зверюга
Спасибо! Все ОК, одна линия не контачила а ведь я после пайки проверял. Видимо оборвал в процессе...

Вопрос только в том - как правильно русскими буквами баловаться - вместо "абв" выводит "ДЦа"
Собственно, если из CodeVision скопировать русский текст и вставить скажем в форум, получаются крякозяблики...
EugeNNe
Про русские буквы... Тама таблица кодировки хитрая.... Посмотрите в доке... Так что просто так вывести "Доброе утро, дядя Вася..." не получится....
Сергей Борщ
Цитата(Зверюга @ Dec 7 2008, 13:31) *
Вопрос только в том - как правильно русскими буквами баловаться - вместо "абв" выводит "ДЦа"
Вот:
http://electronix.ru/forum/index.php?s=&am...st&p=511086
Цитата(Зверюга @ Dec 7 2008, 13:31) *
Собственно, если из CodeVision скопировать русский текст и вставить скажем в форум, получаются крякозяблики...
Похоже на это
SysRq
Цитата(Зверюга @ Dec 7 2008, 14:31) *
Вопрос только в том - как правильно русскими буквами баловаться - вместо "абв" выводит "ДЦа"

Вот тут есть несколько реализаций перекодирования: тыц. Может и кодовая страничка готовая есть..
Зверюга
Спасибо SysRq! Сделал гибрид из тех способов, что нашел по вашей ссылке - все отлично работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.