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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
servmv
Встал на лапы
Сообщения: 136
Зарегистрирован: Чт янв 02, 2014 21:28:22
Контактная информация:

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

Сообщение servmv »

Вот китаец прислал, 7мая страница, 2рой график.
Взорвали мне тут мозг, строб длинный, код правильный, и быстрее не реально.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

servmv писал(а):Вот китаец прислал, 7мая страница, 2рой график.
Там фотка какая-то. Чёто у Вас никак не получается ничего показать. То видео недоступно, то картинки за место документации, ... :)
Вот, читайте - http://cxem.net/doc/mc/HD44780-rus.pdf стр. 13. Там НАНОсекунды !
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf стр. 24. Времена выполнения команд.
Аватара пользователя
servmv
Встал на лапы
Сообщения: 136
Зарегистрирован: Чт янв 02, 2014 21:28:22
Контактная информация:

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

Сообщение servmv »

Аlex писал(а):
servmv писал(а):Вот китаец прислал, 7мая страница, 2рой график.
Там фотка какая-то. Чёто у Вас никак не получается ничего показать. То видео недоступно, то картинки за место документации, ... :)
Вот, читайте - http://cxem.net/doc/mc/HD44780-rus.pdf стр. 13. Там НАНОсекунды !

Ну и? полупериод минимум 230нс период минимум 500нс

ну взято с запасом на китайскую погрешность тактового генератора дисплея+время спада, нарастания:

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

_delay_us(300);
E_ENABLE;
_delay_us(500);
E_DISABLE;
Последний раз редактировалось servmv Чт апр 23, 2015 10:29:42, всего редактировалось 1 раз.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

У Вас МИКРОсекунды ! Разницу чувствуете ? :)
Аватара пользователя
servmv
Встал на лапы
Сообщения: 136
Зарегистрирован: Чт янв 02, 2014 21:28:22
Контактная информация:

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

Сообщение servmv »

Где там микро секунды?
вот микросекунды:

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

_delay_ms(5);

а это наносекунды

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

_delay_us(300);
E_ENABLE;
_delay_us(500);
E_DISABLE;
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

О чём вы тут срач на 3 страницы развели?
вот микросекунды:
_delay_ms(5);

а это наносекунды
_delay_us(300);

Ааааа пацталом :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Ааааа пацталом :)))
:)))

servmv писал(а):вот микросекунды:
а это наносекунды
Прежде, чем делать такие громкие заявления, забегите хотя-бы в гугл.
НУ нельзя же так :)
Аватара пользователя
servmv
Встал на лапы
Сообщения: 136
Зарегистрирован: Чт янв 02, 2014 21:28:22
Контактная информация:

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

Сообщение servmv »

Брр.. вы меня запутали :(
ну да микросекунды, :kill: , ну не работает дисплей с 1 микросекундой, хоть убейте, я уже проект новый создал, на дисплее мусор. Дисплей значит такой, очередной камень в огород китайцев, но не в мой, я все задержки убрал до минимума сохраняя работоспособность.
Кстати старый код с задержками мне нравился больше, ща такая шняга: при смене символов наблюдается каша, старые точки гаснут новые загораются и те и другие в пол яркости, смотреться стало хуже. Так что вопрос по качеству кода спорный..
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Так что вопрос по качеству кода спорный..
Тут, скорее, вопрос возникает о качестве основного кода. Не думаю, что он у Вас идеальный.
Ибо, по признакам "каша", "в полнакала", и т.д... можно судить только об одном - Вы тупо без всяких задержек меняете данные на дисплее.
А это уже камень далеко не в китайский огород.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

Кстати, для OLED контроллера WS0010 вообще не нужны задержки :)
Только после подачи питания и очистки дисплея.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

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

Сообщение Albert_V »

servmv, если не сложно, сделайте проверку флага занятости (BS). Мне попадались индикаторы с "затянутыми временами". Возможно я ошибаюсь, но у меня было впечатление что у них тактовый генератор работал на меньшей частоте. В принципе, их можно было отправлять в брак но не было желания. Так же, попадались индикаторы у которых реальные времена выполнения команд были раз в пять меньше чем указано в pdf.
Сделайте возможность выбора страниц знакогенератора (есть индикаторы с двумя таблицами символов).
Я в своих программах всегда делаю проверку флага BS. При этом ещё смотрю на время "поднятого" BS. Если время превышает "все разумные пределы" (у себя я ставлю около 10mS) - однозначно INIT индикатора. Заказчики пока не жаловались.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

Albert_V писал(а): Если время превышает "все разумные пределы"

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

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

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

Albert_V писал(а):у них тактовый генератор работал на меньшей частоте
Там частота задаётся RC-цепочкой вроде. Так что разброс там...
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Vicont
Прорезались зубы
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье
Контактная информация:

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

Сообщение Vicont »

Мяу, товарищи! :)
Недавно начал впервые осваивать работу с таким дисплеем.
Получилось самостоятельно разобраться в общих принципах его функционирования, и написать на ассемблере для avr простую программу по выводу текста, заранее указанного в теле программы. Работает нормально :))

Если не углубляться в процедуры инициализации и т.п., то поучился следующий, довольно стандартный код вывода текстовой строки:

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

   
   ldi   ZL, LOW(text1 << 1)
   ldi   ZH, HIGH(text1 << 1)
   ldi   temp,8         ;количество элементов в массиве

StrOut:
   PUSH    temp         ;сохраняем temp
   LPM   Data, Z+
   rcall   DATA_WR         ;Выводим данные на дисплей
   POP   temp
   dec   temp
   cpi   temp,0
   brne   StrOut   

text1: .db "Vicont45"


Теперь мне хочется вывести на дисплей переменное числовое значение из какого-нибудь регистра, которое могло бы динамически меняться по ходу работы, а как это сделать уже не соображу... :(
В интернете большинство ресурсов на эту тему посвящены Си, а на ассемблере найти подобную информацию не удалось.
Поэтому прошу вашего совета.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Тебе надо делать это в два этапа. Сначала преобразовать переменную в набор символов, а потом эти символы вывести.

Преобразование байта в символы это классика - вычитаем из числа сотни, пока оно больше или равно 100, количество вычитаний - как нетрудно догадаться, это будет первый символ...
Потом вычитаем десятки, пока число больше или равно 10 - количество вычитаний будет вторым символом. Ну а единицы останутся сами собой. итого имеем 3 числа представляющие 3 символа числа для вывода, теперь их надо сместить(прибавить) на 0x30 и получишь ровненько ASCII-коды символов для вывода на дисплей, остается только друг за дружкой их вывести.

Точно так же поступаем и с 2-х байтовым словом, даже 3-х байтовые и 4-х байтовые числа можно так разложить, только мороки много.

такие алгоритмы еще называются BIN2BCD, ищи в гугле да найдешь. Даже целые библиотеки есть, с такими преобразованиями. Я даже как-то из одной такой вырезал нужный мне алгоритм из слова в 5 символов.
Аватара пользователя
Vicont
Прорезались зубы
Сообщения: 201
Зарегистрирован: Пт июл 25, 2008 14:09:04
Откуда: Зауралье
Контактная информация:

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

Сообщение Vicont »

Спасибо, товарищ!!! :))
Всё оказалось до безобразия просто. С алгоритмом BIN2BCD я знаком давно, и частенько применял его при выводе инфы на 7-сегментные индикаторы, а то, что его можно применить и к LCD с прибавлением 0x30 как-то не догадался... :facepalm:
Аж стыдно стало. :oops:

За то теперь всё работает. :)
Пока_без_кота
Потрогал лапой паяльник
Сообщения: 359
Зарегистрирован: Чт авг 08, 2013 01:06:54

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

Сообщение Пока_без_кота »

Доброго времени суток. Есть дисплей DMC16117A (16 симоволов, 1 строка). Не могу ничего на него вывести, хотя на другой (китайский ноунейм) все нормально выводиться. Скачал даташит http://www.alldatasheet.com/datasheet-p ... 6117A.html , подправил все задержки (формирую их вручную, циклами) согласно документу http://mil.ufl.edu/4744/docs/lcdmanual/ ... ation.html специально под этот дисплей. А оно не заводиться никак. Ноунейм 1602 нормально запахал с первого раза, по первым попавшимся в Internet задержкам. Что не так с этим диплеем ? Подключаю по 4-bit шине. Самотестирование вроде проходит (первых 8 символов становяться полнокотрастными при подключении питания), при попытке что-нибудь вывести на него, вся строка становиться контрастной, то есть вроде как реагирует на команды. Но ничего не выводит :cry: . Брал б/у, может он того... А как проверить ?
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

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

Сообщение Albert_V »

В программе, после <INITIALIZATION COMPLETE>, есть команда Display ON ???
igorka
Грызет канифоль
Сообщения: 260
Зарегистрирован: Вс ноя 13, 2011 11:21:23
Откуда: Горловка.

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

Сообщение igorka »

Приветствую!Подскажите пожалуйста, если в протеусе модель этого дисплея? https://yadi.sk/i/4Jvhnb3CiDqzD
Просто попал мне в руки в плачевном состоянии, утопленник, да еще и с рваными дорожками.Хочу написать простую программку для его проверки, но перед этим проверить в протеусе.
Спасибо!
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Это не дисплей а даташит на него. Внимательно прочитай, что там на 7-й странице написано?
Ответить

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