Работа с ЖКИ на контроллере HD44780 и его аналогах

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

регистр "Display ON/OFF control"
биты С,B
С=0 B=0 ничего нет
С=0 B=1 мигающее знакоместо
С=1 В=0 подчеркивание
C=1 B=1 мигающий курсор.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

У меня вот так
set_cursor: ;Установка курсора в указанный адрес
rcall set_adress
ldi temp,0b00001110

Здесь подчеркивание. но если я ставлю 0b00001111
появляется мигающее знакоместо.

push temp
swap temp
andi temp,0b00001111
ori temp,0b00010000
out lcd,temp
cbi lcd,e ;строб
pop temp
andi temp,0b00001111
ori temp,0b00010000
out lcd,temp
cbi lcd,e
rcall delay40mks
clr temp
out lcd,temp
ret
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

нужна еще схема подключения.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Мега 16, кварц 4.096 Мгц

;PortC0 = lcd(0) = 4 = нулевой (младший) бит 4-х битного режима
;PortC1 = lcd(1) = 5 = первый бит 4-х битного режима
;PortC2 = lcd(2) = 6 = второй бит 4-х битного режима (
;PortC3 = lcd(3) = 7 = третий (старший) бит 4-х битного режима
;PortC4 = lcd(4) = E = разрешение чтения/записи
;PortC5 = lcd(5) = R = выбор режима чтения/записи
;PortC6 = lcd(6) = A = адресный сигнал, выбор адрес/данные ("1"-данные, "0"-адрес)
;PortC7 = lcd(7) = x = сюда у меня ничего не подключено
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

начнем с того что выводить строб одновременно с данными - это не правильно

Код: Выделить всё

ori temp,0b00010000 
out lcd,temp

есть такой параметр tAS - время предустановки команды
+ мин время импульса стробирования - 0,23 мкс при Fo=16 МГц
у вас импульс будет 0,0625 мкс, что меньще допустимого
см. ДШ
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Хммм.... Надо подумать... И почитать тоже. Хотя странно... статический курсор выводится же.И мигающее знакоместо... Может действительно не хватает задержки для того чтобы контроллер ЖК переварил эту команду...
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

пару страниц назад и pooher и я выкладывали свои билиотеки по работе с lcd, посмотри может поможет

зы: посмотри на МЭЛТ там есть описание МТ16S2H - полный аналог и на русском.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Блин. Не моргает подчеркивание!!! Я уже отдельный строб замутил по всем правилам - пофигу. Просто выводится но не моргает. Может он вобще не моргает? Но я собирал таймер по книге Заеца, он в коде для курсора делает все те же приседания что и я - там моргает. Че за финя.....
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

должен моргать, в нем стандартный контроллер.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
dr_jenia
Грызет канифоль
Сообщения: 271
Зарегистрирован: Сб июл 18, 2009 19:02:07
Откуда: Одесса
Контактная информация:

Сообщение dr_jenia »

толь я тему плохо посмотрел толи непойму...

Какие всетки аналоги индикатора hd44780?
помогите списочком :beer:
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

KS0066 от SUMSUNG например.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Сообщение Kaban »

Контроллер KS0066 является полным аналогом HD 44780, или придётся что-то менять?
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

полный аналог.
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
dr_jenia
Грызет канифоль
Сообщения: 271
Зарегистрирован: Сб июл 18, 2009 19:02:07
Откуда: Одесса
Контактная информация:

Сообщение dr_jenia »

самсунгов у нас в природе нет.
есть еще какието
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

самсунгов у нас в природе нет

А какие есть?
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Сообщение Kaban »

dr_jenia надо смотреть по даташиту какой контроллер стоит в ЖК индикаторе, а не на то что он самсунговский или не самсунговский.
Аватара пользователя
Alex_A
Родился
Сообщения: 11
Зарегистрирован: Пн май 18, 2009 11:25:28
Откуда: samara
Контактная информация:

гаснет, нехорошая редиска

Сообщение Alex_A »

странный глюк с WH1602 от Winstar

собрал вечерком схемку, прошил всё работало ... утром продолжаю работать, вдруг экран погас ... (питания подсветки не подавалось, просто исчезла индикация) ... 3 нога была кинута на землю через 2К (выявлено эксперементальным путём) ... замыкаю на землю - индикатор включется (всё в чёрных квадратиках - полная засветка), размыкаю, оставляя только 2К - работает некоторое время, показывая информацию, потом опять гаснет ... постепенно время работы сокращалось ... сейчас замыкаю 3 ногу на землю, отпускаю - на долю секунды проглядываются буквы, потом опять всё гаснет нафигх :cry:

переменника под рукой нет ... но порог отключения находится где-то между 700 и 1К ...

Ну вот чё за нафиг, а?

ЗЫ: контроллер и память индикатора работают нормально - траблы только с отображением, то есть с контрастностью - она то на полную, то выключена ... индикатор новый, только из магазина ...

PS2: нашёл подстроечный резистор ... ёмана ... поймать границу вкл-выкл практически нереально ... вроде начинает работать, потом хряк - опять отключается ..
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

У меня было такое. Первая причина: Подсветка жрет болше чем указано производителем - т.е. не хватает питания. Отключить ее нафиг (временно).
Вторая причина: плохой пропай проводов или сами провода. Обычно когда собираешь все быстро - не сильно озадачиваешься материаллами. Как всегда ставишь то, что под рукой. Мож сопля где какая.
Черные квадраты при включении говорят о том, что ЖКИ не успел запуститься а МК уже начал инициализацию. А если есть проблемы с проводами то инициализация вобще уходит в космос. Кстати Протеус этого не замечает, ему и контрастность и задерка переж включение побоку. А когда собираешь девайс начинаеь париться.
У меня было так. Включаю - черные квадраты, нажмаю кнопку Reset все запускается.
Вылечил тем что перед инициализацией сделал задержку?

rcall Delay40mks
rcall DisplayInit
Аватара пользователя
Alex_A
Родился
Сообщения: 11
Зарегистрирован: Пн май 18, 2009 11:25:28
Откуда: samara
Контактная информация:

Сообщение Alex_A »

оказалось до банальности просто - оба резистора оказались битыми :) ... купил в магазинчике сегодня новый на 20К переменник - всё заработало как часы ... во всяком случае два часа работает стабильно.
Аватара пользователя
Alex_A
Родился
Сообщения: 11
Зарегистрирован: Пн май 18, 2009 11:25:28
Откуда: samara
Контактная информация:

+

Сообщение Alex_A »

переход на С прошёл совершенно безболезненно путём использования библиотеки lcd.h ... с первого раза заработал подсоединённый по схеме в визарде CodeVision WH1602 ... объём кода, что характерно, не намного больше, чем аналогичная байда на ассемблере.

Странно только, что CodeVision не разумеет подключения по порту D. Ну и фиг с ним - на В тоже нормально работает по 4 битам ...
Ответить

Вернуться в «Периферия»