Полная версия этой страницы:
LCD Дисплей
fpmoleg
Dec 7 2007, 14:47
Привет.
Я заказал LCD диспдей. Подключил к микроконтроллеру (AVR ATmega128) - сделал все как в мануале. При включении ничего не видно, то есть даже подсветка на ЛСД не загорелась.
На контактах RS(register select) и R/W(read/write) стоят еденицы - поссмотрел осциллографом, а должны быть 0. Смотрел настройки мк - там стоят 0.
Как можно протестить ЛСД дисплей что он не поломан ?
какой LCD? как подключена подсветка, что на ноге мк при отключенном LCD?
Wildcat
Dec 7 2007, 21:52
Проверьте эл. схему.

Как бы банально это не звучало.
Укажите модель дисплея. У тех, с которыми имел дело я, подсветка подключалась отдельно.
kolisnichenko_r
Dec 8 2007, 09:12
Wildcat прав, такое часто случается при неправильной сборке, ошибки в схеме. Питание на индикатор подается? При подключеном питании на индикаторе появляются сегменты с низкой контрасностью.
Если хотите услышать конкретный ответ, укажите точное название вашего дисплея, приведите схему, как он у Вас подключен.
Типов дисплеев достаточно много, а навыками телепатов обладают немногие люди

Пока этой информации не дадите, никто не сможет Вам помочь, даже если очень захочет.
fpmoleg
Dec 19 2007, 16:52
Приношу извенения, что не отвечал на пост.
Модель ЛСД: TRIMODS1546 — TRIDENT — LCD 20X4 (цифро-буквенный).
На понели ЛСД есть 16 хводов:
1. GND
2. Vdd - сюда подал 5 вольт
3. V5 - сюда подал напряжение через переменный резистор в 10К.
4. RS - Register Select ()
5. R/W- Read/Write
6. E - Enable
7-14 - Data bus
15 - Anode
16 - Cathod
При подключении ЛСД на портах 4,5,7-14 наблюдается напряжение до 5 вольт. Так и должно быть ?. На ЛСД видно заполненные все сегменты, через строку.
Цитата(fpmoleg @ Dec 19 2007, 19:52)

3. V5 - сюда подал напряжение через переменный резистор в 10К.
Это описка или нет? Подали через резистор или с движка резистора? А то вполне может быть засветка всех сегментов.
Ну в общем все верно, но нужно уточнить 3-ю ногу (см пост выше). После включения у вас все ноги данных и будут в 1, это нормально. Сегменты через строку свидетельствуют о работе по крайней мере внутреннего контроллера ЛСД. Поворотом резистора должна меняться контрастность вышеупомянутых сегментов. Обьясните вашу фразу "даже посветка не загорелась", как у вас подключена подсветка (подробно). А вообще если программа составлена верно, то уже должен работать. Ответьте на заданные вопросы и покажите код инициализации и засылки байтов на ЛСД. Ну и тип контроллера на борту уточните (лень искать, сам с таким не работал)
rv3dll(lex)
Dec 20 2007, 05:40
Цитата(gte @ Dec 19 2007, 20:45)

Это описка или нет? Подали через резистор или с движка резистора? А то вполне может быть засветка всех сегментов.
даже через 10 ком будет показывать
kolisnichenko_r
Dec 20 2007, 06:25
Цитата(fpmoleg @ Dec 19 2007, 20:52)

3. V5 - сюда подал напряжение через переменный резистор в 10К.
Садите его (3. V5 ) на корпус, просто и надежно
fpmoleg
Dec 20 2007, 10:48
>Это описка или нет? Подали через резистор или с движка резистора? А то вполне может быть засветка всех сегментов.
На одну ногу подал землю, на другую - 5 В, среднюю соеденил с ЛСД. Подкрутил и увидел что на ЛСД засветились сегменты через строку.
С подсветкой пока не игрался, сейчас хочу вывести "Hello world" на экран.
Контроллер в ЛСД - M6800 (не уверен)
В проекте используется ATmega128. Компилятор WinAVR
программа инициализации:
// PORTA.0 - R/W (read / write)
// PORTA.1 - RS (registetr select, H=data, L=instruction)
// PORTA.2 - E (enable)
// PORTB - Data Bus
void lcd_init(void){
/********************
* Function set: 2-line mode, 5x8 dots
*/
sbi(PORTA,2);
cbi(PORTA,1);
cbi(PORTA,0);
PORTB = 0x38;
_delay_us(39);
// Display ON/OFF Control
PORTB = 0x0E;
_delay_us(39);
// Display Clear
PORTB = 0x01;
_delay_ms(1.53);
// Entry Mode Set
PORTB = 0x07;
}
Пр-ру по отображению символов еще не кнопал - хочу разобраться с инициализайией.
Порты А и В настроены на выход.
PS: в прикрепленном файле, мануал на ЛСД (все что у меня с сайта, где я заказывал ЛСД)
rezident
Dec 20 2007, 11:51
Цитата(fpmoleg @ Dec 20 2007, 15:48)

Контроллер в ЛСД - M6800 (не уверен)
Ошибаетесь! В вашем даташите черным по белому написано, что контроллер в LCD
KS0070B.
Тогда фразу про подсветку не нужно было писать, сбивает с толку.
По программе. Вы выставляете код команды на порт В, но при этом не видно работа с ногой Е! Как, по вашему, контроллер ЛСД узнает, когда принимать команду? Внимательно читайте мануал, который вы выложили, там все написано. Если не поймете - спрашивайте, ответим.
По контроллеру. Применяется контроллер KS0070B. Он совместим с HD44780. (смотрим здесь
http://www.melt.com.ru/work/newforum/post499 и здесь
http://www.gaw.ru/html.cgi/txt/lcd/chips/index.htm ) По нему информации - валом, в том числе и на русском (например здесь
http://www.gaw.ru/html.cgi/txt/lcd/chips/hd44780/start.htm).
Ну и разберитесь, что такое M6800. Для себя.
fpmoleg
Dec 20 2007, 11:58
Цитата(rezident @ Dec 20 2007, 15:51)

Ошибаетесь! В вашем даташите черным по белому написано, что контроллер в LCD KS0070B.
Мой прокол - не заметил. Спасибо.
Спасибо за ответы.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.