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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Сообщение DimAlt »

Может боян бородатый..
Понадобилось преобразовать русские буквы в понятное lcd, места в мк мало, что бы это делать там, поэтому написал простенькую прогу в делфях. Мож кому надо будет..
Пишите, например

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

Контроль
Результат -
[9]={0x4B, 0x6F, 0xBD, 0xBF, 0x70, 0x6F, 0xBB, 0xC4, '\0'}; //Контроль
Клик по нижней строке копирует содержимое в буфер обмена.
Вложения
lcdHd44780.rar
(157.11 КБ) 517 скачиваний
Vrungel
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт сен 07, 2007 22:13:42
Откуда: Мариуполь

Сообщение Vrungel »

uk8amk писал(а):Всем привет.
Недавно понадобилось подключить ЖКИ 44780 к контроллеру, но к разным пинам портов. Существующие библиотеки позволяют подключать индикатор только к определенным пинам одного порта. Короче готовое не подошло и пришлось все делать своими ручками.


Может кому-то понадобится.



Низкий тебе поклон!
Очень выручил!
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Vrungel писал(а):Очень выручил!


В реальной схеме заработало?

Просто у меня так и не дошло до проверки на железках, сам проект раньше помер.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Мяу всем!
Значицца, тээээкс, продолжаю допрос по своему предыдущему посту!
Просмотрел всю ветку и ничего вразумительного про LCD 16x1 не нашел. Задавались похожие вопросы, но все они или остались без ответа, или ответы применительно к АСМу. На АСМе не пишу, пишу на BASCOMe, на крайняк на СИ. Я пол-ночи вчера просидел за компом, писал специально тестовую прогу для LCD 16x1. Кое-как добился отображения полной строки. Но это в шпротеусе (!), а реально-в железе - та же хрень!!! Половина дисплея кажет, половина - нет! Ну уже помогите кто-нить! Запарился, честно!!! :beer: :shock:
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

если мне память ни с кем не изменяет, у него вторая половина строки начинается с адреса $40. может стоит попробовать?
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

GP1 писал(а):если мне память ни с кем не изменяет, у него вторая половина строки начинается с адреса $40. может стоит попробовать?

А откуда, я извиняюсь, такие сведения? В даташите этого, вроде, нет! :dont_know: Но все равно попробую, спасибо!!!
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

Ну не помню я :)))
Во вспомнил :)))
http://www.melt.com.ru/products/index.p ... TION_ID=28
Чем дальше, тем больше становлюсь занудой...
Изображение
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Вобщем, получилась такая хрень: (все во вложениях). В железе будет работать? Какие мнения? В Шпротеусе пашет :)))
Цапу крутить надо!!! Ку или не ку?
Vrungel
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт сен 07, 2007 22:13:42
Откуда: Мариуполь

Re:

Сообщение Vrungel »

uk8amk писал(а):В реальной схеме заработало?

Просто у меня так и не дошло до проверки на железках, сам проект раньше помер.


Да заработало.
Я Ваш драйвер немного доделал - добавил перекодировку русских символов из СР-1251 в кодировку зашитую в знакогенератор ЖК.
Из кодевижена можно писать напрямую русскими буквами :)
Ещё раз спасибо Вам за труд.
Думаю что слегка "доработанный" вариант найдёт ещё большую популярность.
Вложения
flex_lcd.c
(5.54 КБ) 823 скачивания
Аватара пользователя
krill
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс апр 12, 2009 19:00:01
Откуда: Брянск
Контактная информация:

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

Сообщение krill »

Уважаемые Коты!
Помогите решить проблему. Решил собрать прибор для тестирования п/п приборов. В статье рекомендован индикатор WH1602. Такого не нашел, подключил NC1602D. В нем отличия(я так понимаю) только в ножках 1и2. Подключил, а он не работает, включается только подсветка. Помогите разобраться в чем проблема.
Вложения
таблица.JPG
Даташит
(74.55 КБ) 736 скачиваний
Тестер.png
Схема прибора
(34.2 КБ) 726 скачиваний
Некто
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Ср окт 14, 2009 14:33:19
Откуда: Воронеж
Контактная информация:

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

Сообщение Некто »

Доброго всем времени суток!
Помогите решить такую проблему: есть индикатор совместимый HD44780, конкретно WH1602B. Где-то проскакивала информация, что для него можно создавать собственные символы, но конкретной информации не нашел (может плохо искал?). Так вот, как бы отобразить символ, которого нет в стандартной таблице, например значек градуса. Можно ли это сделать с помощью стандартных библиотек CVAVR?
Если сморозил глупость, не пинайте сильно :)
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

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

Сообщение uk8amk »

Некто писал(а): Так вот, как бы отобразить символ, которого нет в стандартной таблице, например значек градуса. Можно ли это сделать с помощью стандартных библиотек CVAVR?


Так, на этой машине у меня стоит CV1.2.5 , но от более поздней версии по идее не должно быть больших отличий. Открываем хелп, вбиваем в поиск lcd.h, находим раздел LCD Functions. Там примеры использования функций. Далее смотрим на описание ф-ции void define_char(byte flash *pc,byte char_code), копируем пример в прогу, компилим, наслаждаемся. Ахтунг! 44780 может назначать пользовательские символы только для первых восьми адресов. Т.е. например нельзя тупо переназначить скажем символ 'A' на какой-то другой.
Некто
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Ср окт 14, 2009 14:33:19
Откуда: Воронеж
Контактная информация:

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

Сообщение Некто »

Всем спасибо! Все оказалось проще, чем ядумал. Все отображается как надо. А вот в хелп заглянуть я не догадался :oops:
smallghost
Родился
Сообщения: 3
Зарегистрирован: Вт мар 16, 2010 21:32:21

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

Сообщение smallghost »

Добрый день!

Возник вопрос, возможно-ли обеспечить переключение страниц отображения дисплея?

Поясню. Имею дисплей 16х2, как известно из датащита каждая строка этого дисплея имеет 40 ячеек для записи данных, из которых отображается в единый момент времени только 16, т.е. 24 скрыты за пределами зоны отображения.

Эти ячейки можно использовать как дополнительную видеопамять? Т.е. вывести в них информацию в фоновом режиме, а затем переключить на отображение? Если можно то как?

Пробовал перевести курсор в эту область экрана - ничего не происходит, курсор просто пропадает, движение экрана вместо курсора вообще никаких результатов в железе не дало...

Ещё заметил, если переходить в позицию 0,0 экрана командой 0х80, то изображение пропадает и в правой половине второй строки возникает графический шум в виде случайный полу-закрашенных квадратов (знакомест)..
smallghost
Родился
Сообщения: 3
Зарегистрирован: Вт мар 16, 2010 21:32:21

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

Сообщение smallghost »

_noise писал(а):Нельзя. Ибо нет никаких "страниц".
... если вспомнить, что данные в модуль можно не только посылать, но и потом читать их обратно, и подключить линию RW - то можно использовать невидимые знакоместа и/или юзерские символы как ячейки ОЗУ (не забывая, что очистка экрана => ...), но это уже извращение.


Датащиты я изучил, вот и вопросы возникли.
Ну а для чего же эти "лишние" знакоместа? Наверное тогда можно активную область отображения как-то сдвинуть в сторону тех символов (типа бегущей строки)? Видел есть команда сдвига не курсора, а экрана.

Добавлено спустя 10 минут: Посмотрел тут китайский датащит, там нет этого "невидимого" адресного пространства, значит вопрс снимается...

_noise писал(а):Про 0x80 лень проверять. Проще/логичнее ((только) для моей задачи?) полную очистку 0x01. Или 0x02.

Полная очистка не пойдет, нужно выводить текст, а затем встать в первую позицию и мигать курсором ожидая действия пользователя.
smallghost
Родился
Сообщения: 3
Зарегистрирован: Вт мар 16, 2010 21:32:21

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

Сообщение smallghost »

С 0x80 разобрался, действительно если снова отправлять команду на ключение дисплея и курсора после команды перемещения, то глюков не происходит.

Заметил другой глюк:
При посылке команды: 0x18 (сдвиг экрана влево) в железе действительно движение букв идет влево, а вот в proteus, наоборот - вправо! Соответственно по команде 0х1С (сдвиг экрана вправо) в железе - вправо, в proteus - влево!
Если выбирать движение не экрана, а курсора, то всё нормально - влево, значит влево (в железе и proteus), вправо, значит вправо.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

Такой вопрос:
Есть дисплей 2 строки по 8 символов (Fordata FDCC0802B). Не выводятся символы второй строки.
При этом при выкручивании контрастности на полную в "чёрные прямоугольники" превращаются только символы первой строки.
(в настройках дисплея ставил как одну, так и две строки)
Собственно вопрос:
1. почему может не выводиться вторая строка и
2. должны ли одновременно обе строки в зависимости от контрастности превращаться в прямоугольники или исчезать НЕЗАВИСИМО от загруженных в дисплей настроек???
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

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

Сообщение AI_Disable »

Если ЖК не инициализирован, то при максимальной контрастности заливает прямоугольниками только первую строку. У правильно инициализированного дисплея - обе.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

AI_Disable писал(а):Если ЖК не инициализирован, то при максимальной контрастности заливает прямоугольниками только первую строку. У правильно инициализированного дисплея - обе.

Да, действительно. Проблема решена :))
Надо было два раза засылать команду установки длины данных, числа строк и размера символа :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

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

Сообщение akl »

Да, было такое. Возвращались с эксплуатации с разными дефектами
- первое знакоместо верхней строки не индицируется (POWERTIP)
- отсутствие индикации или наоборот индикация линии во всех знакоместах (MTC)
- неравномерная, по яркости, индикация знакомест (PLED WINSTAR)
Ответить

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